Explication détaillée des preuves à zéro connaissance (ZKP)

IntermédiaireNov 28, 2023
La preuve à connaissance nulle (ZKP) est une méthode de cryptage qui permet à une partie (appelée le prouveur) de prouver à une autre partie (appelée le vérificateur) qu'une déclaration est vraie, sans révéler d'autres informations. Les solutions ZKP les plus répandues sont zk-SNARKS, zk-STARKS, PLONK et Bulletproofs. Cet article présente ces quatre types de solutions ZKP et analyse leurs avantages et inconvénients.
Explication détaillée des preuves à zéro connaissance (ZKP)

Description

La preuve à connaissance nulle (ZKP) est une technologie cryptographique introduite pour la première fois dans un article intitulé "The Knowledge Complexity Of Interactive Proof Systems" au début des années 1980 par S. Goldwasser, S. Micali et C. Rackoff. Conçu à l'origine comme un modèle théorique, il visait à relever le défi de la vérification des énoncés mathématiques sans révéler de preuves. Ce concept a suscité une grande attention dans le monde universitaire parce qu'il remet en question les limites des techniques de cryptage traditionnelles et offre une nouvelle approche du traitement des informations sensibles.

Au fil du temps, le ZKP est passé d'un concept théorique abstrait à des protocoles concrets pouvant être intégrés dans diverses applications. Au début du 21e siècle, avec la croissance explosive de l'internet et de la communication numérique, le potentiel du ZKP a commencé à être exploré dans le monde réel. En particulier avec l'essor de la blockchain et des crypto-monnaies, ZKP a démontré sa capacité à renforcer la confidentialité et la sécurité tout en maintenant l'efficacité des transactions et du traitement des données.

Aujourd'hui, le ZKP est non seulement un sujet d'actualité dans la recherche cryptographique, mais il a également été intégré dans de multiples plateformes et applications de blockchain. Par exemple, l'application de zk-SNARKs sur Ethereum Layer2 offre des transactions anonymes sans révéler les détails de la transaction. Ce passage de la théorie à l'application pratique prouve non seulement la valeur pratique du ZKP, mais stimule également l'exploration d'interactions numériques plus efficaces et plus sûres. Avec les progrès technologiques constants, le ZKP joue un rôle de plus en plus important dans la protection de la vie privée, la sécurité des données et la mise en place de systèmes numériques fiables.

Définition et principe du ZKP

La preuve à connaissance nulle (ZKP) est une méthode de cryptage qui permet à une partie (le prouveur) de prouver l'exactitude d'une déclaration à une autre partie (le vérificateur) sans révéler aucune information supplémentaire, c'est-à-dire sans divulguer aucune connaissance dont dépend l'exactitude de la déclaration. Ce processus protège non seulement la vie privée du prouveur, mais garantit également que le vérificateur ne peut pas reproduire le processus de preuve ou l'utiliser pour obtenir des informations supplémentaires.

Diagramme conceptuel des preuves à zéro connaissance (Source : ChainLink)

Les principes fondamentaux des preuves à zéro connaissance (ZKP) peuvent être définis par les trois attributs suivants :

  • Complétude : Si une déclaration est vraie, un prouveur honnête peut toujours réussir le test du vérificateur.
  • Solidité : Si une déclaration est fausse, tout prouveur trompeur n'aura qu'une faible chance d'induire le vérificateur en erreur en lui faisant croire que la déclaration est vraie.
  • Connaissance nulle : Si la déclaration est vraie, le vérificateur n'apprend aucune autre information que le fait que la déclaration est correcte. En d'autres termes, le processus de vérification ne révèle aucune information qui pourrait être utilisée pour construire la preuve.

Le principe du ZKP est souvent compris à l'aide d'exemples simples : Si je dois prouver à la personne A que j'ai le numéro de téléphone de la personne B, je n'ai pas besoin de révéler directement le numéro de B à A. Au lieu de cela, je peux le prouver en appelant le numéro de B. Une fois l'appel connecté, il démontre que je possède effectivement le numéro de B, sans divulguer aucune information sur le numéro lui-même.

Dans les applications pratiques, le ZKP nécessite généralement des constructions mathématiques complexes telles que des équations polynomiales, des courbes elliptiques ou d'autres défis mathématiques. La sécurité de ces constructions repose sur la difficulté de calcul de problèmes tels que la factorisation ou les logarithmes discrets. Avec les progrès de la cryptographie, diverses implémentations de ZKP ont émergé, telles que les zk-SNARKs et les zk-STARKs, offrant une protection efficace de la vie privée dans différents contextes, en particulier dans les domaines de la blockchain et des crypto-monnaies.

La forme de base de la preuve à connaissance nulle se compose de trois éléments : le témoin, le défi et la réponse.

Témoin : Dans une preuve à connaissance nulle, le prouveur veut démontrer qu'il a connaissance d'une information cachée. Cette information secrète agit comme le "témoin" de la preuve. Le prouveur, sur la base de sa connaissance du témoin, établit une série de questions auxquelles seule une personne connaissant l'information peut répondre. Ainsi, le prouveur sélectionne au hasard une question pour lancer la preuve, calcule la réponse, puis l'envoie au vérificateur.

Défi : le vérificateur choisit au hasard une autre question dans l'ensemble et demande au prouveur d'y répondre.

Réponse : Le prouveur reçoit la question, calcule la réponse et la renvoie au vérificateur. La réponse du prouveur permet au vérificateur de vérifier si le prouveur a effectivement accès au témoin. Pour s'assurer que le prouveur ne se contente pas de deviner correctement par hasard, le vérificateur sélectionne une autre question. En répétant ce processus plusieurs fois, la probabilité que le prouveur fabrique la vérité diminue considérablement jusqu'à ce que le vérificateur soit satisfait.

Dans l'exemple de l'appel téléphonique susmentionné, "Je" est le témoin qui ne veut pas divulguer l'information, tandis que A est le vérificateur, et le défi posé est "Prouvez que 'Je' possède le numéro de B". Le processus de réponse implique que "moi" connecte un appel au numéro de B pour prouver que je l'ai vraiment.

Pourquoi le ZKP est-il nécessaire ?

Comme nous l'avons vu précédemment, les preuves à connaissance nulle (ZKP) offrent intrinsèquement des avantages significatifs dans le domaine de la protection de la vie privée. À l'heure de la surcharge d'informations, les données personnelles sont souvent stockées sur des plateformes tierces, ce qui accroît le risque de violation des données. De plus, en raison des barrières techniques et du retard des sanctions légales, la sécurité de l'information repose en grande partie sur des contraintes éthiques, ce qui rend difficile pour les utilisateurs de contrôler réellement leurs informations privées. L'avènement de la technologie ZKP offre une solution qui permet à la fois de protéger la vie privée et d'améliorer l'efficacité et la sécurité de la vérification.

Par rapport à d'autres technologies de cryptage, le ZKP présente de nombreux avantages :

  • Protection de la vie privée : Le ZKP permet aux individus et aux institutions de prouver la véracité de certaines informations sans en révéler le contenu réel. Par exemple, il peut être utilisé pour prouver qu'une personne remplit les conditions d'âge sans révéler l'âge réel ou la date de naissance.
  • Sécurité renforcée : Le ZKP ne nécessitant pas la divulgation d'informations sensibles, il réduit le risque de fuites de données. Même si l'interception a lieu pendant le processus de preuve, aucune donnée substantielle n'est divulguée.
  • Réduction de la fraude : Dans les transactions financières, le ZKP peut être utilisé pour vérifier la légitimité d'une transaction sans exposer de détails spécifiques, réduisant ainsi les possibilités de fraude.
  • Efficacité : Certains types de ZKP, comme les zk-SNARK, sont très rapides à créer et à vérifier, ce qui est avantageux pour les systèmes qui doivent traiter un grand nombre de transactions ou d'opérations de vérification.
  • Interopérabilité : Le ZKP fournit un cadre commun pour la vérification entre différents systèmes et domaines, ce qui permet de vérifier et de partager des informations en toute sécurité entre différents systèmes.
  • Évolutivité : Avec l'évolution des technologies informatiques, la mise en œuvre de ZKP devient plus efficace et plus évolutive, ce qui signifie qu'elle peut être déployée dans des systèmes à plus grande échelle.
  • Conformité : Dans l'environnement réglementaire actuel qui exige la protection de la vie privée des consommateurs, ZKP peut aider les entreprises à vérifier et à traiter les données sans enfreindre les lois sur la protection de la vie privée.
  • Contrôle de l'utilisateur : ZKP renforce le contrôle des utilisateurs sur leurs données car ils peuvent choisir la quantité d'informations à divulguer.
  • Décentralisation : Dans la blockchain et les technologies distribuées, ZKP offre un puissant outil de confidentialité pour la décentralisation, permettant aux utilisateurs de faire des transactions et d'interagir sans dépendre des autorités centrales.

Que ce soit dans le domaine traditionnel du Web 2.0 ou dans le domaine émergent du Web 3.0, les perspectives d'application du ZKP sont vastes.

Types de preuves à zéro connaissance (ZKP)

Il existe de nombreuses implémentations de preuves sans connaissance, telles que zk-SNARKs, zk-STARKs, PLONK et Bulletproofs. Chaque type a ses avantages et ses inconvénients en termes de taille de la preuve, de temps d'exécution et de temps de vérification. Cet article présente les quatre types les plus couramment utilisés dans les scénarios d'application.

zk-SNARKs

Les zk-SNARK, qui signifient "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge", sont des outils cryptographiques utilisés pour prouver qu'une personne connaît un élément d'information sans révéler l'information elle-même. Dans les zk-SNARK, le terme "zéro connaissance" signifie que le prouveur peut prouver qu'une déclaration est vraie sans fournir d'autre information que son exactitude. La "concision" fait référence à la taille réduite de la preuve et à la rapidité du processus de vérification. Le terme "non interactif" signifie qu'une fois qu'une preuve est générée, elle peut être vérifiée par n'importe qui sans interaction supplémentaire entre le prouveur et le vérificateur. Les principaux éléments des zk-SNARKs sont les suivants :

  • Configuration de confiance : Lors de l'initialisation du système, une paire de clés publiques/privées (paramètres) doit être générée. Ce processus doit être exécuté par une personne de confiance, car la sécurité du système peut être compromise en cas de fuite de la clé privée.
  • Génération de preuves : Le prouveur connaît une information secrète mais ne souhaite pas la révéler au vérificateur. Ils utilisent ces informations secrètes et les paramètres publics pour construire une preuve qui montre suffisamment qu'ils connaissent le secret sans en révéler les détails.
  • Processus de vérification : Une fois que le vérificateur a reçu la preuve, il peut utiliser les paramètres publics pour en vérifier l'exactitude. Si le prouveur a construit une preuve correcte, le processus de vérification aboutira à un "oui", sinon à un "non".

Les zk-SNARK sont utilisés dans divers scénarios de préservation de la vie privée, tels que les crypto-monnaies avec des transactions anonymes, les systèmes de vote sécurisés, l'authentification et le partage de données préservant la vie privée, et les technologies d'évolutivité de la blockchain.

zk-STARKs

Les zk-STARK, ou "Zero-Knowledge Scalable Transparent Arguments of Knowledge", permettent à une partie (le prouveur) de prouver à une autre (le vérificateur) qu'elle connaît certaines informations sans révéler les informations elles-mêmes. Contrairement aux zk-SNARK, les zk-STARK ne nécessitent pas de processus d'installation fiable. Cela signifie qu'ils ne reposent pas sur la confidentialité de certaines informations privées, une caractéristique souvent considérée comme cruciale pour la sécurité, car la configuration de confiance peut constituer une vulnérabilité systémique.

Les zk-STARKs reposent sur des concepts issus de plusieurs domaines mathématiques, notamment les fonctions de hachage, les calculs polynomiaux et la théorie de la correction des erreurs. Ils utilisent une construction connue sous le nom d'"argument transparent évolutif à connaissance nulle", qui permet de générer des preuves sans configuration de confiance. Les applications potentielles des zk-STARK sont similaires à celles des zk-SNARK, mais en raison de leur évolutivité et de leur transparence, elles sont particulièrement adaptées aux applications à grande échelle, notamment les crypto-monnaies préservant la vie privée, les technologies d'évolutivité de la blockchain et la vérification sécurisée dans l'informatique en nuage.

PLONK

PLONK, qui n'est pas un acronyme, fait référence aux noms de famille de ses créateurs. Il est conçu pour fournir une solution ZKP universelle et efficace, en particulier dans les applications blockchain telles que les contrats intelligents et les transactions protégées par la confidentialité. Le cœur de PLONK est l'utilisation d'une technique de "dissimulation homomorphique", qui permet d'effectuer des opérations arithmétiques sur des données sans révéler les données d'origine. Il utilise un algorithme spécial - un schéma d'engagement polynomial - pour créer des preuves, ce qui permet aux prouveurs de prouver efficacement qu'ils disposent des résultats de calcul corrects pour un ensemble de données.

L'une des principales caractéristiques de PLONK est son universalité. Une fois que les paramètres ont été définis pour une tâche de calcul spécifique (par le biais d'une configuration de confiance unique), ils peuvent être réutilisés plusieurs fois pour créer de nouvelles preuves, sans qu'il soit nécessaire de procéder à de nouvelles configurations à chaque fois. PLONK est ainsi très efficace pour créer et vérifier des preuves et est souvent conçu pour prendre en charge diverses tâches de calcul dans les blockchains et autres systèmes distribués.

A l'épreuve des balles

Les Bulletproofs, une solution ZKP récemment introduite, ne nécessitent pas de configuration de confiance et sont spécifiquement conçus pour construire des preuves d'étendue et certains types de preuves arithmétiques. Proposés par Benedikt Bunz, Jonathan Bootle, Dan Boneh et d'autres en 2017, les Bulletproofs reposent sur des constructions mathématiques complexes telles que le chiffrement homomorphique et la cryptographie à courbe elliptique. Ils s'appuient sur une série de techniques mathématiques permettant aux prouveurs de créer une preuve de portée efficace pour un nombre sans révéler sa valeur exacte. En particulier dans le domaine des crypto-monnaies, cela peut être utilisé pour prouver que les valeurs des transactions se situent dans une fourchette légale sans exposer les montants réels des transactions.

En raison de leur caractéristique à l'épreuve de la portée, les Bulletproofs sont largement utilisés dans les domaines des crypto-monnaies et de la blockchain, en particulier dans les monnaies de confidentialité comme Monero, pour cacher les montants des transactions tout en vérifiant la légitimité des transactions. En outre, ils peuvent être utilisés dans d'autres applications où la confidentialité numérique est nécessaire.

Étude de cas

Comprenons mieux ces quatre différentes technologies Zero-Knowledge Proof (ZKP) - zk-SNARKs, zk-STARKs, PLONK et Bulletproofs - à l'aide d'une analogie avec une carte au trésor.

Imaginez que vous disposiez d'une carte au trésor qui mène à l'emplacement exact d'un trésor enterré. Vous voulez prouver à quelqu'un que vous savez où se trouve le trésor sans révéler le contenu de la carte ou l'emplacement réel du trésor.

zk-SNARKs : Vous créez un puzzle complexe de la carte au trésor. Vous sélectionnez une petite pièce clé de ce puzzle (une preuve) et la montrez à l'autre partie, suffisamment pour la convaincre que vous savez comment assembler le puzzle complet, c'est-à-dire l'emplacement du trésor, sans révéler l'ensemble du puzzle. Toutefois, pour ce faire, vous avez besoin de marqueurs spéciaux provenant d'un imprimeur de confiance afin de prouver que votre pièce de puzzle est authentique.

zk-STARKs : Vous montrez une partie de la carte au trésor à l'autre partie, en lui disant qu'elle peut utiliser une loupe spéciale (un algorithme de vérification) pour vérifier au hasard les détails de la carte afin de s'assurer qu'elle pointe bien vers le trésor, sans qu'il soit nécessaire de connaître l'emplacement exact du trésor. Cette loupe est si puissante que même les technologies du futur (ordinateurs quantiques) ne pourront pas percer le secret de votre carte au trésor.

PLONK : Cette fois, vous créez une série d'énigmes, chacune indiquant l'emplacement du trésor. Vous présentez à l'autre partie une méthode universelle de vérification des solutions à ces énigmes (une configuration universelle), suffisante pour qu'elle croie que vous connaissez toutes les réponses sans avoir à résoudre chaque énigme individuellement.

À l'épreuve des balles : Vous décidez de prouver que vous connaissez la portée approximative de l'emplacement du trésor sans révéler sa position exacte. Vous fournissez une série de solutions à des problèmes mathématiques qui démontrent la portée de l'emplacement du trésor. Votre méthode ne nécessite pas de marqueurs ou de techniques d'impression spéciaux, ce qui signifie qu'il n'y a pas besoin de confiance initiale.

Dans cette analogie :

  • Les zk-SNARK requièrent la confiance dans la source de votre pièce de puzzle (une configuration de confiance) mais offrent une preuve très petite et rapide à vérifier.
  • Les zk-STARK n'ont pas besoin de faire confiance à une source quelconque, ce qui rend les preuves plus robustes et adaptées à la sécurité à long terme et aux menaces futures.
  • PLONK propose une méthode de vérification efficace à configuration unique et à usage multiple, ce qui signifie que vous ne devez faire l'effort qu'une seule fois pour prouver à plusieurs reprises que vous connaissez l'emplacement du trésor.
  • Les preuves à l'épreuve des balles vous permettent de prouver les informations relatives à la portée de l'emplacement du trésor sans aucune exigence de confiance initiale, bien que l'efficacité de la génération et de la vérification des preuves puisse ne pas correspondre aux deux premières.

Chaque méthode a ses inconvénients dans les applications pratiques, et le choix dépend du scénario d'application spécifique et des besoins en matière de sécurité.

Comparaison simple des différents schémas ZKP

Avant de procéder à une comparaison, nous devons comprendre les critères d'évaluation des ZKP :

  • Taille de la preuve : La quantité de données contenues dans la preuve, qui influe sur les coûts de stockage et de transmission.
  • Temps de vérification : Le temps nécessaire pour vérifier une preuve
  • Temps de preuve : Le temps nécessaire pour générer une preuve
  • Utilisation de la mémoire : La quantité de mémoire nécessaire pendant les processus de génération et de vérification des preuves.
  • L'universalité : Le système de preuve est-il applicable à différents types de calculs ?
  • Configuration de confiance : Si une phase initiale de configuration de confiance est requise
  • Sécurité post-quantique : Résistera-t-elle aux futures attaques des ordinateurs quantiques ?

Comparons maintenant les zk-SNARKs, les zk-STARKs, les PLONKs et les Bulletproofs sur la base de ces indicateurs et discutons de leurs avantages et de leurs inconvénients.

zk-SNARKs

Pour

  • Taille de l'épreuve : Très petites, elles conviennent aux environnements à bande passante limitée.
  • Durée de la vérification : Vérification rapide, adaptée aux scénarios nécessitant des réponses rapides
  • Universalité : Applicable à divers calculs complexes

Cons

  • Temps de preuve et utilisation de la mémoire : La génération de preuves peut être à la fois chronophage et gourmande en mémoire
  • Configuration de confiance : Nécessite une phase initiale d'installation sécurisée ; si elle est compromise, la sécurité du système est menacée.
  • Sécurité post-quantique : La plupart des constructions ne sont pas sécurisées au niveau post-quantique

zk-STARKs

Pour

  • Pas de configuration de confiance : Élimine la nécessité d'une configuration de confiance, ce qui renforce la sécurité du système.
  • Sécurité post-quantique : Résiste aux attaques des ordinateurs quantiques
  • Taille de la preuve : Bien qu'elle soit supérieure à celle de zk-SNARKs, elle reste gérable sous certaines conditions.

Cons

  • Taille de la preuve : Plus grande que les zk-SNARKs, ce qui peut réduire l'efficacité du stockage et de la transmission.
  • Temps de preuve : Possiblement plus lent que les zk-SNARKs, en particulier pour les calculs complexes.

PLONK

Pour

  • Universalité : Un ensemble de paramètres s'applique à plusieurs preuves différentes, ce qui réduit le travail redondant.
  • Taille de la preuve : Relativement petite, bien que plus grande que les zk-SNARKs
  • Possibilité de mise à jour : Facilité de mise à jour et de maintenance

Cons

  • Configuration de confiance : Bien que moins stricte que celle de zk-SNARKs, une configuration est toujours requise.
  • Sécurité post-quantique : De même, la plupart des constructions ne sont pas sécurisées au niveau post-quantique

A l'épreuve des balles

Pour

  • Pas de configuration de confiance : Pas besoin d'une configuration de confiance, ce qui réduit les risques de sécurité
  • Taille de la preuve : La taille de la preuve croît lentement avec la complexité de l'énoncé.
  • Temps de vérification : Rapide pour les preuves de portée

Cons

  • Temps de preuve : La production de preuves peut prendre plus de temps
  • Taille de la preuve : Bien que plus petite, elle reste supérieure à celle des zk-SNARKs dans les preuves plus importantes.
  • Sécurité post-quantique : Pas de conception spécifique pour un environnement post-quantique

Cas d'application de ZKP dans Web3

Dans Web3, il existe de nombreux cas d'application de ZKP, et nous avons sélectionné deux cas typiques pour l'étude.

Mise à l'échelle de la blockchain - Ethereum Layer2

Les zk-Rollups sont une solution de niveau 2 qui regroupe des centaines ou des milliers de transactions hors chaîne et génère une preuve zk-SNARK. Cette preuve, ainsi que les données de la transaction, sont soumises à la chaîne principale d'Ethereum. Il permet de valider les transactions sans que la chaîne principale ne traite chaque transaction, ce qui réduit les frais et augmente le débit. zk-Sync Era et Starknet ont adopté la technologie zk-rollup, et Polygon a récemment introduit Polygon zk-EVM utilisant des zk-rollups.

Démonstration d'une application de zk-SNARKs dans la couche 2 (Source : Simon Brown)

Confidentialité des données - Exchange Reserve Proof

La preuve des réserves de change fait référence à la vérification des soldes détenus par les bourses de crypto-monnaies ou d'autres institutions financières, en veillant à ce que les actifs enregistrés correspondent aux actifs réels détenus. Dans un premier temps, les bourses ont utilisé des arbres Merkle et des sociétés d'audit tierces pour cette vérification, mais ce processus reposait sur des tiers et pouvait entraîner des fuites de données privées sur les utilisateurs, telles que les soldes des comptes. Des bourses comme Gate.io utilisent désormais la technologie zk-SNARK pour les preuves de réserve, en chiffrant les données des utilisateurs et en obtenant les numéros d'actifs des utilisateurs par le biais des circuits zk-SNARK, émettant ainsi des rapports complets sur les preuves de réserve.

Conclusion

Les diverses solutions de la technologie de preuve de l'absence de connaissance mettent en évidence son puissant potentiel dans le Web3. De la protection de la confidentialité des données à la mise à l'échelle de la blockchain, ZKP est important pour construire une infrastructure Web3 sécurisée et efficace. Bien que les différentes approches aient leurs avantages et leurs limites, elles s'orientent collectivement vers un avenir numérique plus fiable et plus respectueux de la vie privée. Au fur et à mesure que la technologie progresse, les défis liés à l'optimisation des performances et de la sécurité avec le ZKP seront progressivement relevés, ce qui témoigne de son rôle de plus en plus important dans le monde numérique.

Autor: Wayne
Traductor: Piper
Revisor(es): Piccolo、Edward、Elisa、Ashley He、Joyce
* La información no pretende ser ni constituye un consejo financiero ni ninguna otra recomendación de ningún tipo ofrecida o respaldada por Gate.io.
* Este artículo no se puede reproducir, transmitir ni copiar sin hacer referencia a Gate.io. La contravención es una infracción de la Ley de derechos de autor y puede estar sujeta a acciones legales.
Empieza ahora
¡Regístrate y recibe un bono de
$100
!
Crea tu cuenta