Analyse complète de la technologie zk-SNARKs dans les applications Blockchain et perspectives d'avenir

Application et développement de la technologie zk-SNARKs dans le domaine de la Blockchain

Résumé

Les zk-SNARKs ( ZKP ) sont considérés comme l'une des innovations les plus importantes dans le domaine de la Blockchain, et représentent également un axe de préoccupation majeur pour le capital-risque. Cet article passe en revue le développement des ZKP au cours des quarante dernières années et les derniers progrès de la recherche.

Tout d'abord, le concept de base et le contexte historique des ZKP sont présentés, en mettant l'accent sur l'analyse de la technologie ZKP basée sur des circuits, y compris la conception, l'application et l'optimisation des modèles tels que zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs et Ligero. En ce qui concerne l'environnement de calcul, on explore 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 présente également le mécanisme de fonctionnement et les méthodes d'optimisation du ZK Rollup en tant que solution d'extension Layer 2, ainsi que les avancées récentes en matière d'accélération matérielle, de solutions hybrides et de ZK EVM dédiées.

Enfin, cet article envisage les concepts émergents tels que ZKCoprocessor, ZKML, ZKThreads, ZK Sharding et ZK StateChannels, et explore leur potentiel en matière d'évolutivité, d'interopérabilité et de protection de la vie privée dans le domaine de la Blockchain.

En analysant ces technologies et tendances de développement, cet article offre une perspective globale pour comprendre et appliquer la technologie ZKP, démontrant son immense potentiel pour améliorer l'efficacité et la sécurité des systèmes Blockchain, fournissant ainsi des références importantes pour les décisions d'investissement futures.

Table des matières

Avant-propos

Une, connaissances de base sur les zk-SNARKs

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

Deux, zk-SNARKs non interactifs

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

Trois, preuves de connaissance nulle basées sur des circuits

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

Quatre, modèle de zk-SNARKs

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

Cinq, aperçu et développement des zk-SNARKs virtuels.

  1. Contexte
  2. Classification actuelle du ZKVM
  3. Paradigmes front-end et back-end
  4. Les avantages et inconvénients du paradigme ZKVM

Six, aperçu et développement des zk-SNARKs de la machine virtuelle Ethereum

  1. Contexte
  2. Le fonctionnement de ZKEVM
  3. Processus de mise en œuvre de ZKEVM
  4. Les caractéristiques de ZKEVM

Sept, aperçu et développement des solutions de réseau de seconde couche zk-SNARKs

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

Huit, les directions futures du zk-SNARKs.

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

Neuf, 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 supportent chaque jour les activités de millions d'utilisateurs, traitant des milliards de transactions. Les énormes quantités de données générées par ces transactions incluent souvent des informations personnelles sensibles, telles que l'identité des utilisateurs, le montant des transactions, les adresses de compte et les soldes, etc. En raison de l'ouverture et de la transparence de la Blockchain, ces données stockées sont accessibles à tous, ce qui soulève diverses questions de sécurité et de confidentialité.

Actuellement, plusieurs techniques de cryptographie peuvent relever ces défis, notamment le chiffrement homomorphe, les signatures en anneau, le calcul multipartite sécurisé 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 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 particulière de signature numérique capable de cacher l'identité du signataire, protégeant ainsi la sécurité des adresses des comptes, mais elles ne peuvent pas protéger les soldes et les montants des transactions. Le calcul multipartite sécurisé permet de répartir des tâches de calcul entre plusieurs participants sans que l'un d'eux ne connaisse les données des autres participants, protégeant efficacement la sécurité des soldes et des montants des transactions, mais ne peut pas non plus protéger la sécurité des adresses des comptes. De plus, ces techniques ne peuvent pas être utilisées pour vérifier si un prouveur possède un montant de transaction suffisant dans un environnement blockchain sans révéler les montants des transactions, les adresses des comptes et les soldes des comptes.

zk-SNARKs(ZKP) est 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. Le 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'occasion d'obtenir des informations supplémentaires utiles. Grâce à ZKP, le vérificateur peut confirmer 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 la transmission de cette preuve au vérificateur, qui effectue un calcul préétabli sur la preuve et produit le résultat final, permettant ainsi de déterminer 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 susmentionné 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 crypto-monnaie, 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 point focal de la recherche académique, mais également largement 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. 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 apparaissent sans cesse, et il est rapporté qu'une nouvelle algorithme est publiée 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, certains projets ont déjà achevé des levées de fonds à grande échelle, ces développements non seulement démontrent les avancées rapides de la technologie ZKP, mais reflètent également la transition du matériel général vers du matériel spécialisé comme les GPU, FPGA et ASIC.

Ces avancées montrent que la technologie zk-SNARKs n'est pas seulement une percée importante dans le domaine de la cryptographie, mais aussi un moteur clé pour réaliser des applications plus larges de la technologie Blockchain, notamment en matière de protection de la vie privée et de capacité de traitement.

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

I. Connaissances de base sur les zk-SNARKs

( 1. Aperçu

En 1985, les chercheurs Goldwasser, Micali et Rackoff ont proposé pour la première fois le concept de zk-SNARKs dans leur article intitulé "The Knowledge Complexity of Interactive Proof-Systems", ainsi que Zero-Knowledge Proof, ZKP et Interactive Zero-Knowledge, IZK. Cet article est une œuvre fondatrice des zk-SNARKs et définit de nombreux concepts qui ont influencé les recherches académiques ultérieures. Par exemple, la définition de la connaissance est "la sortie d'un calcul non faisable", c'est-à-dire que la connaissance doit être une sortie et qu'elle doit être un calcul non faisable, ce qui signifie qu'elle ne peut pas être une fonction simple, mais doit être une fonction complexe. Un calcul non faisable 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 signifiant que le temps d'exécution de l'algorithme peut ê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 donc considéré comme un calcul non faisable ; cependant, 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, où il s'agit de 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.

Dans leur article, Goldwasser et al. ont introduit le concept de "complexité de la connaissance" pour quantifier la quantité de connaissances divulguées par le prouveur au vérificateur dans les systèmes de preuve interactifs. Ils ont également proposé des systèmes de preuve interactifs )Interactive Proof Systems, IPS###, dans lesquels le prouveur (Prover) et le vérificateur (Verifier) interagissent par plusieurs tours pour prouver la véracité d'une déclaration.

En résumé, la définition des zk-SNARKs résumée par Goldwasser et al. est une forme spéciale de preuve interactive, dans laquelle le vérificateur ne reçoit aucune information supplémentaire en dehors de la valeur de vérité de l'énoncé au cours du processus de vérification; et trois caractéristiques fondamentales ont été proposées, y compris :

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

  2. Fiabilité : 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. Propriété de connaissance nulle : À 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 de vérification du fait qu'un prouveur possède certaines informations privées, cet exemple est divisé en trois phases : configuration, défi et réponse.

Première étape : définir )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. Soit le nombre secret s;

Choisissez deux grands nombres premiers p et q, puis calculez leur produit n. Soit p et q premiers, 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 permettre au vérificateur ou à tout observateur 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 r un entier aléatoire, calculez x obtenu.

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

Le validateur choisit au hasard un emplacement a) qui peut être 0 ou 1###, puis l'envoie 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 un nombre aléatoire qu'il a choisi précédemment ).

Si a=1, le prouveur calcule g=rs mod n et l'envoie. Supposons que le vérificateur envoie le bit aléatoire a, en fonction de la valeur de a, le prouveur calcule g;

Enfin, le validateur vérifie si g^2 mod n est égal à xa^v mod n en fonction de g reçu. Si l'égalité est vérifiée, le validateur accepte cette preuve. Lorsque a=0, le validateur calcule g^2 mod n, le côté droit vérifie xa^v mod n=x; lorsque a=1, le validateur calcule g^2 mod n, le côté droit vérifie xa^v mod n=xv.

Ici, nous voyons que g^2 mod n=xa^v mod n calculé par le vérificateur indique que le prouveur a réussi le processus de vérification sans révéler son chiffre secret s. Ici, puisque a ne peut prendre que 0 ou 1, il n'y a que deux possibilités, la probabilité que le prouveur réussisse la vérification par chance est de 1/2( lorsque a prend 0, soit ). Mais le vérificateur défie ensuite le prouveur k fois, le prouveur change constamment les chiffres pertinents et les soumet au vérificateur, et réussit toujours à passer le processus de vérification, de sorte que la probabilité que le prouveur réussisse la vérification par chance est de (1/2)^k(, tendant ainsi vers 0), prouvant que le prouveur connaît effectivement un chiffre secret s. Cet exemple prouve l'intégrité, la fiabilité et le caractère non révélateur du système de zk-SNARKs.

Deux, zk-SNARKs non interactifs

( 1. Contexte

zk-SNARKs)ZKP( dans le concept traditionnel, il s'agit généralement d'une forme de protocole interactif et en ligne ; par exemple, le protocole Sigma nécessite généralement de 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 capacité 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 de connaissance nulle (NIZK) (, prouvant qu'il était possible pour le prouveur )Prover### et le vérificateur (Verifier) de compléter le processus d'authentification sans nécessiter de multiples interactions. Cette percée a permis que même

ZK4.06%
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
  • 2
  • Partager
Commentaire
0/400
FlatlineTradervip
· Il y a 9h
Histoire ultime de ZK
Voir l'originalRépondre0
PanicSellervip
· 07-25 04:32
bull mais je ne comprends pas
Voir l'originalRépondre0
  • Épingler
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)