Histoire de l'évolution de la technologie des zk-SNARKs sur 40 ans : une analyse complète, des bases au ZK Rollup.

zk-SNARKs : aperçu technologique et perspectives d'avenir

Résumé

zk-SNARKs(ZKP) est considérée comme l'une des innovations les plus révolutionnaires dans le domaine de la blockchain, juste après la technologie des registres distribués. Cet article propose une revue systématique de près de quarante ans de développement de la technologie ZKP et des recherches les plus récentes.

Tout d'abord, le concept de base et le contexte historique des ZKP sont présentés, en mettant l'accent sur l'analyse des technologies ZKP basées sur des circuits, y compris la conception, les applications et les méthodes d'optimisation de modèles tels que zk-SNARKs, Pinocchio et Bulletproofs. En ce qui concerne l'environnement de calcul, cet article introduit ZKVM et ZKEVM, explorant comment ils améliorent la capacité de traitement des transactions, protègent la vie privée et augmentent l'efficacité de la vérification. L'article explique é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 dernières avancées en matière d'accélération matérielle, de solutions hybrides et de ZK EVM dédiées.

Enfin, cet article envisage des 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 la blockchain.

En analysant ces nouvelles technologies et tendances de développement, cet article offre une perspective complète sur la compréhension et l'application des technologies zk-SNARKs, montrant leur 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

Préface

I. Connaissances de base sur les zk-SNARKs

  1. Aperçu
  2. zk-SNARKs示例

Deux, zk-SNARKs non interactifs

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

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

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

Quatre, modèles 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. Solution basée sur la preuve des personnes ordinaires
  5. Preuve de connaissance nulle vérifiable par probabilité
  6. Classification des phases de configuration basée sur le CPC

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

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

VI. Aperçu et développement de la machine virtuelle Ethereum à connaissance nulle

  1. Contexte
  2. Le fonctionnement de ZKEVM
  3. Le 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 deuxième couche à zk-SNARKs.

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

Huit, les directions futures du zk-SNARKs

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

IX. Conclusion

Introduction

Avec l'avènement de l'ère Web3, les applications blockchain ( DApps ) connaissent une croissance explosive, 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 quantités massives de données générées par ces transactions contiennent souvent des informations personnelles sensibles, telles que l'identité des utilisateurs, le montant des transactions, les adresses de compte et les soldes. En raison de l'ouverture et de la transparence de la blockchain, ces données stockées sont publiques pour tous, ce qui soulève diverses questions de sécurité et de confidentialité.

Actuellement, plusieurs technologies de cryptographie peuvent relever ces défis, notamment le cryptage homomorphe, les signatures en anneau, le calcul multipartite sécurisé et les zk-SNARKs. Le cryptage homomorphe permet d'effectuer des opérations sans déchiffrer le texte chiffré, ce qui contribue à protéger la sécurité des soldes de comptes et des montants des transactions, mais ne peut pas protéger les adresses de comptes. Les signatures en anneau offrent une forme particulière de signature numérique qui peut cacher l'identité du signataire, protégeant ainsi l'adresse du compte, mais n'est pas en mesure de protéger les soldes de comptes et les montants des transactions. Le calcul multipartite sécurisé permet de répartir les tâches de calcul entre plusieurs participants sans que l'un d'eux ne connaisse les données des autres participants, protégeant efficacement les soldes de comptes et les montants des transactions, mais ne peut pas non plus protéger les adresses de comptes. De plus, ces technologies ne peuvent pas vérifier si le prouveur dans un environnement blockchain dispose d'un montant de transaction suffisant sans révéler les montants des transactions, les adresses de comptes et les soldes de comptes.

zk-SNARKs(ZKP) est une solution plus complète, ce protocole de vérification permet de valider certaines propositions sans révéler aucune donnée intermédiaire. Ce protocole ne nécessite pas d'infrastructure à 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 à ZKP, le vérificateur peut valider si le prouveur possède 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 déterminer si la déclaration du prouveur est acceptée. Si la déclaration du prouveur est acceptée, cela signifie qu'il possède un montant de transaction suffisant. Le processus de vérification décrit ci-dessus peut être enregistré sur la blockchain, sans aucune falsification.

La fonctionnalité ZKP joue un rôle central dans les transactions blockchain et les applications de cryptomonnaies, en particulier en ce qui concerne la protection de la vie privée et l'extension du réseau, ce qui en fait non seulement un sujet de recherche académique, mais également une innovation technologique parmi les plus importantes depuis la mise en œuvre réussie de la technologie des registres distribués (, en particulier Bitcoin ). C'est également une voie 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, des innovations algorithmiques concernant ZKP apparaissent constamment, avec des rapports indiquant qu'il y a presque un nouvel algorithme chaque semaine. De plus, le développement de matériel lié à la technologie ZKP progresse également rapidement, y compris des puces spécialement optimisées pour ZKP. Par exemple, des projets comme Ingonyama, Irreducible et Cysic ont déjà réalisé des levées de fonds à grande échelle. Ces développements montrent non seulement les progrès rapides de la technologie ZKP, mais reflètent également la transition du matériel général vers des matériels spécialisés tels que GPU, FPGA et ASIC.

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

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

Une, zk-SNARKs connaissances de base

1. Aperçu

En 1985, les chercheurs Goldwasser, Micali et Rackoff ont proposé pour la première fois les zk-SNARKs dans leur article "The Knowledge Complexity of Interactive Proof-Systems". Cet article est une œuvre fondamentale des zk-SNARKs, définissant de nombreux concepts qui ont influencé les recherches académiques ultérieures. Par exemple, la définition de la connaissance est "une sortie de calcul non réalisable", c'est-à-dire que la connaissance doit être une sortie, et c'est un calcul non réalisable, ce qui signifie qu'elle ne peut pas être une fonction simple, mais doit être une fonction complexe. Un calcul non réalisable peut généralement être compris comme un problème NP, c'est-à-dire un problème dont la validité de la solution peut être vérifiée en temps polynomial, le temps polynomial se référant au temps d'exécution de l'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 donc considéré comme un calcul non réalisable ; 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, 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 que trouver le chemin le plus court puisse être difficile, il est relativement facile de vérifier si un chemin donné est le plus court. En effet, la distance totale d'un chemin spécifique peut être vérifiée en temps polynomial.

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

En résumé, la définition du 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 vérité de l'énoncé lors du processus de vérification ; et trois caractéristiques fondamentales ont été proposées, notamment :

  1. Complétude : Si la preuve est vraie, le prouveur honnête peut persuader le 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 zéro connaissance : à l'issue du processus de preuve, le vérificateur reçoit uniquement l'information "le prouveur possède cette connaissance", sans obtenir aucun contenu supplémentaire.

(# 2.zk-SNARKs exemples

Pour mieux comprendre les zk-SNARKs et leurs propriétés, voici un exemple pour vérifier si le prouveur possède certaines informations confidentielles. Cet exemple se divise en trois étapes : configuration, défi et réponse.

Première étape : configuration

À ce stade, l'objectif du prouveur est de créer une preuve qu'il connaît un certain nombre secret s, sans montrer directement s. Soit le nombre secret s;

Choisissez deux grands nombres premiers p et q, puis 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 permettre au vérificateur ou à tout observateur de déduire s.

Sélectionnez 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 s. Soit l'entier aléatoire r, calculez x obtenu.

Deuxième étape : défi

Le validateur choisit aléatoirement un bit 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

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. Supposons que le vérificateur envoie un bit aléatoire a, selon la valeur de a, le prouveur calcule g;

Enfin, le vérificateur utilise g reçu pour vérifier si x est égal à g^2 mod n. Si l'égalité est vérifiée, le vérificateur accepte cette preuve. Lorsque a=0, le vérificateur calcule g^2 mod n et vérifie x du côté droit ; lorsque a=1, le vérificateur calcule g^2 mod n et vérifie xv du côté droit.

Ici, nous voyons que le x calculé par le vérificateur, x=g^2 mod n, indique que le prouveur a réussi à passer le processus de vérification, tout en ne révélant pas son numéro secret s. Ici, étant donné que a ne peut prendre que 0 ou 1, il n'y a que deux possibilités, la probabilité que le prouveur passe la vérification par chance est de 50%( lorsque a prend 0,). Mais le vérificateur défie ensuite le prouveur n fois, le prouveur change constamment les numéros concernés, les soumet au vérificateur, et réussit toujours à passer le processus de vérification, de sorte que la probabilité que le prouveur passe la vérification par chance est de (1/2)^n( tend vers 0), ce qui prouve que le prouveur connaît effectivement un certain numéro secret s. Cet exemple prouve l'intégrité, la fiabilité et la propriété de zéro connaissance du système de zéro connaissance.

( Deux, zk-SNARKs non interactifs

)# 1. Contexte

zk-SNARKs(ZKP) dans le concept traditionnel est généralement une forme de protocole interactif 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 l'application des technologies blockchain, où la fonctionnalité de vérification hors ligne devient particulièrement importante.

2. Proposition des NIZK

En 1988, Blum, Feldman et Micali ont proposé pour la première fois le concept de preuves non interactives à 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 plusieurs interactions. Cette percée a rendu possible la réalisation de transactions instantanées, de votes et d'applications blockchain.

ZK-7.63%
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
  • 7
  • Partager
Commentaire
0/400
BlockDetectivevip
· 07-15 23:55
zksnark est vraiment bon
Voir l'originalRépondre0
FunGibleTomvip
· 07-15 04:16
Qui peut comprendre ça... On est presque devenu fou.
Voir l'originalRépondre0
FlashLoanLordvip
· 07-14 05:09
Je ne peux pas lire, même un chien ne comprend pas.
Voir l'originalRépondre0
wagmi_eventuallyvip
· 07-14 05:05
Je n'ai utilisé que Stark, je ne comprends pas les autres.
Voir l'originalRépondre0
JustHereForMemesvip
· 07-14 04:55
la technologie zk est vraiment incroyable
Voir l'originalRépondre0
ImpermanentPhilosophervip
· 07-14 04:55
DOGE où ça ne va pas, le zkp n'a-t-il pas été utilisé plus tôt ?
Voir l'originalRépondre0
DaoGovernanceOfficervip
· 07-14 04:53
*soupir* encore une autre enquête manquant des insights critiques de Vitalik de son papier zk de 2022...
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)