L'application et les tendances de développement de la technologie zk-SNARKs dans le domaine de la Blockchain.

Revue du développement et des applications de la technologie zk-SNARKs dans le domaine de la Blockchain

Résumé

Les zk-SNARKs(ZKP) sont largement considérés comme l'une des innovations les plus importantes dans le domaine de la Blockchain, après la technologie des registres distribués, et représentent également un domaine clé pour le capital-risque actuel. Cet article passe en revue de manière systématique les quarante dernières années de développement des ZKP et les dernières recherches.

L'article présente d'abord le concept de base et le contexte historique des zk-SNARKs, en se concentrant sur l'analyse de la technologie zk-SNARKs basée sur des circuits, y compris la conception, l'application et les méthodes d'optimisation de solutions telles que le modèle de Ben-Sasson, Pinocchio, Bulletproofs et Ligero. En ce qui concerne l'environnement de calcul, cet article examine comment ZKVM et ZKEVM améliorent la capacité de traitement des transactions, protègent la vie privée et augmentent l'efficacité de la vérification. L'article décrit également le mécanisme de fonctionnement et les méthodes d'optimisation de ZK Rollup en tant que solution d'extension Layer 2, ainsi que les progrès récents en matière d'accélération matérielle, de solutions hybrides et de ZK EVM dédiés.

Enfin, l'article envisage des concepts émergents tels que ZKCoprocessor, ZKML, ZKThreads, ZK Sharding et ZK StateChannels, en explorant leur potentiel en matière d'évolutivité, d'interopérabilité et de protection de la vie privée sur la Blockchain.

Grâce à une analyse complète de ces technologies de pointe et des tendances de développement, cet article offre une perspective systémique pour comprendre et appliquer la technologie ZKP, montrant son immense potentiel pour améliorer l'efficacité et la sécurité des systèmes Blockchain, fournissant ainsi une référence importante pour les décisions d'investissement futures.

Table des matières

Introduction

Une, connaissances de base sur les zk-SNARKs

  1. Présentation
  2. Exemple de zk-SNARKs

Deux, zk-SNARKs non interactifs

  1. Contexte
  2. La proposition de NIZK
  3. Transformation Fiat-Shamir
  4. Jens Groth et ses recherches
  5. Autres recherches

Trois, preuve à connaissance nulle basée sur des circuits

  1. Contexte
  2. Concepts et caractéristiques de base du modèle de circuit
  3. Conception et application des circuits dans les zk-SNARKs
  4. Défauts et défis potentiels

Quatre, zk-SNARKs modèle

  1. Contexte
  2. Modèles d'algorithmes courants
  3. Solution basée sur le PCP linéaire et le problème du logarithme discret
  4. Solution basée sur la preuve des gens ordinaires
  5. Preuve vérifiable basée sur la probabilité ( PCP ) zk-SNARKs
  6. Classification basée sur la phase de configuration de la construction de preuve générale CPC( ).

V. Aperçu et développement de la machine virtuelle zk-SNARKs

  1. Contexte
  2. Catégories existantes de ZKVM
  3. Paradigmes front-end et back-end
  4. Les avantages et inconvénients du paradigme ZKVM

VI. Aperçu et développement des zk-SNARKs sur la machine virtuelle Ethereum

  1. Contexte
  2. Le fonctionnement de ZKEVM
  3. Le processus de mise en œuvre de ZKEVM
  4. Caractéristiques de ZKEVM

Sept, aperçu et développement des solutions de réseau de deuxième couche zk-SNARKs.

  1. Contexte
  2. Le mécanisme de fonctionnement des ZK Rollup
  3. Les inconvénients et optimisations des ZK Rollups

Huit, les directions de développement futures des zk-SNARKs

  1. Accélérer le développement de l'environnement de calcul
  2. La proposition et le développement de ZKML
  3. Développement lié à la technologie d'extension des zk-SNARKs
  4. Le développement de l'interopérabilité des zk-SNARKs

IX. Conclusion

Introduction

Avec l'arrivée de l'ère Web3, les applications Blockchain (DApps ) se développent rapidement, avec de nouvelles applications apparaissant chaque jour. Ces dernières années, les plateformes Blockchain ont géré chaque jour les activités de millions d'utilisateurs, traitant des milliards de transactions. Les vastes données générées par ces transactions comprennent souvent des informations personnelles sensibles, telles que l'identité des utilisateurs, le montant des transactions, les adresses de compte et les soldes. Étant donné l'ouverture et la transparence de la Blockchain, ces données stockées sont visibles par tous, ce qui a suscité divers problèmes de sécurité et de confidentialité.

Il existe actuellement plusieurs technologies cryptographiques pour faire face à ces défis, y compris le chiffrement homomorphe, les signatures en anneau, le calcul sécurisé multipartite et les zk-SNARKs. Le chiffrement homomorphe permet d'effectuer des opérations sans déchiffrer le texte chiffré, ce qui aide à protéger la sécurité des soldes des comptes et des montants des transactions, mais ne peut pas protéger la sécurité des adresses des comptes. Les signatures en anneau offrent une forme spéciale de signature numérique capable de cacher l'identité du signataire, protégeant ainsi la sécurité des adresses des comptes, mais sont impuissantes à protéger les soldes des comptes et les montants des transactions. Le calcul sécurisé multipartite permet de répartir les tâches de calcul entre plusieurs participants, sans qu'aucun participant ne connaisse les données des autres, protégeant efficacement la sécurité des soldes des comptes et des montants des transactions, mais ne peut pas non plus protéger la sécurité des adresses des comptes. De plus, le chiffrement homomorphe, les signatures en anneau et le calcul sécurisé multipartite ne peuvent pas être utilisés pour vérifier si un prouveur possède suffisamment de montants de transaction dans un environnement de Blockchain sans divulguer les montants des transactions, les adresses des comptes et les soldes des comptes.

Les zk-SNARKs sont une solution plus complète, ce protocole de vérification permet de valider la véracité de certaines propositions sans révéler aucune donnée intermédiaire. Ce protocole ne nécessite pas d'infrastructure de clé publique complexe, et sa mise en œuvre répétée ne donne pas aux utilisateurs malveillants l'opportunité d'obtenir des informations utiles supplémentaires. Grâce aux zk-SNARKs, le vérificateur est en mesure de valider si le prouveur dispose d'un montant de transaction suffisant sans divulguer aucune donnée de transaction privée. Le processus de vérification comprend la génération d'une preuve contenant le montant de transaction revendiqué par le prouveur, puis cette preuve est transmise au vérificateur, qui effectue des calculs prédéfinis sur la preuve et produit le résultat final, permettant ainsi de conclure si la déclaration du prouveur est acceptée. Si la déclaration du prouveur est acceptée, cela signifie qu'il dispose d'un montant de transaction suffisant. Le processus de vérification mentionné ci-dessus peut être enregistré sur la Blockchain, sans aucune falsification.

Cette caractéristique du ZKP lui permet de jouer un rôle central dans les transactions Blockchain et les applications de cryptomonnaies, en particulier en matière de protection de la vie privée et d'extension du réseau, ce qui en fait non seulement un sujet de recherche académique, mais également considéré comme l'une des innovations technologiques les plus importantes depuis la mise en œuvre réussie de la technologie des registres distribués (, en particulier du Bitcoin ). C'est également une piste clé pour les applications industrielles et le capital-risque.

De ce fait, de nombreux projets de réseau basés sur ZKP ont émergé, tels que ZkSync, StarkNet, Mina, Filecoin et Aleo. Avec le développement de ces projets, les innovations algorithmiques concernant ZKP ne cessent d'apparaître, et il est rapporté qu'un nouvel algorithme voit le jour presque chaque semaine. De plus, le développement de matériel lié à la technologie ZKP progresse rapidement, y compris des puces spécialement optimisées pour ZKP. Par exemple, des projets tels qu'Ingonyama, Irreducible et Cysic ont déjà réalisé des levées de fonds à grande échelle, ces développements non seulement démontrent les progrès rapides de la technologie ZKP, mais reflètent également la transition du matériel général vers du matériel dédié tel que GPU, FPGA et ASIC.

Ces avancées montrent que la technologie des zk-SNARKs n'est pas seulement une percée importante dans le domaine de la cryptographie, mais aussi un moteur clé pour la réalisation d'applications plus larges des technologies Blockchain (, en particulier en ce qui concerne l'amélioration de la protection de la vie privée et de la capacité de traitement ).

Ainsi, nous avons décidé d'organiser systématiquement les connaissances relatives aux zk-SNARKs ( ZKP ) afin de mieux nous aider à prendre des décisions d'investissement futures. Pour cela, nous avons examiné de manière exhaustive les articles académiques clés sur les ZKP ( en les classant selon leur pertinence et leur nombre de citations ) ; en même temps, nous avons également analysé en détail les informations et les livres blancs des projets leaders dans ce domaine ( en les classant selon leur taille de financement ). Cette collecte et analyse de données exhaustives ont fourni une base solide pour la rédaction de cet article.

I. Connaissances de base sur les zk-SNARKs

1. Aperçu

En 1985, Goldwasser, Micali et Rackoff ont introduit pour la première fois le concept de zk-SNARKs ( ZKP ) et de preuves de connaissance interactives ( IZK ) dans un article. Cet article est considéré comme le fondement des zk-SNARKs, définissant de nombreux concepts ayant influencé la recherche académique ultérieure. Par exemple, la connaissance est définie comme "une sortie de calcul intractable", c'est-à-dire que la connaissance doit être une sortie et qu'il s'agit d'un calcul intractable, ce qui signifie qu'il ne peut pas s'agir d'une fonction simple, mais d'une fonction complexe. Le calcul intractable peut généralement être compris comme un problème NP, c'est-à-dire un problème dont la solution peut être vérifiée en temps polynomial, le temps polynomial désignant le temps d'exécution d'un algorithme pouvant être exprimé par une fonction polynomiale de la taille de l'entrée. C'est un critère important pour évaluer l'efficacité et la faisabilité des algorithmes en informatique. Étant donné que le processus de résolution des problèmes NP est complexe, il est considéré comme un calcul intractable ; mais son processus de vérification est relativement simple, ce qui le rend très adapté à la vérification des zk-SNARKs.

Un exemple classique de problème NP est le problème du voyageur de commerce, qui consiste à trouver le chemin le plus court pour visiter une série de villes et revenir au point de départ. Bien qu'il puisse être difficile de trouver le chemin le plus court, il est relativement facile de vérifier si un chemin donné est le plus court. En effet, la vérification de la distance totale d'un chemin spécifique peut être effectuée en temps polynomial.

Goldwasser et al. ont introduit le concept de "complexité de la connaissance" dans leur article, afin de quantifier la quantité de connaissance révélée par le prouveur au vérificateur dans un système de preuve interactif. Ils ont également proposé le système de preuve interactif (IPS), dans lequel le prouveur (Prover) et le vérificateur (Verifier) interagissent par de multiples tours pour prouver la véracité d'une déclaration.

En résumé, la définition du zk-SNARKs résumée par Goldwasser et al. est une forme particulière de preuve interactive, dans laquelle le vérificateur n'obtient aucune information supplémentaire en dehors de la vérité de l'énoncé pendant le processus de vérification ; et elle présente trois caractéristiques fondamentales, notamment :

  1. Complétude ( completeness ) : Si la preuve est vraie, le prouveur honnête peut convaincre le vérificateur honnête de ce fait ;

  2. Fiabilité ( soundness ) : Si le prouveur ne connaît pas le contenu de la déclaration, il ne peut tromper le vérificateur qu'avec une probabilité négligeable ;

  3. zk-SNARKs(zero-knowledge): À la fin du processus de preuve, le vérificateur ne reçoit que l'information "le prouveur possède cette connaissance", sans obtenir de contenu supplémentaire.

2. Exemple de zk-SNARKs

Pour mieux comprendre les zk-SNARKs et leurs propriétés, voici un exemple vérifiant si le prouveur possède certaines informations privées, cet exemple se divise en trois phases : configuration, défi et réponse.

Première étape : configurer (Setup)

À cette étape, l'objectif du prouveur est de créer une preuve qu'il connaît un certain nombre secret s, mais sans montrer directement s.

Définir le chiffre secret s; Choisissez deux grands nombres premiers p et q, calculez leur produit n. Soit les nombres premiers p et q, calculez le n obtenu; Calculer v=s^2 mod n, ici, v est envoyé au vérificateur comme une partie de la preuve, mais il n'est pas suffisant pour que le vérificateur ou tout observateur puisse déduire s; Choisissez un entier aléatoire r, calculez x=r^2 mod n et envoyez-le au vérificateur. Cette valeur x est utilisée pour le processus de vérification ultérieur, mais ne révèle pas non plus s. Soit l'entier aléatoire r, calculez x obtenu.

Deuxième étape : défi (Challenge)

Le validateurs choisissent aléatoirement un endroit a( qui peut être 0 ou 1), puis l'envoient au prouveur. Ce "défi" détermine les étapes que le prouveur doit suivre ensuite.

Troisième étape : réponse (Response)

Selon la valeur a émise par le validateur, le prouveur répond :

Si a=0, le prouveur envoie g=r( où r est le nombre aléatoire qu'il a choisi précédemment ).

Si a=1, le prouveur calcule g=rs mod n et l'envoie. Soit la bit aléatoire a envoyé par le vérificateur, selon la valeur de a, le prouveur calcule g;

Enfin, le vérificateur utilise le g reçu pour vérifier si x est égal à g^2 mod n. Si l'égalité est vraie, le vérificateur accepte cette preuve. Quand a=0, le vérificateur calcule g^2 mod n, vérifiant x à droite ; quand a=1, le vérificateur calcule g^2 mod n, vérifiant xv à droite.

Ici, nous voyons que le validateur calcule x=g^2 mod n, ce qui indique que le prouveur a réussi à passer le processus de validation, tout en ne révélant pas son chiffre secret s. Ici, comme a ne peut prendre que 0 ou 1, il n'y a que deux possibilités, la probabilité que le prouveur réussisse à passer la validation par chance est ( lorsque a prend 0, soit 1/2. Mais le validateur va ensuite défier le prouveur n fois, le prouveur change continuellement les chiffres concernés, les soumet au validateur, et réussit toujours à passer le processus de validation. Ainsi, la probabilité que le prouveur réussisse à passer la validation par chance est )1/2(^n) tend vers 0(, ce qui prouve que le prouveur connaît effectivement un chiffre secret s. Cet exemple prouve l'intégrité, la fiabilité et la nature de zéro connaissance du système de preuve à divulgation nulle de connaissance.

Deux, zk-SNARKs non interactifs

) 1. Contexte

Les zk-SNARKs ### ZKP ( dans les concepts traditionnels sont généralement sous forme de protocoles interactifs et en ligne ; par exemple, le protocole Sigma nécessite généralement trois à cinq tours d'interaction pour compléter l'authentification. Cependant, dans des scénarios tels que les transactions instantanées ou le vote, il n'y a souvent pas d'opportunité pour plusieurs interactions, en particulier dans les applications de la technologie Blockchain, où la fonction de vérification hors ligne devient particulièrement importante.

) 2. Proposition de NIZK

En 1988, Blum, Feldman et Micali ont proposé pour la première fois le concept de preuve non interactive à connaissance nulle ###NIZK(, prouvant qu'il était possible pour le prouvant )Prover( de le faire sans nécessiter plusieurs interactions.

ZK2.97%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • 6
  • Reposter
  • Partager
Commentaire
0/400
NFTRegrettervip
· Il y a 32m
zksnark refait surface, est-ce que cela signifie qu'on va encore se faire prendre pour des cons ?
Voir l'originalRépondre0
TokenToastervip
· 08-07 02:39
L'ère zk est enfin arrivée
Voir l'originalRépondre0
ChainSpyvip
· 08-07 02:34
Je ne comprends vraiment pas pourquoi tout le monde est fou de zk.
Voir l'originalRépondre0
GasFeeCriervip
· 08-07 02:34
Les frais restent élevés en ce moment, ça me rend fou.
Voir l'originalRépondre0
StakeWhisperervip
· 08-07 02:15
C'est encore le zk qui s'est enroulé.
Voir l'originalRépondre0
GreenCandleCollectorvip
· 08-07 02:12
Un nouveau pote du zkvm, quelqu'un sent l'odeur du Portefeuille ?
Voir l'originalRépondre0
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)