Guide du débutant sur les preuves à connaissance nulle : Historique du développement, applications et principes de base

DébutantJan 06, 2024
Cet article présente de manière systématique l'historique du développement et les principes de base des preuves à connaissance nulle.
Guide du débutant sur les preuves à connaissance nulle : Historique du développement, applications et principes de base

Le taux de croissance actuel des projets de preuve à connaissance nulle (ZKP) dans l'industrie de la blockchain est étonnant, en particulier l'augmentation des applications ZKP aux deux niveaux de l'expansion et de la protection de la vie privée, qui nous a exposés à une variété de projets de preuve à connaissance nulle. En raison de la nature extrêmement mathématique du ZKP, il est beaucoup plus difficile pour les amateurs de chiffrement de comprendre le ZK en profondeur. Par conséquent, nous espérons également trier certains changements dans la théorie et l'application du ZKP depuis le début, et explorer l'impact et la valeur sur l'industrie cryptographique avec les lecteurs - apprendre ensemble à travers plusieurs rapports, qui servent également de résumé des pensées de l'équipe de recherche de HashKey Capital. Cet article est le premier de la série. Il présente principalement l'historique du développement, les applications et certains principes de base du ZKP.

1. L'histoire des preuves à connaissance nulle

Le système de preuve moderne à connaissance nulle est né de l'article publié conjointement par Goldwasser, Micali et Rackoff : The Knowledge Complexity of Interactive Proof Systems (GMR85), proposé en 1985 et publié en 1989. Ce document explique principalement quelle quantité de connaissances doit être échangée après K cycles d'interactions dans un système interactif pour prouver qu'une déclaration est correcte. Si les connaissances échangées peuvent être rendues nulles, on parle de preuve à connaissance nulle. On suppose que le prouveur dispose de ressources illimitées et que le vérificateur ne dispose que de ressources limitées. Le problème des systèmes interactifs est que la preuve n'est pas entièrement mathématique, mais correcte au sens probabiliste, bien que la probabilité soit très faible (1/2^n).

Par conséquent, le système interactif n'est pas parfait et n'est qu'approximativement complet. Le système non interactif (NP) né sur cette base est complet et constitue le choix idéal pour le système de preuve à connaissance nulle.

Les premiers systèmes de preuve à connaissance nulle manquaient d'efficacité et de facilité d'utilisation, et sont donc toujours restés au niveau théorique. Ce n'est qu'au cours des dix dernières années qu'ils ont commencé à prospérer. Au fur et à mesure que la cryptographie a pris de l'importance, les preuves à connaissance nulle ont été mises en avant et sont devenues une orientation cruciale. En particulier, l'élaboration d'un protocole de preuve général, non interactif, à connaissance nulle et à taille de preuve limitée est l'un des axes d'exploration les plus critiques.

Fondamentalement, la preuve à connaissance nulle est un compromis entre la vitesse de la preuve, la vitesse de la vérification et la taille de la preuve. Le protocole idéal est une preuve rapide, une vérification rapide et une preuve de petite taille.

La percée la plus importante dans le domaine de la preuve par zéro connaissance est l'article de Groth de 2010 intitulé Short Pairing-based Non-interactive Zero-Knowledge Arguments, qui est également le pionnier théorique du groupe le plus important de zk-SNARKs en ZKP.

Le développement le plus important dans l'application de la preuve à connaissance nulle est le système de preuve à connaissance nulle utilisé par Z-cash en 2015, qui a protégé la confidentialité des transactions et des montants. Plus tard, il s'est transformé en une combinaison de zk-SNARK et de contrats intelligents, et zk-SNARK est entré dans les scénarios d'application plus larges.

Parmi les réalisations académiques importantes au cours de cette période, on peut citer

  1. Pinocchio (PGHR13) en 2013 : Pinocchio : Nearly Practical Verifiable Computation, qui comprime le temps de preuve et de vérification au périmètre applicable, est également le protocole de base utilisé par Zcash.
  2. Groth16 en 2016 : On the Size of Pairing-based Non-interactive Arguments, qui simplifie la taille de la preuve et améliore l'efficacité de la vérification, est actuellement l'algorithme de base ZK le plus utilisé.
  3. Bulletproofs (BBBPWM17) Bulletproofs : Short Proofs for Confidential Transactions and More en 2017 a proposé l'algorithme Bulletproof, une preuve à connaissance nulle non interactive très courte qui ne nécessite pas de configuration de confiance. Elle sera appliquée à Monero 6 mois plus tard et est très rapide. La combinaison de la théorie et de l'application.
  4. En 2018, zk-STARKs (BBHR18) Scalable, transparent, and post-quantum secure computational integrity a proposé un protocole algorithmique ZK-STARK qui ne nécessite pas de paramètres de confiance. Il s'agit d'une autre orientation intéressante du développement de ZK à l'heure actuelle, et elle est également basée sur StarkWare, le projet ZK le plus important, qui est né sur cette base.

D'autres développements tels que PLONK, Halo2, etc. constituent également des progrès extrêmement importants et ont également apporté des améliorations à zk-SNARK.

2. Brève description de l'application de la preuve à connaissance nulle

Les deux applications les plus répandues des preuves à connaissance nulle sont la protection de la vie privée et l'augmentation de la capacité. Au début, avec le lancement des transactions privées et de plusieurs projets bien connus tels que Zcash et Monero, les transactions privées sont devenues une catégorie très importante. Cependant, comme la nécessité des transactions en matière de protection de la vie privée n'était pas aussi importante que le secteur l'espérait, ce type de projets représentatifs a commencé à ralentir. Entrer lentement dans les camps de deuxième et troisième niveaux (sans se retirer de la scène de l'histoire). Au niveau des applications, le besoin d'expansion s'est accru au point qu'Ethereum 2.0 (qui a été rebaptisé couche de consensus) s'est transformé en une voie centrée sur le rollup en 2020. La série ZK est officiellement revenue à l'attention de l'industrie et est devenue le centre d'intérêt.

Transactions privées : De nombreux projets ont mis en œuvre des transactions privées, notamment Zcash utilisant SNARK, Tornado, Monero utilisant bulletproof et Dash. Dash n'utilise pas de ZKP au sens strict, mais un système simple et rudimentaire de mélange de devises qui ne peut cacher que l'adresse, mais pas le montant. Je ne le mentionnerai pas ici.

Les étapes de la transaction zk-SNARKs appliquées par Zcash sont les suivantes :

Source : Démystifier le rôle des zk-SNARKs dans Zcash

  1. La phase de configuration du système génère la clé de preuve (polynôme de preuve de cryptage) et la clé de vérification à l'aide de la fonction KeyGen.
  2. Phase CPA La méthode de cryptage ECIES (Elliptic Curve Integrated Encryption Scheme) est utilisée pour générer les clés publiques et privées.
  3. Étape Minting Coins, le nombre de nouvelles pièces générées. Discours public et engagement de la pièce
  4. Lors de l'étape de versement, un certificat zk-SNARK est généré et ajouté au registre des transactions de versement.
  5. Dans la phase de vérification, le vérificateur vérifie si les volumes de transactions de Mint et de Pour sont corrects.
  6. Au stade de la réception, le destinataire reçoit des pièces. Si vous souhaitez utiliser les pièces reçues, continuez à appeler le service de versement pour former la vérification zk-SNARK, répétez les étapes 4 à 6 ci-dessus pour terminer la transaction.

Zcash a encore des limites dans l'utilisation de la connaissance zéro, c'est-à-dire qu'il est basé sur UTXO, de sorte qu'une partie des informations relatives à la transaction est seulement protégée, mais pas vraiment dissimulée. Étant donné qu'il s'agit d'un réseau distinct basé sur la conception de Bitcoin, il est difficile de l'étendre (de le combiner avec d'autres applications). Le taux d'utilisation réel du blindage (c'est-à-dire des transactions privées) est inférieur à 10 %, ce qui montre que les transactions privées n'ont pas été développées avec succès. (à partir de 2202)

Le grand pool de mélange unique utilisé par Tornado est plus polyvalent et repose sur un réseau "éprouvé" comme Ethereum. Torndao est essentiellement un pool de mélange de devises utilisant zk-SNARK, et le paramètre de confiance est basé sur l'article de Groth 16. Les fonctionnalités disponibles avec Tornado Cash sont les suivantes

  1. Seules les pièces déposées peuvent être retirées.
  2. Aucune pièce ne peut être retirée deux fois
  3. Le processus de preuve est lié à la notification d'annulation de la monnaie (Nullifier). Le hachage de la même preuve mais d'un Nullifier différent ne permettra pas le retrait de pièces.
  4. La sécurité est de 126 bits et ne sera pas dégradée en raison de la composition.

Vitalik a indiqué que, par rapport à l'expansion, la protection de la vie privée est relativement facile à mettre en œuvre. Si des protocoles d'expansion peuvent être établis, la protection de la vie privée ne posera pas de problème.

Expansion : L'expansion de ZK peut se faire sur le réseau de premier niveau, comme Mina, ou sur le réseau de deuxième niveau, c'est-à-dire zk-roll up. L'idée de ZK roll up peut provenir du post de Vitalik en 2018, On-chain scaling to potentially ~500 tx/sec through mass tx validation.

ZK-rollup a deux types de rôles, l'un est celui de séquenceur et l'autre celui d'agrégateur. Le séquenceur est chargé d'emballer les transactions, et l'agrégateur est chargé de fusionner un grand nombre de transactions et de créer un rollup, et de former une preuve SNARK (il peut également s'agir d'une preuve à connaissance nulle basée sur d'autres algorithmes). Cette preuve sera comparée à l'état précédent de la couche 1, puis l'arbre de Merkle Ethereum sera mis à jour, ce qui permettra de calculer un nouvel arbre d'état.

Source : Polygon

Avantages et inconvénients du rollup ZK :

  1. Avantages : faible coût, contrairement à l'OP qui sera attaqué économiquement, pas besoin de retarder les transactions, la vie privée peut être protégée et la finalité peut être atteinte rapidement.
  2. Inconvénients : La constitution d'une preuve ZK nécessite un grand nombre de calculs, problèmes de sécurité (SNARK nécessite un environnement de confiance), ne résiste pas aux attaques quantiques (SNARK, STARK peuvent le faire), l'ordre des transactions peut être modifié.

Source : Recherche sur Ethereum

Sur la base de la disponibilité des données et des méthodes de preuve, Starkware a un diagramme de classification classique pour L2 (la couche de disponibilité des données de Volition peut être sélectionnée on-chain ou off-chain) :

Source : Starkware

Les projets de rollup ZK les plus compétitifs actuellement sur le marché incluent : StarkNet de Starkware, zkSync de Matterlabs et Aztec connect d'Aztec, Hermez et Miden de Polygon, Loopring, Scroll, etc.

L'itinéraire technique consiste essentiellement à choisir SNARK (et ses versions améliorées) et STARK, ainsi que la prise en charge de l'EVM (y compris la compatibilité ou l'équivalence).

  1. Aztec a développé un protocole SNARK généralisé, le protocole Plonk. L'Aztec3 en service peut prendre en charge l'EVM, mais la protection de la vie privée prime sur la compatibilité avec l'EVM.
  2. Starnet utilise zk-STARK, un zkp qui ne nécessite pas de paramètres de confiance, mais qui ne prend pas actuellement en charge l'EVM et possède son propre compilateur et langage de développement.
  3. zkSync utilise également plonk et prend en charge EVM. zkSync 2.0 est compatible avec les EVM et possède son propre zkEVM
  4. Scroll, un rollup ZK compatible EVM, l'équipe est également un contributeur important au projet zkEVM de la Fondation Ethereum.

Discutez brièvement des problèmes de compatibilité des EVM :

La compatibilité entre le système ZK et l'EVM a toujours été un casse-tête, et la plupart des projets choisissent entre les deux. Ceux qui mettent l'accent sur le ZK peuvent construire une machine virtuelle dans leur propre système et avoir leur propre langage ZK et leur propre compilateur, mais cela rendra l'apprentissage plus difficile pour les développeurs et, comme il ne s'agit pas d'un code source ouvert, il deviendra une boîte noire. D'une manière générale, l'industrie a actuellement deux options. La première consiste à être entièrement compatible avec les opcodes de Solidity, et la seconde à concevoir une nouvelle machine virtuelle compatible avec ZK et Solidity. L'industrie ne s'attendait pas à une intégration aussi rapide au début, mais l'itération rapide de la technologie au cours de l'année ou des deux dernières années a porté la compatibilité EVM à un nouveau niveau, et les développeurs peuvent atteindre un certain degré de migration transparente (c'est-à-dire la chaîne principale Ethereum à ZK rollup) est un développement passionnant, qui affectera l'écologie du développement de ZK et le paysage concurrentiel. Nous examinerons cette question en détail dans des rapports ultérieurs.

3. Principes de base de la mise en œuvre de ZK SNARK

Goldwasser, Micali et Rackoff ont proposé que les preuves à connaissance nulle aient trois propriétés :

  1. Complétude : Chaque déclaration avec des témoins raisonnables peut être vérifiée par le vérificateur.
  2. Solidité : Toute déclaration ne comportant que des témoins déraisonnables ne doit pas être vérifiée par le vérificateur.
  3. Connaissance nulle : Le processus de vérification est à connaissance nulle

Pour comprendre ZKP, nous commençons donc par zk-SNARK, car de nombreuses applications blockchain actuelles commencent par SNARK. Tout d'abord, jetons un coup d'œil à zk-SNARK.

zk-SNARK signifie : Une preuve de zéro-connaissance (zh-SNARK) est un ARgument de connaissance successif et non interactif de zéro-connaissance.

  1. Connaissance nulle : Le processus de preuve est à connaissance zéro et n'expose pas d'informations redondantes.
  2. Succinct : petite taille de vérification
  3. Non-interactif : processus non interactif
  4. Arguments : Le calcul est fiable, c'est-à-dire que le prouveur disposant d'une puissance de calcul limitée ne peut pas falsifier la preuve et que le prouveur disposant d'une puissance de calcul illimitée peut falsifier la preuve.
  5. de la connaissance : Le prouveur ne peut pas construire un paramètre et une preuve sans connaître des informations valides.
  6. Il est impossible pour le prouveur de construire un ensemble de paramètres et de preuves sans connaître le témoin (tel que l'entrée d'une fonction de hachage ou un chemin pour déterminer un nœud de l'arbre de Merkle).

Le principe de preuve du zk-SNARK de Groth16 est le suivant :

Source : https://learnblockchain.cn/article/3220

Les étapes sont les suivantes :

  1. Convertir le problème en circuit
  2. Aplatissez le circuit sous la forme de R1CS.
  3. Convertir R1CS au format QAP (Quadratic Arithmetic Programs)
  4. Établir une configuration de confiance et générer des paramètres aléatoires, y compris PK (proving key) et VK (verifying key).
  5. Génération de preuves et vérification de zk-SNARK

Dans le prochain article, nous commencerons à étudier les principes et les applications de zk-SNARK, nous examinerons le développement de ZK-SNARK à travers plusieurs cas et nous explorerons sa relation avec zk-STARK.

Clause de non-responsabilité:

  1. Cet article est repris de[HashKey Capital]. Tous les droits d'auteur appartiennent à l'auteur original[HashKey Capital]. Si vous avez des objections à cette réimpression, veuillez contacter l'équipe de Gate Learn, qui s'en chargera rapidement.
  2. Clause de non-responsabilité : Les points de vue et les opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent pas un conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe de Gate Learn. Sauf mention contraire, il est interdit de copier, distribuer ou plagier les articles traduits.

Guide du débutant sur les preuves à connaissance nulle : Historique du développement, applications et principes de base

DébutantJan 06, 2024
Cet article présente de manière systématique l'historique du développement et les principes de base des preuves à connaissance nulle.
Guide du débutant sur les preuves à connaissance nulle : Historique du développement, applications et principes de base

Le taux de croissance actuel des projets de preuve à connaissance nulle (ZKP) dans l'industrie de la blockchain est étonnant, en particulier l'augmentation des applications ZKP aux deux niveaux de l'expansion et de la protection de la vie privée, qui nous a exposés à une variété de projets de preuve à connaissance nulle. En raison de la nature extrêmement mathématique du ZKP, il est beaucoup plus difficile pour les amateurs de chiffrement de comprendre le ZK en profondeur. Par conséquent, nous espérons également trier certains changements dans la théorie et l'application du ZKP depuis le début, et explorer l'impact et la valeur sur l'industrie cryptographique avec les lecteurs - apprendre ensemble à travers plusieurs rapports, qui servent également de résumé des pensées de l'équipe de recherche de HashKey Capital. Cet article est le premier de la série. Il présente principalement l'historique du développement, les applications et certains principes de base du ZKP.

1. L'histoire des preuves à connaissance nulle

Le système de preuve moderne à connaissance nulle est né de l'article publié conjointement par Goldwasser, Micali et Rackoff : The Knowledge Complexity of Interactive Proof Systems (GMR85), proposé en 1985 et publié en 1989. Ce document explique principalement quelle quantité de connaissances doit être échangée après K cycles d'interactions dans un système interactif pour prouver qu'une déclaration est correcte. Si les connaissances échangées peuvent être rendues nulles, on parle de preuve à connaissance nulle. On suppose que le prouveur dispose de ressources illimitées et que le vérificateur ne dispose que de ressources limitées. Le problème des systèmes interactifs est que la preuve n'est pas entièrement mathématique, mais correcte au sens probabiliste, bien que la probabilité soit très faible (1/2^n).

Par conséquent, le système interactif n'est pas parfait et n'est qu'approximativement complet. Le système non interactif (NP) né sur cette base est complet et constitue le choix idéal pour le système de preuve à connaissance nulle.

Les premiers systèmes de preuve à connaissance nulle manquaient d'efficacité et de facilité d'utilisation, et sont donc toujours restés au niveau théorique. Ce n'est qu'au cours des dix dernières années qu'ils ont commencé à prospérer. Au fur et à mesure que la cryptographie a pris de l'importance, les preuves à connaissance nulle ont été mises en avant et sont devenues une orientation cruciale. En particulier, l'élaboration d'un protocole de preuve général, non interactif, à connaissance nulle et à taille de preuve limitée est l'un des axes d'exploration les plus critiques.

Fondamentalement, la preuve à connaissance nulle est un compromis entre la vitesse de la preuve, la vitesse de la vérification et la taille de la preuve. Le protocole idéal est une preuve rapide, une vérification rapide et une preuve de petite taille.

La percée la plus importante dans le domaine de la preuve par zéro connaissance est l'article de Groth de 2010 intitulé Short Pairing-based Non-interactive Zero-Knowledge Arguments, qui est également le pionnier théorique du groupe le plus important de zk-SNARKs en ZKP.

Le développement le plus important dans l'application de la preuve à connaissance nulle est le système de preuve à connaissance nulle utilisé par Z-cash en 2015, qui a protégé la confidentialité des transactions et des montants. Plus tard, il s'est transformé en une combinaison de zk-SNARK et de contrats intelligents, et zk-SNARK est entré dans les scénarios d'application plus larges.

Parmi les réalisations académiques importantes au cours de cette période, on peut citer

  1. Pinocchio (PGHR13) en 2013 : Pinocchio : Nearly Practical Verifiable Computation, qui comprime le temps de preuve et de vérification au périmètre applicable, est également le protocole de base utilisé par Zcash.
  2. Groth16 en 2016 : On the Size of Pairing-based Non-interactive Arguments, qui simplifie la taille de la preuve et améliore l'efficacité de la vérification, est actuellement l'algorithme de base ZK le plus utilisé.
  3. Bulletproofs (BBBPWM17) Bulletproofs : Short Proofs for Confidential Transactions and More en 2017 a proposé l'algorithme Bulletproof, une preuve à connaissance nulle non interactive très courte qui ne nécessite pas de configuration de confiance. Elle sera appliquée à Monero 6 mois plus tard et est très rapide. La combinaison de la théorie et de l'application.
  4. En 2018, zk-STARKs (BBHR18) Scalable, transparent, and post-quantum secure computational integrity a proposé un protocole algorithmique ZK-STARK qui ne nécessite pas de paramètres de confiance. Il s'agit d'une autre orientation intéressante du développement de ZK à l'heure actuelle, et elle est également basée sur StarkWare, le projet ZK le plus important, qui est né sur cette base.

D'autres développements tels que PLONK, Halo2, etc. constituent également des progrès extrêmement importants et ont également apporté des améliorations à zk-SNARK.

2. Brève description de l'application de la preuve à connaissance nulle

Les deux applications les plus répandues des preuves à connaissance nulle sont la protection de la vie privée et l'augmentation de la capacité. Au début, avec le lancement des transactions privées et de plusieurs projets bien connus tels que Zcash et Monero, les transactions privées sont devenues une catégorie très importante. Cependant, comme la nécessité des transactions en matière de protection de la vie privée n'était pas aussi importante que le secteur l'espérait, ce type de projets représentatifs a commencé à ralentir. Entrer lentement dans les camps de deuxième et troisième niveaux (sans se retirer de la scène de l'histoire). Au niveau des applications, le besoin d'expansion s'est accru au point qu'Ethereum 2.0 (qui a été rebaptisé couche de consensus) s'est transformé en une voie centrée sur le rollup en 2020. La série ZK est officiellement revenue à l'attention de l'industrie et est devenue le centre d'intérêt.

Transactions privées : De nombreux projets ont mis en œuvre des transactions privées, notamment Zcash utilisant SNARK, Tornado, Monero utilisant bulletproof et Dash. Dash n'utilise pas de ZKP au sens strict, mais un système simple et rudimentaire de mélange de devises qui ne peut cacher que l'adresse, mais pas le montant. Je ne le mentionnerai pas ici.

Les étapes de la transaction zk-SNARKs appliquées par Zcash sont les suivantes :

Source : Démystifier le rôle des zk-SNARKs dans Zcash

  1. La phase de configuration du système génère la clé de preuve (polynôme de preuve de cryptage) et la clé de vérification à l'aide de la fonction KeyGen.
  2. Phase CPA La méthode de cryptage ECIES (Elliptic Curve Integrated Encryption Scheme) est utilisée pour générer les clés publiques et privées.
  3. Étape Minting Coins, le nombre de nouvelles pièces générées. Discours public et engagement de la pièce
  4. Lors de l'étape de versement, un certificat zk-SNARK est généré et ajouté au registre des transactions de versement.
  5. Dans la phase de vérification, le vérificateur vérifie si les volumes de transactions de Mint et de Pour sont corrects.
  6. Au stade de la réception, le destinataire reçoit des pièces. Si vous souhaitez utiliser les pièces reçues, continuez à appeler le service de versement pour former la vérification zk-SNARK, répétez les étapes 4 à 6 ci-dessus pour terminer la transaction.

Zcash a encore des limites dans l'utilisation de la connaissance zéro, c'est-à-dire qu'il est basé sur UTXO, de sorte qu'une partie des informations relatives à la transaction est seulement protégée, mais pas vraiment dissimulée. Étant donné qu'il s'agit d'un réseau distinct basé sur la conception de Bitcoin, il est difficile de l'étendre (de le combiner avec d'autres applications). Le taux d'utilisation réel du blindage (c'est-à-dire des transactions privées) est inférieur à 10 %, ce qui montre que les transactions privées n'ont pas été développées avec succès. (à partir de 2202)

Le grand pool de mélange unique utilisé par Tornado est plus polyvalent et repose sur un réseau "éprouvé" comme Ethereum. Torndao est essentiellement un pool de mélange de devises utilisant zk-SNARK, et le paramètre de confiance est basé sur l'article de Groth 16. Les fonctionnalités disponibles avec Tornado Cash sont les suivantes

  1. Seules les pièces déposées peuvent être retirées.
  2. Aucune pièce ne peut être retirée deux fois
  3. Le processus de preuve est lié à la notification d'annulation de la monnaie (Nullifier). Le hachage de la même preuve mais d'un Nullifier différent ne permettra pas le retrait de pièces.
  4. La sécurité est de 126 bits et ne sera pas dégradée en raison de la composition.

Vitalik a indiqué que, par rapport à l'expansion, la protection de la vie privée est relativement facile à mettre en œuvre. Si des protocoles d'expansion peuvent être établis, la protection de la vie privée ne posera pas de problème.

Expansion : L'expansion de ZK peut se faire sur le réseau de premier niveau, comme Mina, ou sur le réseau de deuxième niveau, c'est-à-dire zk-roll up. L'idée de ZK roll up peut provenir du post de Vitalik en 2018, On-chain scaling to potentially ~500 tx/sec through mass tx validation.

ZK-rollup a deux types de rôles, l'un est celui de séquenceur et l'autre celui d'agrégateur. Le séquenceur est chargé d'emballer les transactions, et l'agrégateur est chargé de fusionner un grand nombre de transactions et de créer un rollup, et de former une preuve SNARK (il peut également s'agir d'une preuve à connaissance nulle basée sur d'autres algorithmes). Cette preuve sera comparée à l'état précédent de la couche 1, puis l'arbre de Merkle Ethereum sera mis à jour, ce qui permettra de calculer un nouvel arbre d'état.

Source : Polygon

Avantages et inconvénients du rollup ZK :

  1. Avantages : faible coût, contrairement à l'OP qui sera attaqué économiquement, pas besoin de retarder les transactions, la vie privée peut être protégée et la finalité peut être atteinte rapidement.
  2. Inconvénients : La constitution d'une preuve ZK nécessite un grand nombre de calculs, problèmes de sécurité (SNARK nécessite un environnement de confiance), ne résiste pas aux attaques quantiques (SNARK, STARK peuvent le faire), l'ordre des transactions peut être modifié.

Source : Recherche sur Ethereum

Sur la base de la disponibilité des données et des méthodes de preuve, Starkware a un diagramme de classification classique pour L2 (la couche de disponibilité des données de Volition peut être sélectionnée on-chain ou off-chain) :

Source : Starkware

Les projets de rollup ZK les plus compétitifs actuellement sur le marché incluent : StarkNet de Starkware, zkSync de Matterlabs et Aztec connect d'Aztec, Hermez et Miden de Polygon, Loopring, Scroll, etc.

L'itinéraire technique consiste essentiellement à choisir SNARK (et ses versions améliorées) et STARK, ainsi que la prise en charge de l'EVM (y compris la compatibilité ou l'équivalence).

  1. Aztec a développé un protocole SNARK généralisé, le protocole Plonk. L'Aztec3 en service peut prendre en charge l'EVM, mais la protection de la vie privée prime sur la compatibilité avec l'EVM.
  2. Starnet utilise zk-STARK, un zkp qui ne nécessite pas de paramètres de confiance, mais qui ne prend pas actuellement en charge l'EVM et possède son propre compilateur et langage de développement.
  3. zkSync utilise également plonk et prend en charge EVM. zkSync 2.0 est compatible avec les EVM et possède son propre zkEVM
  4. Scroll, un rollup ZK compatible EVM, l'équipe est également un contributeur important au projet zkEVM de la Fondation Ethereum.

Discutez brièvement des problèmes de compatibilité des EVM :

La compatibilité entre le système ZK et l'EVM a toujours été un casse-tête, et la plupart des projets choisissent entre les deux. Ceux qui mettent l'accent sur le ZK peuvent construire une machine virtuelle dans leur propre système et avoir leur propre langage ZK et leur propre compilateur, mais cela rendra l'apprentissage plus difficile pour les développeurs et, comme il ne s'agit pas d'un code source ouvert, il deviendra une boîte noire. D'une manière générale, l'industrie a actuellement deux options. La première consiste à être entièrement compatible avec les opcodes de Solidity, et la seconde à concevoir une nouvelle machine virtuelle compatible avec ZK et Solidity. L'industrie ne s'attendait pas à une intégration aussi rapide au début, mais l'itération rapide de la technologie au cours de l'année ou des deux dernières années a porté la compatibilité EVM à un nouveau niveau, et les développeurs peuvent atteindre un certain degré de migration transparente (c'est-à-dire la chaîne principale Ethereum à ZK rollup) est un développement passionnant, qui affectera l'écologie du développement de ZK et le paysage concurrentiel. Nous examinerons cette question en détail dans des rapports ultérieurs.

3. Principes de base de la mise en œuvre de ZK SNARK

Goldwasser, Micali et Rackoff ont proposé que les preuves à connaissance nulle aient trois propriétés :

  1. Complétude : Chaque déclaration avec des témoins raisonnables peut être vérifiée par le vérificateur.
  2. Solidité : Toute déclaration ne comportant que des témoins déraisonnables ne doit pas être vérifiée par le vérificateur.
  3. Connaissance nulle : Le processus de vérification est à connaissance nulle

Pour comprendre ZKP, nous commençons donc par zk-SNARK, car de nombreuses applications blockchain actuelles commencent par SNARK. Tout d'abord, jetons un coup d'œil à zk-SNARK.

zk-SNARK signifie : Une preuve de zéro-connaissance (zh-SNARK) est un ARgument de connaissance successif et non interactif de zéro-connaissance.

  1. Connaissance nulle : Le processus de preuve est à connaissance zéro et n'expose pas d'informations redondantes.
  2. Succinct : petite taille de vérification
  3. Non-interactif : processus non interactif
  4. Arguments : Le calcul est fiable, c'est-à-dire que le prouveur disposant d'une puissance de calcul limitée ne peut pas falsifier la preuve et que le prouveur disposant d'une puissance de calcul illimitée peut falsifier la preuve.
  5. de la connaissance : Le prouveur ne peut pas construire un paramètre et une preuve sans connaître des informations valides.
  6. Il est impossible pour le prouveur de construire un ensemble de paramètres et de preuves sans connaître le témoin (tel que l'entrée d'une fonction de hachage ou un chemin pour déterminer un nœud de l'arbre de Merkle).

Le principe de preuve du zk-SNARK de Groth16 est le suivant :

Source : https://learnblockchain.cn/article/3220

Les étapes sont les suivantes :

  1. Convertir le problème en circuit
  2. Aplatissez le circuit sous la forme de R1CS.
  3. Convertir R1CS au format QAP (Quadratic Arithmetic Programs)
  4. Établir une configuration de confiance et générer des paramètres aléatoires, y compris PK (proving key) et VK (verifying key).
  5. Génération de preuves et vérification de zk-SNARK

Dans le prochain article, nous commencerons à étudier les principes et les applications de zk-SNARK, nous examinerons le développement de ZK-SNARK à travers plusieurs cas et nous explorerons sa relation avec zk-STARK.

Clause de non-responsabilité:

  1. Cet article est repris de[HashKey Capital]. Tous les droits d'auteur appartiennent à l'auteur original[HashKey Capital]. Si vous avez des objections à cette réimpression, veuillez contacter l'équipe de Gate Learn, qui s'en chargera rapidement.
  2. Clause de non-responsabilité : Les points de vue et les opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent pas un conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe de Gate Learn. Sauf mention contraire, il est interdit de copier, distribuer ou plagier les articles traduits.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!