Interprétation des preuves à connaissance nulle

Cet article comprend les éléments suivants : 1. Qu'est-ce qu'une preuve sans connaissance ? 2. Pourquoi avons-nous besoin de preuves sans connaissance ? 3. Scénarios d'application de preuve de connaissance zéro. 4. Comment fonctionnent les preuves sans connaissance. 5. Classification et cas d'application des preuves à connaissance nulle. 6. Défauts des preuves à connaissance nulle.

PART.01

** Qu'est-ce que la preuve de connaissance zéro **

**Zero-Knowledge Proof (Zero-Knowledge Proof) a été proposé par S.Goldwasser, S.Micali et C.Rackoff au début des années 1980. Il fait référence à la capacité du prouveur à convaincre le vérificateur qu'une certaine assertion est correcte sans fournir aucune information utile au vérificateur. **

Pour donner un exemple simple, Puff a déclaré qu'il était chef et qu'il pouvait cuisiner des plats chinois, coréens et italiens. Ma mère a exprimé son incrédulité parce que je n'avais pas cuisiné un seul repas à la maison. Alors, comment puis-je prouver que je peux cuisiner en ce moment ?

Je peux demander à ma mère de me regarder finir un repas dans la cuisine et prouver que je sais vraiment cuisiner. Mais je ne veux pas que ma mère me voie mettre la pagaille dans la cuisine pendant que je cuisine, sinon je serai de nouveau harcelée, alors que dois-je faire ? Je suis allée seule à la cuisine, mes parents attendaient dehors, après avoir fini de cuisiner et rangé, j'ai sorti la vaisselle. Cela prouve encore que je sais cuisiner. Quant aux ingrédients que j'ai utilisés, aux assaisonnements que j'ai mis et à quel point la cuisine était en désordre pendant le processus, je n'en ai pas besoin. Tant que ma mère sait que je peux cuisiner un repas, cela prouvera que je ne le suis pas. couché.

En termes simples : les preuves à connaissance nulle tentent d'établir la confiance entre deux parties avec le minimum d'informations échangées. Sans révéler plus d'informations, une partie (le prouveur, le prouveur) peut prouver à l'autre partie (le vérificateur, le vérificateur) qu'une chose est vraie.

PART.02

Pourquoi avez-vous besoin d'une preuve de connaissance nulle

Protéger les données privées

Les fournisseurs malhonnêtes veulent collecter autant de données utilisateur que possible, et certains des reçus qui n'ont rien à voir avec leur entreprise demandent également des autorisations aux utilisateurs (les détestent vraiment). Ils placent les informations d'identité personnelles (PII) de l'utilisateur collectées dans une base de données centralisée. Ces bases de données sont très vulnérables aux attaques. Une fois attaquées, les informations d'identité personnelles seront divulguées, ce qui entraînera divers problèmes de fraude.

Authentification

Lors de l'utilisation du site Web, l'utilisateur peut prouver au site Web qu'il dispose d'une clé privée ou connaît une réponse que lui seul connaît.Le site Web n'a pas besoin de connaître la clé, mais peut confirmer l'identité de l'utilisateur grâce à une preuve de connaissance zéro. Grâce au stockage décentralisé, le serveur peut prouver aux utilisateurs que les données sont correctement conservées et non divulguées.

** Compression informatique et expansion de la blockchain **

Dans l'architecture de bloc traditionnelle, le même calcul est répété plusieurs fois, comme la vérification de la signature, la vérification de la validité de la transaction, l'exécution du contrat intelligent et d'autres endroits, car avec la preuve de calcul, le même calcul n'a pas besoin d'être répété plusieurs fois, le processus de calcul peut être prouvé compressé par la technologie de la connaissance zéro.

** La preuve de connaissance zéro résout vraiment la confiance des données, réalise la protection des données privées et fait que la blockchain réalise vraiment le concept de machines de confiance. **

PART.03

** Scénario d'application de la preuve de connaissance zéro **

**Les principaux scénarios d'application de la preuve à connaissance nulle sont : le paiement anonyme, la preuve d'identité, le calcul vérifiable et le vote anonyme. **

Paiement anonyme

Les transactions de crypto-monnaie sont visibles publiquement sur la chaîne publique. Les utilisateurs effectuent des transactions de manière anonyme, mais sont également liés à des identités réelles (par exemple, en incluant des adresses ETH dans leurs profils Twitter ou GitHub), ou leurs identités réelles peuvent être obtenues via une analyse de données en chaîne et hors chaîne.

Il existe des "pièces de confidentialité" spécifiques conçues pour des transactions totalement anonymes. Les exemples incluent Zcash et Monero, qui masquent les détails de la transaction, y compris les adresses de l'expéditeur/destinataire, le type d'actif, le montant et le calendrier de la transaction. En incorporant des techniques de connaissance zéro dans les protocoles, les réseaux blockchain axés sur la confidentialité permettent aux nœuds de vérifier les transactions sans avoir accès aux données de transaction.

Des preuves à connaissance nulle ont également été appliquées aux transactions anonymes sur les chaînes de blocs publiques. Comme Tornado Cash, un service décentralisé non dépositaire qui permet aux utilisateurs d'effectuer des transactions privées sur Ethereum. Tornado Cash utilise des preuves à connaissance nulle pour masquer les détails des transactions et garantir la confidentialité financière.

identifiant personnel

Sous réserve de ne pas révéler d'informations d'identité spécifiques, un certificat d'identité spécifique est délivré. Par exemple, l'utilisation de services en ligne nécessite de prouver l'identité de l'utilisateur et son droit d'accéder à ces plateformes. Cela nécessite généralement de fournir des informations personnelles telles que le nom, l'adresse e-mail, la date de naissance, etc.

Les preuves à connaissance nulle peuvent simplifier l'authentification des plateformes et des utilisateurs. Les preuves ZK sont générées à l'aide d'entrées publiques (par exemple, des données prouvant que l'utilisateur est membre de la plate-forme) et d'entrées privées (par exemple, les détails de l'utilisateur), que les utilisateurs peuvent simplement présenter pour vérifier leur identité lorsqu'ils ont besoin d'accéder aux services. Par exemple, pour prouver si l'utilisateur est un adulte ou non, il n'est pas nécessaire de fournir des informations sur la carte d'identité ou l'année de naissance spécifique, mais seulement de déterminer si l'utilisateur a dix-huit ans ou non.

Calcul vérifiable

Lorsque l'appareil de l'utilisateur ne peut pas prendre en charge l'informatique requise ou que le coût de l'informatique locale est trop élevé, des services tiers seront envisagés. Ces services tiers peuvent renvoyer rapidement et à moindre coût les résultats de sortie aux utilisateurs (tels que le service oracle de Chainlink). Les preuves à connaissance nulle dans ce scénario permettent aux fournisseurs de puissance de calcul tiers de produire des preuves d'intégrité de calcul pour garantir que les résultats de sortie reçus par les utilisateurs sont corrects.

Vote anonyme

Sous le principe de ne pas révéler l'identité spécifique, l'identité de l'utilisateur est prouvée et l'autorité de vote est obtenue pour compléter le vote.

PART.04

Comment fonctionnent les preuves sans connaissance

Les preuves à connaissance nulle ont été proposées pour la première fois par Shafi Goldwasser et Silvio Micali du MIT dans un article de 1985 intitulé "Knowledge Complexity of Interactive Proof Systems". L'auteur mentionne dans l'article qu'il est possible pour un prouveur de convaincre un vérificateur de l'authenticité des données sans révéler les données spécifiques. La preuve à connaissance nulle peut être interactive, c'est-à-dire que le prouveur doit prouver l'authenticité des données une fois à chaque vérificateur ; elle peut aussi être non interactive, c'est-à-dire que le prouveur crée une preuve, et quiconque utilise cette preuve peut être vérifiée. Il existe actuellement de nombreuses implémentations de preuves sans connaissance, telles que zk-SNARKS, zk-STARKS, PLONK et Bulletproofs. Chaque méthode a ses propres avantages et inconvénients en termes de taille de preuve, de temps de preuve et de temps de vérification.

La preuve à connaissance zéro a trois caractéristiques de base, à savoir :

  • Intégrité : si l'énoncé est vrai, le vérificateur honnête peut être sûr que le prouveur honnête dispose des informations correctes.
  • Fiabilité : Si l'affirmation est fausse, aucun prouveur malhonnête ne peut convaincre un vérificateur honnête qu'il dispose des informations correctes.
  • Zero-knowledge : Si l'énoncé est vrai, le vérificateur ne sait rien sauf que l'énoncé est vrai du prouveur.

En résumé, pour créer une preuve à connaissance nulle, le vérificateur doit obliger le prouveur à effectuer une séquence d'opérations que le prouveur ne peut effectuer correctement que s'il connaît l'information sous-jacente. Si le prouveur trompe un résultat, alors le vérificateur est très susceptible de trouver et de prouver son erreur dans la vérification.

PART.05

Classification des preuves à connaissance nulle

La preuve à connaissance nulle peut être divisée en "preuve à connaissance nulle interactive" et "preuve à connaissance nulle non interactive" selon la méthode d'interaction.

** Preuve interactive sans connaissance **

Le prouveur et le vérificateur doivent interagir plusieurs fois, le vérificateur continuera à poser des questions pour défier le prouveur, et le prouveur continuera à répondre à ces défis jusqu'à ce que le vérificateur soit convaincu.

** Preuve interactive à zéro connaissance - Jeu daltonien **

Alice est daltonienne, mais Bob n'est pas daltonien. Bob a deux balles de la même taille et de la même forme, mais les couleurs de ces deux balles sont différentes. Une balle est bleue et l'autre balle est rouge. Puisqu'Alice est daltonienne, donc Alice ne peut pas dire si les deux balles sont identiques, Bob doit prouver à Alice que les deux balles sont différentes. Ici, Alice est appelée le vérificateur. Il doit vérifier si l'énoncé de Bob est correct ou non. Bob est appelé le prouveur. Il doit prouver son énoncé (il y a deux boules de couleurs différentes). Dans le cas des couleurs de deux balles, prouvez à Alice que les couleurs des deux balles sont différentes, ce qui est cohérent avec la définition de la preuve à connaissance nulle.

Alice ramasse deux balles devant Bob, la balle bleue dans la main gauche et la balle rouge dans la main droite, puis met les deux mains derrière son dos pour que Bob ne puisse pas voir la balle dans la main d'Alice, et Alice échange au hasard le balles dans ses mains gauche et droite derrière son dos , une fois l'échange terminé, Alice tend la main et demande à Bob si les deux balles ont changé de position. Si Bob peut voir la couleur sur la balle, alors chaque fois qu'Alice change de position du ballon, Bob peut répondre correctement à la question d'Alice.

Pour la première fois, Alice a secrètement échangé la position de la balle dans sa main, puis Alice a demandé à Bob si elle avait échangé la position de la balle. Si Bob a répondu Oui, alors Alice a une probabilité de 50 % que Bob puisse distinguer la couleur de les deux balles, car Bob Il y a 1/2 chance de réussir, alors Alice peut réessayer. Si Bob répond Non, alors Alice peut être sûre que Bob ne peut pas distinguer les couleurs des deux balles.

La deuxième fois, Alice n'échange pas les positions des boules dans ses mains, puis Alice demande à Bob s'il a inversé les positions des boules. Si Bob répond Non, alors Alice a 75 % de probabilité de croire que Bob peut distinguer les couleurs des deux balles.

Après la première itération, Alice peut dire que l'assertion énoncée par Bob a une probabilité de 50 % d'être vraie. Si Bob répond correctement la deuxième fois, alors Alice peut dire que la déclaration de Bob est vraie avec une probabilité de 75 %. Après la troisième itération, ce sera 87,5 %. Si Bob a réussi le test n fois consécutives, Alice a une probabilité de 1-(1/2)^n et peut penser que ce que Bob a dit est vrai, et les deux boules sont bien rouges et bleues.

La preuve interactive à connaissance nulle est une méthode de vérification basée sur la probabilité. Le vérificateur (vérificateur) pose des questions au prouveur (prouveur) en fonction d'un certain caractère aléatoire. Si le prouveur peut donner des réponses correctes, cela signifie que le prouveur a une probabilité élevée. "Connaissance revendiquée". La preuve à connaissance nulle n'est pas une preuve au sens mathématique, car elle a une faible probabilité d'erreur, et le prouveur trompeur peut tromper le vérificateur par de fausses déclarations. En d'autres termes, les preuves à connaissance nulle sont des preuves probabilistes plutôt que des preuves déterministes, mais il existe des techniques qui peuvent réduire les erreurs à des valeurs négligeables.

Cette approche interactive présente certaines limites :

  • Chaque vérification nécessite tout un long processus.
  • Le prouveur et le vérificateur doivent être présents en même temps, que ce soit en ligne ou en face à face.
  • Un seul vérificateur peut être approuvé. Si plusieurs vérificateurs doivent être approuvés, chaque vérificateur doit passer par un processus de preuve.

** PREUVE ZÉRO-CONNAISSANCE NON INTERACTIVE **

Les preuves interactives à connaissance nulle nécessitent que deux parties soient facilement disponibles et interagissent de manière répétée. Même si le vérificateur est convaincu que le prouveur est honnête, la preuve ne peut pas être utilisée pour une vérification indépendante (le calcul d'une nouvelle preuve nécessite un nouvel ensemble de messages entre le prouveur et le vérificateur).

Afin de résoudre les problèmes rencontrés par les preuves interactives à connaissance nulle, des preuves non interactives à connaissance nulle ont vu le jour. Manuel Blum, Paul Feldman et Silvio Micali ont proposé les premières preuves interactives à connaissance nulle - où le prouveur et le vérificateur ont un secret partagé. Cela permet à un prouveur de prouver sa connaissance de certaines informations sans fournir les informations elles-mêmes.

** Preuve de connaissance zéro non interactive --- Jeu de Sudoku **

Sudoku est un jeu mathématique né en Suisse au 18ème siècle, c'est un jeu de logique qui utilise du papier et un stylo pour effectuer des calculs. Les joueurs doivent déduire les nombres de tous les espaces restants en fonction des nombres connus sur le plateau 9 × 9 et s'assurer que les nombres de chaque ligne, chaque colonne et chaque palais à lignes épaisses (3 \ * 3) contiennent 1- 9. répéter.

Pour prouver à Bob qu'elle a résolu un puzzle Sudoku, Alice crée une machine inviolable pour cela. Alice met la réponse Sudoku générée dans la machine, et la machine peut envoyer une preuve à Bob. La machine d'Alice suit le protocole vérifiable publiquement suivant : tout d'abord, Alice place le puzzle Sudoku original non résolu dans la machine, et les trois cartes puzzle du Sudoku face visible. Ensuite, Alice place sa réponse face cachée sur la cellule correspondante de la machine, en plaçant également trois cartes dans chaque cellule. Finalement, Bob obtient la preuve de la machine, et la machine renvoie 27 sacs à Bob :

La machine sort 9 cartes de chaque rangée de Sudoku, les mélange séparément et les met dans un sac, il y a 9 rangées au total et utilise 9 sacs ; la machine sort 9 cartes de chaque rangée de Sudoku, les mélange et les met dans Mettez-les dans un sac, il y a 9 colonnes au total, et 9 sacs sont utilisés ; la machine sort les cartes dans chaque palais de ligne épaisse (3*3) dans Sudoku, les mélange et les met dans un sac, un total de 9, utilisez jusqu'à 9 sacs;

Bob vérifie chacun des 27 sacs individuellement, et si les cartes de chaque sac contiennent les numéros de 1 à 9, et qu'aucun des numéros ne manque ou ne se répète, alors Bob peut confirmer qu'Alice a effectivement résolu le Sudoku et que Bob n'a pas pris Toute connaissance de la solution Sudoku peut être obtenue à partir de la preuve renvoyée, car les données renvoyées par la machine au sac de Bob sont mélangées de manière aléatoire.

Les preuves non interactives à connaissance nulle surmontent certaines des lacunes des preuves interactives à connaissance nulle, ne nécessitent pas de longues interactions en ligne, peuvent faire confiance à de nombreuses personnes (ou même à tout le monde), et la preuve est toujours valide, mais machines et programmes supplémentaires peut être nécessaire pour déterminer l'ordre expérimental. Par exemple, dans le cas du Sudoku, c'est au programme de décider quelle colonne ou ligne vérifier. La séquence de vérification doit être gardée secrète, sinon le vérificateur peut réussir la vérification sans connaître la véritable "connaissance".

** Preuve interactive sans connaissance VS preuve non interactive sans connaissance **

Chaque vérification d'une preuve interactive nécessite un nouveau cycle de communication, et une preuve non interactive ne nécessite qu'un seul cycle de communication entre les participants (prouveur et vérificateur). Le prouveur transmet les informations secrètes à un algorithme spécial pour calculer la preuve à connaissance nulle. Cette preuve est envoyée au vérificateur, qui utilise un autre algorithme pour vérifier si le prouveur connaît le secret.

Les preuves non interactives réduisent la communication entre le prouveur et le vérificateur, ce qui rend les preuves ZK plus efficaces. De plus, une fois qu'une preuve est générée, elle peut être vérifiée par n'importe qui d'autre (avec accès au secret partagé et à l'algorithme de vérification).

**PART.**06

Solutions techniques et applications de preuve de connaissance zéro

La technologie Zero-knowledge permet aux développeurs non seulement de tirer parti de la sécurité des chaînes de blocs sous-jacentes telles qu'Ethereum, mais également d'améliorer le débit et la vitesse des transactions pour les dApps, et en même temps de mettre les informations personnelles des utilisateurs hors chaîne pour protéger la confidentialité des utilisateurs. Les transactions seront regroupées et téléchargées sur la chaîne afin de réduire le coût d'utilisation pour les utilisateurs finaux. En fin de compte, les projets peuvent tirer parti de ces capacités pour créer des dApps avancées qui non seulement rivalisent avec les systèmes Web2 en termes de performances, mais conservent également les avantages de la décentralisation de Web3.

(Source de l'image : maillon de chaîne)

Dans Layer2, zk-rollup regroupera plusieurs transactions et les publiera sur la blockchain Layer1, et publiera également une preuve de connaissance nulle pour vérifier la validité du calcul. Les preuves publiées en chaîne sont également appelées "preuves de validité". ** La technologie de preuve de validité est divisée en deux types : SNARK et STARK. **

zk-SNARs

Le nom complet de SNARK est "argument succinct non interactif à connaissance nulle sur la connaissance" (preuve succincte non interactive à connaissance nulle). Il s'agit d'une preuve cryptographique que le fichier est petit et facilement vérifiable. Il génère une preuve cryptographique à l'aide d'une courbe elliptique qui suppose que le logarithme discret d'un élément de courbe elliptique aléatoire ne peut pas être trouvé à partir d'un point de base public. Le coût de calcul de la courbe elliptique est inférieur à la fonction de hachage de STARK, donc le coût en gaz du protocole SNARK est inférieur.

Boîtier:Zcash, Loopring, zkSync1.0, zkSync 2.0, Zigzag, Mine

zk-STARK

Le nom complet de STARK est "zero-knowledge scalable transparent argument of knowledge" (zero-knowledge scalable, transparent knowledge proof). Cette preuve cryptographique ne nécessite pratiquement aucune interaction entre le prouveur et le vérificateur. Le plus grand avantage des STARK par rapport aux SNARK est que le temps de preuve est plus court et qu'il est plus facile de se développer. De plus, comme les STARK utilisent une fonction de hachage, ils sont également résistants aux attaques quantiques.

Il convient de mentionner que l'inventeur des STARK est Eli Ben-Sasson, le co-fondateur de StarkWare, l'équipe qui a également développé StarkEx et StarkNet.

Exemples : StarkEx, StarkNet, X immuable, Starkware

PART.07

** Inconvénients de la preuve sans connaissance **

Coût matériel élevé

Selon le système de preuve, le processus de génération de preuve à connaissance nulle est différent. Mais au final, vous serez confrontés à des problèmes difficiles : multiplication de vecteurs de grands nombres (champs ou groupes), notamment multiplication multiscalaire (MSM) à bases variables et fixes, ou transformée de Fourier rapide (FFT) et FFT inverse.

MSM et FFT sont des opérations lentes. Dans un système où FFT et MSM existent, environ 70 % du temps de génération de preuve est consacré à MSM et 30 % à FFT. L'accélération matérielle est nécessaire pour la mise en œuvre dans les calculs complexes. Il est généralement considéré que la technologie la plus importante pour l'accélération matérielle ZK est FPGA plutôt que GPU (en raison du coût et de l'efficacité énergétique) ou ASIC (en raison de leur inflexibilité et de leur long cycle d'itération). Les FPGA haut de gamme sont environ 3 fois moins chers que les GPU haut de gamme. De plus, les FPGA sont plus de 10 fois plus économes en énergie que les GPU, principalement parce que les GPU doivent être connectés à un périphérique hôte, qui consomme beaucoup d'énergie.

Coût de vérification

La vérification de la preuve nécessite de nombreux calculs complexes, ce qui augmente également le coût de calcul. Par exemple, les ZK-rolluos doivent payer environ 500 000 gaz pour vérifier une seule preuve AK-SNARK sur Ethereum, et les ZK-STARK nécessitent des frais encore plus élevés.

Hypothèse de confiance

La prémisse de la preuve de connaissance zéro est que les deux parties sont honnêtes et veulent connaître la vraie réponse, et ne falsifieront pas les données. Dans ZK-SNARK, la génération de paramètres publics une fois peut être réutilisée par les parties participant au protocole de connaissance zéro, ce qui signifie que les données fournies par les participants sont correctes par défaut.

Mais en fait, les utilisateurs n'ont aucun moyen d'évaluer l'honnêteté des participants, même si les participants saisissent de fausses données, les utilisateurs doivent y croire. Il n'y a aucune hypothèse de confiance dans ZK-STARK, et maintenant, les chercheurs travaillent sur des paramètres non fiables pour les ZK-SNARK afin d'améliorer la sécurité du mécanisme de preuve.

** Menace informatique quantique **

ZK-SNARK utilise l'algorithme ECDSA (Elliptic Curve Digital Signature Algorithm) pour le cryptage. Il semble que l'algorithme ECDSA soit sûr à l'heure actuelle, mais le développement d'ordinateurs quantiques à l'avenir est susceptible de casser cet algorithme.

Il est généralement admis que ZK-STARK ne sera pas menacé par l'informatique quantique car il est chiffré à l'aide du hachage anti-collision Contrairement à la paire de clés publique-privée d'ECDSA, le hachage anti-collision est plus difficile à craquer par l'informatique quantique.

Voir l'original
Le contenu est fourni à titre de référence uniquement, il ne s'agit pas d'une sollicitation ou d'une offre. Aucun conseil en investissement, fiscalité ou juridique n'est fourni. Consultez l'Avertissement pour plus de détails sur les risques.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate.io app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)