La troisième innovation technologique majeure dans l'histoire du développement de la blockchain : l'application d'une technologie de preuve de connaissance nulle
Auteur : Chercheur SUSS NiFT du nœud de finance inclusive de l'Université des sciences sociales de Singapour @Jesse_meta, chercheur Beosin @EatonAshton2, chercheur en sécurité de Least Authority @kaplannie
Que les informations soient stockées sur Internet ou dans des archives hors ligne, qu'elles soient intentionnelles ou accidentelles, les incidents de fuite d'informations sont monnaie courante aujourd'hui et il va sans dire. Tant que les informations sont stockées de manière centralisée, il existe toujours le risque d’un point d’attaque unique. Tant que le processus de vérification nécessitera un tiers de confiance, il y aura des risques éthiques et des inefficacités. La solution à la sécurité de l’information est cruciale et urgente. La technologie de preuve sans connaissance permet aux utilisateurs d'effectuer une vérification plus efficace et plus sécurisée tout en protégeant leur vie privée.
Si Bitcoin est la première invention majeure que la blockchain apporte au monde réel, offrant une nouvelle façon de stocker de la valeur, et que les contrats intelligents d'Ethereum sont le deuxième événement majeur, libérant le potentiel d'innovation, alors l'application de preuves sans connaissance est la solution. la plus grande La troisième plus grande innovation technologique de l'histoire du développement de la blockchain, apportant confidentialité et évolutivité. Il ne s'agit pas seulement d'une partie importante de l'écosystème Web3, mais également d'une technologie de base importante qui a le potentiel de promouvoir le changement social.
Cet article présente les scénarios d'application, les principes de fonctionnement, l'état de développement et les tendances futures de la preuve sans connaissance du point de vue d'une personne non technique, afin de permettre aux lecteurs sans formation technique de comprendre les changements majeurs que la preuve sans connaissance est sur le point de provoquer. apporter. **
1.Qu'est-ce qu'une preuve sans connaissance
La preuve à connaissance nulle (ZKP) est un protocole mathématique proposé pour la première fois dans l'article de 1985 "La complexité des connaissances des preuves interactives" co-écrit par Shafi Goldwasser, Silvio Micali et Charles Rackoff. Sauf pour un certain fait à prouver, il y aura ne pas divulguer toute autre information. Le vérificateur n'a pas accès aux informations secrètes qui ont généré la preuve. Laissez-moi vous donner un exemple pour vous aider à comprendre : je veux prouver que je connais le numéro de téléphone de quelqu'un. Il me suffit de pouvoir composer le numéro de téléphone de cette personne devant tout le monde pour prouver ce fait, sans révéler son véritable numéro. Les preuves sans connaissance offrent un moyen efficace et presque sans risque de partager des données. En utilisant des preuves sans connaissance, nous pouvons conserver la propriété des données, améliorer considérablement la protection de la vie privée et, espérons-le, faire des violations de données une chose du passé.
La preuve sans connaissance présente trois caractéristiques :
Exhaustivité
Si une affirmation est vraie, les vérificateurs honnêtes seront convaincus par les prouveurs honnêtes. Autrement dit, ce qui est bien ne peut pas être mal.
rationalité
Si une affirmation est fausse, dans la grande majorité des cas, un prouveur trompeur ne peut pas faire croire à un vérificateur honnête la fausse affirmation. Autrement dit, ce qui ne va pas ne peut pas être bien.
ZÉRO CONNAISSANCE
Si une déclaration est vraie, le vérificateur ne peut obtenir aucune information supplémentaire autre que le fait que la déclaration est vraie.
Les preuves sans connaissance ont une très faible probabilité de produire des erreurs raisonnables, c'est-à-dire qu'un prouveur tricheur peut faire croire au vérificateur une fausse déclaration. La preuve sans connaissance est une preuve probabiliste, pas une preuve déterministe, mais nous pouvons réduire l'erreur rationnelle à négligeable grâce à certaines techniques.
2. Application de la preuve de connaissance nulle
Les deux scénarios d’application les plus importants de la preuve sans connaissance sont la confidentialité et l’évolutivité.
2.1 Confidentialité
Les preuves sans connaissance permettent aux utilisateurs de partager en toute sécurité les informations nécessaires pour obtenir des biens et des services sans révéler de détails personnels, les protégeant ainsi des pirates informatiques et de la fuite d'informations personnellement identifiables. Avec l'intégration progressive des domaines numérique et physique, la fonction de protection de la vie privée de la preuve sans connaissance est devenue cruciale pour la sécurité des informations dans le Web3 et même au-delà du Web3. Sans preuve de connaissance nulle, les informations sur les utilisateurs existeront dans une base de données tierce de confiance et seront potentiellement vulnérables aux attaques de pirates. Le premier cas d’application de preuve de connaissance nulle dans la blockchain est la pièce de confidentialité Zcash, qui est utilisée pour masquer les détails des transactions.
2.1.1 Protection et vérification des informations d'identité
Dans les activités en ligne, nous devons souvent fournir des informations telles que le nom, la date de naissance, l’e-mail et des mots de passe complexes pour prouver que nous sommes des utilisateurs disposant d’autorisations légales. C’est pourquoi nous laissons souvent en ligne des informations sensibles que nous ne souhaitons pas divulguer. De nos jours, il n’est pas rare de recevoir des appels frauduleux nous appelant par notre nom, ce qui montre que la fuite d’informations personnelles est très grave.
Nous pouvons utiliser la technologie blockchain pour attribuer à chaque personne un identifiant numérique crypté spécial contenant des données personnelles. Cet identifiant numérique permet la construction d'une identité décentralisée et est impossible à falsifier ou à modifier à l'insu de son propriétaire. L'identité décentralisée permet aux utilisateurs de contrôler l'accès aux identités personnelles, de prouver leur citoyenneté sans révéler les détails du passeport, de simplifier le processus d'authentification et de réduire le risque de perte d'accès des utilisateurs en raison de mots de passe oubliés. Des preuves sans connaissance sont générées à partir de données publiques qui peuvent prouver l'identité de l'utilisateur et de données privées avec des informations sur l'utilisateur, et peuvent être utilisées pour la vérification de l'identité lorsque les utilisateurs accèdent aux services. Cela réduit non seulement le processus de vérification fastidieux, améliore l'expérience utilisateur, mais évite également le stockage centralisé des informations utilisateur.
En outre, les preuves sans connaissance peuvent également être utilisées pour créer des systèmes de réputation privés, permettant aux agences de services de vérifier si les utilisateurs répondent à certaines normes de réputation sans révéler leur identité. Les utilisateurs peuvent exporter leur réputation de manière anonyme depuis des plateformes telles que Facebook, Twitter et Github tout en masquant le compte source spécifique.
2.1.2 Paiement anonyme
Les détails des transactions payées par carte bancaire sont généralement visibles par plusieurs parties, notamment les prestataires de paiement, les banques et les gouvernements, ce qui expose dans une certaine mesure la vie privée des citoyens ordinaires et les utilisateurs doivent faire confiance aux parties concernées pour ne pas faire de mal.
Les crypto-monnaies peuvent permettre d’effectuer des paiements sans tiers, permettant ainsi des transactions directes peer-to-peer. Cependant, les transactions sur les chaînes publiques traditionnelles sont actuellement visibles publiquement. Bien que les adresses des utilisateurs soient anonymes, les identités réelles peuvent toujours être trouvées grâce à l'analyse des données des adresses associées sur la chaîne et des données hors chaîne telles que l'échange d'informations KYC et Twitter. Si vous connaissez l'adresse du portefeuille d'une personne, vous pouvez vérifier le solde de votre compte bancaire à tout moment, ce qui peut même constituer une menace pour l'identité et les biens de l'utilisateur.
La preuve sans connaissance peut fournir des paiements anonymes à trois niveaux : les pièces de confidentialité, les applications de confidentialité et les chaînes publiques de confidentialité. La pièce de confidentialité Zcash cache les détails de la transaction, notamment l'expéditeur, l'adresse du destinataire, le type d'actif, la quantité et l'heure. Tornado Cash est une application décentralisée sur Ethereum qui utilise une preuve de connaissance nulle pour obscurcir les détails des transactions afin de fournir des transferts privés (mais elle est également souvent utilisée par les pirates pour blanchir de l'argent). Aleo est une blockchain L1 conçue pour fournir des fonctionnalités de confidentialité aux applications au niveau du protocole.
2.1.3 Comportement honnête
Les preuves sans connaissance peuvent promouvoir un comportement honnête tout en préservant la confidentialité. Le protocole peut exiger que les utilisateurs soumettent des preuves de connaissance nulle pour prouver leur comportement honnête. En raison de la rationalité des preuves sans connaissance (ce qui est faux ne peut pas être vrai), les utilisateurs doivent agir honnêtement conformément aux exigences du protocole avant de pouvoir soumettre des preuves valides.
MACI (Minimal Anti-Collusion Infrastructure) est un scénario d'application qui favorise l'honnêteté et empêche la collusion lors du vote en chaîne ou d'autres formes de prise de décision. Le système utilise des paires de clés et une technologie de preuve sans connaissance pour atteindre cet objectif. Dans MACI, les utilisateurs enregistrent leurs clés publiques dans un contrat intelligent et envoient leurs votes au contrat via des messages cryptés. La fonction anti-collusion de MACI permet aux électeurs de modifier leurs clés publiques pour empêcher les autres de connaître leurs choix de vote. Le coordinateur utilise une preuve de connaissance nulle à la fin de la période de vote pour prouver qu'il a traité correctement tous les messages, et le résultat final du vote est la somme de tous les votes valides. Cela garantit l’intégrité et l’équité du vote.
2.1.4 Vérification des informations personnelles
Lorsque nous souhaitons obtenir un prêt, nous pouvons obtenir une attestation de revenus numérique de l’entreprise pour demander le prêt. La légitimité de cette preuve peut facilement être vérifiée cryptographiquement. La banque peut utiliser une preuve de connaissance nulle pour vérifier que nos revenus atteignent le minimum requis, mais elle n'obtiendra pas d'informations spécifiques sensibles.
2.1.5 Combiner l'apprentissage automatique pour exploiter le potentiel des données privées
Lors de la formation de modèles d’apprentissage automatique, de grandes quantités de données sont généralement nécessaires. En utilisant des preuves sans connaissance, les propriétaires de données peuvent prouver que leurs données répondent aux exigences de formation du modèle sans réellement les exposer. Cela permet d’exploiter les données privées et de les monétiser.
De plus, les preuves sans connaissance peuvent permettre aux créateurs de modèles de prouver que leurs modèles répondent à certaines mesures de performances sans exposer les détails du modèle afin d'empêcher d'autres personnes de copier ou de falsifier leurs modèles.
2.2 Extensible
À mesure que le nombre d’utilisateurs de la blockchain augmente, un grand nombre de calculs sont nécessaires sur la blockchain, provoquant une congestion des transactions. Certaines blockchains emprunteront la voie de l'expansion du sharding, mais cela nécessitera un grand nombre de modifications complexes de la couche de base de la blockchain, ce qui peut menacer la sécurité de la blockchain. Une autre solution plus réalisable consiste à emprunter la voie ZK-Rollup, à utiliser des calculs vérifiables, à sous-traiter les calculs à des entités sur une autre chaîne pour exécution, puis à soumettre la preuve de connaissance nulle et les résultats vérifiables à la chaîne principale pour vérification du sexe. La preuve sans connaissance garantit l'authenticité de la transaction. La chaîne principale n'a qu'à mettre à jour le résultat à l'état. Il n'est pas nécessaire de stocker les détails ou de rejouer les calculs, et il n'est pas nécessaire d'attendre que d'autres discutent de l'authenticité de la transaction. transaction, ce qui améliore considérablement l’efficacité et l’évolutivité. Les développeurs peuvent utiliser des preuves sans connaissance pour concevoir des applications de nœuds légers pouvant fonctionner sur du matériel courant tel que les téléphones mobiles, ce qui est plus propice à ce que le Web3 atteigne le grand public.
L'extension de la preuve de connaissance nulle peut être appliquée à la fois au réseau de première couche, tel que le protocole Mina, et aux rollups ZK du réseau de deuxième couche.
3. Comment fonctionnent les preuves sans connaissance
Dmitry Laverenov (2019) divise les structures de preuve sans connaissance en interactives et non interactives.
3.1 Preuve interactive de connaissance nulle
La forme de base de la preuve interactive à connaissance nulle se compose de trois étapes : preuve, challenger et réponse.
Preuve : les informations secrètes cachées constituent la preuve du prouveur. Ces preuves posent une série de questions auxquelles seule une personne connaissant l’information peut répondre correctement. Le prouveur commence à sélectionner des questions au hasard et envoie les réponses calculées au vérificateur pour preuve.
Défi : Le vérificateur choisit au hasard une autre question dans l'ensemble et demande au prouveur d'y répondre.
Réponse : Le prouveur accepte la question, calcule la réponse et renvoie le résultat au vérificateur. La réponse du prouveur permet au vérificateur de vérifier si le prouveur connaît la preuve.
Ce processus peut être répété plusieurs fois jusqu'à ce que la probabilité que le prouveur devine la bonne réponse sans connaître les informations secrètes devienne suffisamment faible. Pour donner un exemple mathématique simplifié, si la probabilité que le prouveur puisse deviner la bonne réponse sans connaître l'information secrète est de 1/2 et que l'interaction est répétée dix fois, la probabilité que le prouveur réussisse à chaque fois n'est que de 9,7 sur 10 000. Si vous souhaitez vérifier La possibilité qu'une personne approuve par erreur une fausse certification est extrêmement faible.
3.2 Preuve non interactive de connaissance nulle
Les preuves interactives à connaissance nulle ont des limites : d'une part, le prouveur et le vérificateur doivent exister en même temps et effectuer des vérifications répétées. D'autre part, chaque calcul d'une nouvelle preuve nécessite que le prouveur et le vérificateur passent un test. ensemble d'informations. La preuve ne peut pas être réutilisée dans une vérification indépendante.
Afin de résoudre les limites des preuves interactives à connaissance nulle, Manuel Blum, Paul Feldman et Silvio Micali ont proposé des preuves non interactives à connaissance nulle, dans lesquelles le prouveur et le vérificateur partagent la clé, et un seul cycle de vérification est requis. pour que la preuve sans connaissance s'avère plus efficace. Le prouveur calcule les informations secrètes via un algorithme spécial pour générer une preuve de connaissance nulle et l'envoie au vérificateur. Le vérificateur utilise un autre algorithme pour vérifier si le prouveur connaît les informations secrètes. Une fois cette preuve sans connaissance générée, toute personne disposant de la clé partagée et de l’algorithme de vérification peut la vérifier.
La preuve non interactive à connaissance nulle constitue une avancée majeure dans la technologie de preuve à connaissance nulle et favorise le développement des systèmes de preuve à connaissance nulle actuels. Les principales méthodes sont ZK-SNARK et ZK-STARK.
4. Principales voies techniques de la preuve zéro connaissance
Alchemy (2022) divise les voies techniques de la preuve sans connaissance en ZK-SNARK, ZK-STARK et ZK-SNARK récursif.
4.1 ZK-SNARK
Les ZK-SNARK sont une preuve concise et non interactive sans connaissance nulle.
Pour qu'une chaîne publique garantisse l'exactitude des transactions exécutées sur le réseau, cela doit être réalisé en faisant en sorte que d'autres ordinateurs (nœuds) réexécutent chaque transaction. Cependant, cette méthode amènera chaque nœud à réexécuter chaque transaction, ce qui ralentira le réseau et limitera l'évolutivité. Les nœuds doivent également stocker les données de transaction, ce qui entraîne une croissance exponentielle de la taille de la blockchain.
Pour ces restrictions, ZK-SNARK entre en jeu. Il peut prouver l'exactitude des calculs effectués hors chaîne sans obliger les nœuds à rejouer chaque étape du calcul. Cela élimine également le besoin pour les nœuds de stocker des données de transaction redondantes et augmente le débit du réseau.
L'utilisation de SNARK pour vérifier les calculs hors chaîne code le calcul dans une expression mathématique pour former une preuve de validité. Le vérificateur vérifie l'exactitude de la preuve. Si la preuve réussit tous les contrôles, le calcul sous-jacent est considéré comme valide. La taille d'une preuve de validité est plusieurs fois plus petite que le calcul qu'elle vérifie, c'est pourquoi nous appelons les SNARK succincts.
La plupart des rollups ZK utilisant ZK-SNARK suivent les étapes suivantes.
**1. Les utilisateurs L2 signent la transaction et la soumettent au vérificateur. **
**2. Le vérificateur utilise la cryptographie pour compresser plusieurs transactions afin de générer les certificats de validité correspondants (SNARK). **
**3. Le contrat intelligent sur la chaîne L1 vérifie le certificat de validité et détermine si ce lot de transactions est publié sur la chaîne principale. **
Il convient de mentionner que ZK-SNARK nécessite des paramètres fiables. A ce stade, le générateur de clé prend un programme et un paramètre secret pour générer deux clés publiques utilisables, une pour créer la preuve et une pour vérifier la preuve. Ces deux clés publiques n'ont besoin de générer des paramètres publics qu'une seule fois lors d'une cérémonie de configuration de confiance et peuvent être utilisées plusieurs fois par les parties souhaitant participer au protocole sans connaissance. Les utilisateurs doivent être sûrs que les participants aux rituels de configuration de confiance ne sont pas méchants et qu'il n'existe aucun moyen d'évaluer l'honnêteté des participants. Connaître les paramètres secrets peut générer de fausses preuves et tromper le vérificateur, il existe donc des risques potentiels pour la sécurité. Des chercheurs explorent actuellement des solutions ZK-SNARK qui ne nécessitent pas d'hypothèses de confiance.
Avantage
1. Sécurité
Le rollup ZK est considéré comme une solution d'expansion plus sécurisée que le rollup OP car ZK-SNARK utilise un mécanisme de sécurité de cryptage avancé, ce qui rend difficile la tromperie des vérificateurs et la conduite de comportements malveillants.
2. Débit élevé
ZK-SNARK réduit la quantité de calcul au bas d'Ethereum, atténuant ainsi la principale congestion du réseau. Les calculs hors chaîne partagent les coûts de transaction, ce qui accélère les vitesses de transaction.
3. Petit format d'épreuve
La petite taille des preuves SNARK les rend faciles à vérifier sur la chaîne principale, ce qui signifie que les frais de gaz pour la vérification des transactions hors chaîne sont inférieurs, réduisant ainsi le coût pour les utilisateurs.
Limites
1. Centralisation relative
S'appuyer sur une configuration fiable la plupart du temps. Cela va à l’encontre de l’intention initiale de la blockchain de supprimer la confiance.
Générer des preuves de validité avec les ZK-SNARK est un processus gourmand en calcul et le prouveur doit investir dans du matériel spécialisé. Ce matériel est cher et seules quelques personnes peuvent se le permettre, le processus de preuve de ZK-SNARK est donc hautement centralisé.
2 ZK-SNARK utilise la cryptographie à courbe elliptique (ECC) pour crypter les informations utilisées pour générer des preuves de validité et est actuellement relativement sécurisé, mais les progrès de l'informatique quantique pourraient briser son modèle de sécurité.
Projets utilisant ZK SNARK
Polygone Hermez
Polygon a acquis Hermez pour 250 millions de dollars américains en 2021, devenant ainsi la première fusion et acquisition complète de deux réseaux blockchain. La technologie ZK et les outils qu'Hermez a apportés à la base d'utilisateurs en croissance rapide de Polygon ont permis à Polygon d'obtenir de l'aide pour développer zkEVM. Hermez 1.0 est une plateforme de paiement qui exécute un lot de transactions hors chaîne, permettant aux utilisateurs de transférer facilement des jetons ERC-20 d'un compte Hermez à un autre compte Hermez, avec jusqu'à 2 000 transactions par seconde.
Hermez 2.0 agit comme un zkEVM sans connaissance pour exécuter de manière transparente les transactions Ethereum, y compris les contrats intelligents avec vérification sans connaissance. Il est entièrement compatible avec Ethereum et ne nécessite pas de nombreuses modifications du code du contrat intelligent, ce qui permet aux développeurs de déployer facilement des projets L1 sur Polygon Hermez. Hermez 1.0 utilise des preuves SNARK et 2.0 utilise à la fois des preuves SNARK et des preuves STARK. Dans la version 2.0, STARK-proof est utilisé pour prouver la validité des transactions hors chaîne. Cependant, le coût de la vérification de la preuve STARK sur la chaîne principale est très élevé, c'est pourquoi la preuve SNARK est introduite pour vérifier STARK.
zkSync
zkSync 1.0, lancé par Matter Labs en 2020, ne prend pas en charge les contrats intelligents et est principalement utilisé pour les transactions ou les transferts. ZkSync 2.0, qui prend en charge les contrats intelligents, sera lancé publiquement sur le réseau principal en mars 2023.
ZkSync compile le code source du contrat intelligent Solidity sur Ethereum dans Yul pour obtenir la compatibilité EVM. Yul est un langage intermédiaire qui peut être compilé en bytecode pour différents EVM. Le code Yul peut être recompilé à l'aide du framework de compilateur LLVM dans un ensemble de bytecode personnalisé et compatible avec les circuits, conçu pour le zkEVM de zkSync. Cette approche élimine le besoin d'effectuer des preuves zk via un code de niveau supérieur pour toutes les étapes de l'exécution d'EVM, ce qui facilite la décentralisation du processus de preuve tout en maintenant des performances élevées. À l'avenir, la prise en charge de Rust, Java ou d'autres langages pourra être ajoutée en créant de nouveaux frontaux de compilateur, augmentant ainsi la flexibilité de l'architecture zkEVM et atteignant davantage de développeurs.
Aztèque
Aztec est le premier zkRollup hybride, permettant l'exécution de contrats intelligents publics et privés dans un seul environnement. Il s'agit d'un environnement d'exécution sans connaissance, pas de zkEVM. La confidentialité est obtenue en fusionnant les exécutions publiques et privées en un seul cumul hybride, comme les transactions privées pour les AMM publics, les conversations privées dans les jeux publics, le vote privé pour les DAO publics, etc.
4.2 ZK-STARK
ZK-STARK ne nécessite pas de configuration fiable. ZK-STARK est l'abréviation de Zero-Knowledge Scalable Transparent Argument of Knowledge. Comparé à ZK-SNARK, ZK-STARK offre une meilleure évolutivité et transparence.
Avantage
1. Perdez confiance
ZK-STARK vérifie publiquement le caractère aléatoire pour remplacer les paramètres de confiance, réduisant ainsi la dépendance à l'égard des participants et améliorant la sécurité du protocole.
2. Capacités d'expansion plus fortes
Même si la complexité des calculs sous-jacents augmente de façon exponentielle, ZK-STARK maintient toujours des temps de preuve et de vérification inférieurs, plutôt qu'une croissance linéaire comme ZK-SNARK.
3. Garantie de sécurité supérieure
ZK-STARK utilise des valeurs de hachage résistantes aux collisions pour le cryptage au lieu du schéma de courbe elliptique utilisé dans ZK-SNARK, qui résiste aux attaques informatiques quantiques.
Limites
1. Grand format d'épreuve
La taille de la preuve de ZK-STARK est plus grande, ce qui rend la vérification sur le réseau principal plus réussie.
2. Taux d'adoption inférieur
ZK-SNARK est la première application pratique de la preuve sans connaissance dans la blockchain, de sorte que la plupart des rollups ZK utilisent ZK-SNARK, qui dispose de systèmes et d'outils de développement plus matures. Bien que ZK-STARK soit également soutenu par la Fondation Ethereum, son taux d'adoption est insuffisant et les outils de base doivent être améliorés.
**Quels projets utilisent ZK-STARK ? **
Polygone Miden
Polygon Miden, une solution de mise à l'échelle basée sur Ethereum L2, exploite la technologie zk-STARK pour intégrer un grand nombre de transactions L2 dans une seule transaction Ethereum, augmentant ainsi la puissance de traitement et réduisant les coûts de transaction. Sans sharding, Polygon Miden peut générer un bloc en 5 secondes, et son TPS peut atteindre plus de 1 000. Après sharding, son TPS peut atteindre 10 000. Les utilisateurs peuvent retirer des fonds de Polygon Miden vers Ethereum en seulement 15 minutes. La fonction principale de Polygon Miden est une machine virtuelle Turing-complete basée sur STARK - Miden VM, qui facilite la vérification formelle des contrats.
StarkEx et StarkNet
StarkEx est un cadre pour les solutions d'extension de licence personnalisées pour des applications spécifiques. Les projets peuvent utiliser StarkEx pour effectuer des calculs hors chaîne à faible coût et générer des preuves STARK qui prouvent l'exactitude de l'exécution. Une telle preuve contient 12 000 à 500 000 transactions. Enfin, la preuve est envoyée au validateur STARK sur la chaîne, et la mise à jour du statut est acceptée une fois que la vérification est correcte. Les applications déployées sur StarkEx incluent les options perpétuelles dYdX, NFT L2 Immutable, le marché d'échange de cartes numériques sportives Sorare et l'agrégateur DeFi multi-chaînes rhino.fi.
StarkNet est un L2 sans autorisation où n'importe qui peut déployer des contrats intelligents développés dans la langue du Caire. Les contrats déployés sur StarkNet peuvent interagir les uns avec les autres pour créer de nouveaux protocoles composables. Contrairement à StarkEx où les applications sont responsables de la soumission des transactions, le séquenceur de StarkNet regroupe les transactions et les envoie pour traitement et certification. StarkNet est plus adapté aux protocoles qui doivent interagir de manière synchrone avec d'autres protocoles ou qui dépassent la portée des applications StarkEx. Au fur et à mesure que le développement de StarkNet progresse, les applications basées sur StarkEx pourront être portées sur StarkNet et bénéficier de la composabilité.
Comparaison ZK-SNARK et ZK-STARK
4.3 ZK-SNARK récursif
Les cumuls ZK normaux ne peuvent traiter qu'un seul bloc de transactions, ce qui limite le nombre de transactions qu'ils peuvent traiter. Le ZK-SNARK récursif peut vérifier plus d'un bloc de transaction, fusionner les SNARK générés par différents blocs L2 en un seul certificat de validité et le soumettre à la chaîne L1. Une fois que le contrat en chaîne L1 accepte la preuve soumise, toutes ces transactions deviennent valides, augmentant considérablement le nombre de transactions qui peuvent finalement être complétées avec des preuves sans connaissance.
Plonky2 est un nouveau mécanisme de preuve de Polygon Zero qui utilise des ZK-SNARK récursifs pour augmenter les transactions. Les SNARK récursifs étendent le processus de génération de preuves en agrégeant plusieurs preuves en une preuve récursive. Plonky2 utilise la même technologie pour réduire le temps de génération de nouvelles preuves de bloc. Plonky2 génère des preuves pour des milliers de transactions en parallèle, puis les agrège de manière récursive dans une preuve de bloc, la vitesse de génération est donc très rapide. Le mécanisme de preuve ordinaire tente de générer la preuve de bloc entière en une seule fois, ce qui est encore moins efficace. De plus, Plonky2 peut également générer des preuves sur des appareils grand public, résolvant ainsi le problème de centralisation matérielle souvent associé aux preuves SNARK.
5. Cumul de connaissances zéro VS Cumul optimiste
ZK-SNARK et ZK-STARK sont devenus l'infrastructure de base des projets d'expansion de la blockchain, en particulier la solution Zero Knowledge Rollup. Zero-Knowledge Rollup fait référence à une solution d'expansion de deuxième couche pour Ethereum qui utilise une technologie de preuve de connaissance nulle pour transférer tous les calculs vers un traitement hors chaîne afin de réduire la congestion du réseau. Le principal avantage de Zero Knowledge Rollup est qu’il peut augmenter considérablement le débit des transactions d’Ethereum tout en maintenant les frais de transaction à un niveau bas, et une fois la transaction intégrée dans le rollup, elle peut être déterminée immédiatement.
En plus du Zero Knowledge Rollup, le plan d'expansion L2 actuel d'Ethereum comprend également Optimistic Rollup. Les transactions exécutées dans Optimistic Rollup sont valides et exécutées immédiatement par défaut. Ce n'est que lorsqu'une transaction frauduleuse est découverte (quelqu'un soumet une preuve de fraude) que la transaction sera annulée. Par conséquent, la sécurité est inférieure à Zero Knowledge Rollup. Pour éviter les transactions frauduleuses, Optimistic Rollup dispose d'une période de contestation après laquelle une transaction doit être finalisée. Cela peut obliger les utilisateurs à attendre un certain temps avant de récupérer leurs fonds.
L’utilisation d’une technologie de preuve sans connaissance n’a pas été envisagée lors de la conception initiale de l’EVM. Vitalik, le fondateur d'Ethereum, estime que Zero Knowledge Rollup sera techniquement complexe à court terme, mais finira par vaincre Optimistic Rollup dans la guerre d'expansion. Ce qui suit est une comparaison entre Zero Knowledge Rollup et Optimistic Rollup.
Source : SUSS NiFT, ChatGPT
**6. Quelles sont les perspectives d'avenir d'une technologie à preuve de connaissance nulle ? **
Le domaine de la technologie de preuve à connaissance nulle occupe une position unique : ces dernières années, de nombreux efforts ont été consacrés à faire progresser la recherche dans ce domaine, et bon nombre de résultats sont assez nouveaux dans le domaine de la cryptographie et des communications sécurisées. Par conséquent, de nombreuses questions intéressantes restent sans réponse pour les communautés académiques et de développeurs. Dans le même temps, la technologie à connaissance nulle est utilisée dans divers projets, démontrant les défis de la technologie à connaissance nulle et élargissant ses exigences.
Un domaine de préoccupation pour la technologie à preuve de connaissance nulle est la discussion sur la sécurité post-quantique de la technologie à preuve de connaissance nulle. Les SNARK (Succinct Non-Interactive Arguments of Knowledge) vérifiables publiquement sont un élément clé dans le domaine des technologies à connaissance nulle. Cependant, les systèmes SNARK vérifiables publiquement les plus largement utilisés ne sont pas considérés comme sûrs quantiquement. Les exemples incluent Groth16, Sonic, Marlin, SuperSonic et Spartan. Ces solutions reposent sur des problèmes mathématiques qui peuvent être résolus efficacement à l’aide d’ordinateurs quantiques, ce qui compromet grandement leur sécurité dans un monde post-quantique.
Nous avons constaté que la communauté universitaire recherche activement des preuves à connaissance nulle à sécurité quantique qui peuvent être utilisées pour une variété d'énoncés sans étape de prétraitement. Les exemples actuels de preuves de connaissance nulle à sécurité quantique de pointe incluent des systèmes tels que Ligero, Aurora, Fractal, Lattice Bulletproofs et LPK22. Ligero, Aurora et Fractal sont basés sur des fonctions de hachage, tandis que Lattice Bulletproofs et LKP22 sont basés sur des fonctions de treillis. Les deux fonctions sont considérées comme sûres quantiquement. C'est devenu une tendance de promouvoir ces programmes et d'améliorer leur efficacité.
Une autre attente que nous avons pour l’avenir de la technologie à connaissance nulle est sa capacité à résister aux attaques et la maturité du code lié à la mise en œuvre. Compte tenu de l’augmentation de la quantité de code écrit, il y aura des bibliothèques plus sécurisées et vérifiées ainsi que de meilleures pratiques pour diverses techniques de preuve sans connaissance. Bien entendu, il y aura des erreurs plus courantes à l’avenir qui attendront d’être découvertes et communiquées. Nous nous attendons à ce que ce domaine mûrisse et soit largement adopté, avec des efforts pour standardiser les protocoles et assurer l'interopérabilité entre les différentes implémentations. Un projet appelé ZKProof a déjà commencé à le faire.
Une autre tendance qui continuera d’exister dans la communauté technologique à connaissance nulle est celle du travail accru sur des algorithmes efficaces et éventuellement sur du matériel spécial. Ces dernières années, nous avons vu la taille des preuves diminuer et les prouveurs et vérificateurs devenir plus efficaces. Les progrès des algorithmes, du matériel spécial et de l’optimisation informatique peuvent conduire à des mises en œuvre plus rapides et plus évolutives.
Si l’efficacité des algorithmes existants profite aux futurs utilisateurs de la technologie de preuve à connaissance nulle, nous nous attendons également à voir les capacités des preuves à connaissance nulle continuer à se développer. Dans le passé, nous avons rencontré de nombreux cas lors de la mise en œuvre de ZK-SNARK prétraités. Nous voyons désormais de plus en plus d’instances ZK-SNARK évolutives. De plus, certaines techniques de preuve sans connaissance sont utilisées davantage pour leur simplicité que pour leurs capacités de preuve sans connaissance.
Enfin, une autre tendance dans la technologie de preuve à connaissance nulle est l’intersection de l’apprentissage automatique et des preuves à connaissance nulle (ZKML). L’idée nécessite de former de grands modèles de langage dans un environnement multipartite et d’utiliser des techniques sans connaissance pour vérifier les calculs. C’est très utile pour l’intelligence artificielle actuelle. Des projets pourraient voir le jour dans ce domaine.
Conclusion
Cet article est co-écrit par des membres de la Blockchain Security Alliance. Grâce à l'introduction de cet article, nous pouvons comprendre la large application, les chemins techniques, les tendances de développement et les défis de la preuve de connaissance nulle dans le domaine de la blockchain. **Nous pensons qu'avec le développement de la technologie matérielle et de la cryptographie, les preuves sans connaissance réaliseront davantage de percées à l'avenir, fournissant des services d'application plus rapides et plus sécurisés pour le monde numérique. **
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.
La troisième innovation technologique majeure dans l'histoire du développement de la blockchain : l'application d'une technologie de preuve de connaissance nulle
Auteur : Chercheur SUSS NiFT du nœud de finance inclusive de l'Université des sciences sociales de Singapour @Jesse_meta, chercheur Beosin @EatonAshton2, chercheur en sécurité de Least Authority @kaplannie
Que les informations soient stockées sur Internet ou dans des archives hors ligne, qu'elles soient intentionnelles ou accidentelles, les incidents de fuite d'informations sont monnaie courante aujourd'hui et il va sans dire. Tant que les informations sont stockées de manière centralisée, il existe toujours le risque d’un point d’attaque unique. Tant que le processus de vérification nécessitera un tiers de confiance, il y aura des risques éthiques et des inefficacités. La solution à la sécurité de l’information est cruciale et urgente. La technologie de preuve sans connaissance permet aux utilisateurs d'effectuer une vérification plus efficace et plus sécurisée tout en protégeant leur vie privée.
Si Bitcoin est la première invention majeure que la blockchain apporte au monde réel, offrant une nouvelle façon de stocker de la valeur, et que les contrats intelligents d'Ethereum sont le deuxième événement majeur, libérant le potentiel d'innovation, alors l'application de preuves sans connaissance est la solution. la plus grande La troisième plus grande innovation technologique de l'histoire du développement de la blockchain, apportant confidentialité et évolutivité. Il ne s'agit pas seulement d'une partie importante de l'écosystème Web3, mais également d'une technologie de base importante qui a le potentiel de promouvoir le changement social.
Cet article présente les scénarios d'application, les principes de fonctionnement, l'état de développement et les tendances futures de la preuve sans connaissance du point de vue d'une personne non technique, afin de permettre aux lecteurs sans formation technique de comprendre les changements majeurs que la preuve sans connaissance est sur le point de provoquer. apporter. **
1.Qu'est-ce qu'une preuve sans connaissance
La preuve à connaissance nulle (ZKP) est un protocole mathématique proposé pour la première fois dans l'article de 1985 "La complexité des connaissances des preuves interactives" co-écrit par Shafi Goldwasser, Silvio Micali et Charles Rackoff. Sauf pour un certain fait à prouver, il y aura ne pas divulguer toute autre information. Le vérificateur n'a pas accès aux informations secrètes qui ont généré la preuve. Laissez-moi vous donner un exemple pour vous aider à comprendre : je veux prouver que je connais le numéro de téléphone de quelqu'un. Il me suffit de pouvoir composer le numéro de téléphone de cette personne devant tout le monde pour prouver ce fait, sans révéler son véritable numéro. Les preuves sans connaissance offrent un moyen efficace et presque sans risque de partager des données. En utilisant des preuves sans connaissance, nous pouvons conserver la propriété des données, améliorer considérablement la protection de la vie privée et, espérons-le, faire des violations de données une chose du passé.
La preuve sans connaissance présente trois caractéristiques :
Exhaustivité
Si une affirmation est vraie, les vérificateurs honnêtes seront convaincus par les prouveurs honnêtes. Autrement dit, ce qui est bien ne peut pas être mal.
rationalité
Si une affirmation est fausse, dans la grande majorité des cas, un prouveur trompeur ne peut pas faire croire à un vérificateur honnête la fausse affirmation. Autrement dit, ce qui ne va pas ne peut pas être bien.
ZÉRO CONNAISSANCE
Si une déclaration est vraie, le vérificateur ne peut obtenir aucune information supplémentaire autre que le fait que la déclaration est vraie.
Les preuves sans connaissance ont une très faible probabilité de produire des erreurs raisonnables, c'est-à-dire qu'un prouveur tricheur peut faire croire au vérificateur une fausse déclaration. La preuve sans connaissance est une preuve probabiliste, pas une preuve déterministe, mais nous pouvons réduire l'erreur rationnelle à négligeable grâce à certaines techniques.
2. Application de la preuve de connaissance nulle
Les deux scénarios d’application les plus importants de la preuve sans connaissance sont la confidentialité et l’évolutivité.
2.1 Confidentialité
Les preuves sans connaissance permettent aux utilisateurs de partager en toute sécurité les informations nécessaires pour obtenir des biens et des services sans révéler de détails personnels, les protégeant ainsi des pirates informatiques et de la fuite d'informations personnellement identifiables. Avec l'intégration progressive des domaines numérique et physique, la fonction de protection de la vie privée de la preuve sans connaissance est devenue cruciale pour la sécurité des informations dans le Web3 et même au-delà du Web3. Sans preuve de connaissance nulle, les informations sur les utilisateurs existeront dans une base de données tierce de confiance et seront potentiellement vulnérables aux attaques de pirates. Le premier cas d’application de preuve de connaissance nulle dans la blockchain est la pièce de confidentialité Zcash, qui est utilisée pour masquer les détails des transactions.
2.1.1 Protection et vérification des informations d'identité
Dans les activités en ligne, nous devons souvent fournir des informations telles que le nom, la date de naissance, l’e-mail et des mots de passe complexes pour prouver que nous sommes des utilisateurs disposant d’autorisations légales. C’est pourquoi nous laissons souvent en ligne des informations sensibles que nous ne souhaitons pas divulguer. De nos jours, il n’est pas rare de recevoir des appels frauduleux nous appelant par notre nom, ce qui montre que la fuite d’informations personnelles est très grave.
Nous pouvons utiliser la technologie blockchain pour attribuer à chaque personne un identifiant numérique crypté spécial contenant des données personnelles. Cet identifiant numérique permet la construction d'une identité décentralisée et est impossible à falsifier ou à modifier à l'insu de son propriétaire. L'identité décentralisée permet aux utilisateurs de contrôler l'accès aux identités personnelles, de prouver leur citoyenneté sans révéler les détails du passeport, de simplifier le processus d'authentification et de réduire le risque de perte d'accès des utilisateurs en raison de mots de passe oubliés. Des preuves sans connaissance sont générées à partir de données publiques qui peuvent prouver l'identité de l'utilisateur et de données privées avec des informations sur l'utilisateur, et peuvent être utilisées pour la vérification de l'identité lorsque les utilisateurs accèdent aux services. Cela réduit non seulement le processus de vérification fastidieux, améliore l'expérience utilisateur, mais évite également le stockage centralisé des informations utilisateur.
En outre, les preuves sans connaissance peuvent également être utilisées pour créer des systèmes de réputation privés, permettant aux agences de services de vérifier si les utilisateurs répondent à certaines normes de réputation sans révéler leur identité. Les utilisateurs peuvent exporter leur réputation de manière anonyme depuis des plateformes telles que Facebook, Twitter et Github tout en masquant le compte source spécifique.
2.1.2 Paiement anonyme
Les détails des transactions payées par carte bancaire sont généralement visibles par plusieurs parties, notamment les prestataires de paiement, les banques et les gouvernements, ce qui expose dans une certaine mesure la vie privée des citoyens ordinaires et les utilisateurs doivent faire confiance aux parties concernées pour ne pas faire de mal.
Les crypto-monnaies peuvent permettre d’effectuer des paiements sans tiers, permettant ainsi des transactions directes peer-to-peer. Cependant, les transactions sur les chaînes publiques traditionnelles sont actuellement visibles publiquement. Bien que les adresses des utilisateurs soient anonymes, les identités réelles peuvent toujours être trouvées grâce à l'analyse des données des adresses associées sur la chaîne et des données hors chaîne telles que l'échange d'informations KYC et Twitter. Si vous connaissez l'adresse du portefeuille d'une personne, vous pouvez vérifier le solde de votre compte bancaire à tout moment, ce qui peut même constituer une menace pour l'identité et les biens de l'utilisateur.
La preuve sans connaissance peut fournir des paiements anonymes à trois niveaux : les pièces de confidentialité, les applications de confidentialité et les chaînes publiques de confidentialité. La pièce de confidentialité Zcash cache les détails de la transaction, notamment l'expéditeur, l'adresse du destinataire, le type d'actif, la quantité et l'heure. Tornado Cash est une application décentralisée sur Ethereum qui utilise une preuve de connaissance nulle pour obscurcir les détails des transactions afin de fournir des transferts privés (mais elle est également souvent utilisée par les pirates pour blanchir de l'argent). Aleo est une blockchain L1 conçue pour fournir des fonctionnalités de confidentialité aux applications au niveau du protocole.
2.1.3 Comportement honnête
Les preuves sans connaissance peuvent promouvoir un comportement honnête tout en préservant la confidentialité. Le protocole peut exiger que les utilisateurs soumettent des preuves de connaissance nulle pour prouver leur comportement honnête. En raison de la rationalité des preuves sans connaissance (ce qui est faux ne peut pas être vrai), les utilisateurs doivent agir honnêtement conformément aux exigences du protocole avant de pouvoir soumettre des preuves valides.
MACI (Minimal Anti-Collusion Infrastructure) est un scénario d'application qui favorise l'honnêteté et empêche la collusion lors du vote en chaîne ou d'autres formes de prise de décision. Le système utilise des paires de clés et une technologie de preuve sans connaissance pour atteindre cet objectif. Dans MACI, les utilisateurs enregistrent leurs clés publiques dans un contrat intelligent et envoient leurs votes au contrat via des messages cryptés. La fonction anti-collusion de MACI permet aux électeurs de modifier leurs clés publiques pour empêcher les autres de connaître leurs choix de vote. Le coordinateur utilise une preuve de connaissance nulle à la fin de la période de vote pour prouver qu'il a traité correctement tous les messages, et le résultat final du vote est la somme de tous les votes valides. Cela garantit l’intégrité et l’équité du vote.
2.1.4 Vérification des informations personnelles
Lorsque nous souhaitons obtenir un prêt, nous pouvons obtenir une attestation de revenus numérique de l’entreprise pour demander le prêt. La légitimité de cette preuve peut facilement être vérifiée cryptographiquement. La banque peut utiliser une preuve de connaissance nulle pour vérifier que nos revenus atteignent le minimum requis, mais elle n'obtiendra pas d'informations spécifiques sensibles.
2.1.5 Combiner l'apprentissage automatique pour exploiter le potentiel des données privées
Lors de la formation de modèles d’apprentissage automatique, de grandes quantités de données sont généralement nécessaires. En utilisant des preuves sans connaissance, les propriétaires de données peuvent prouver que leurs données répondent aux exigences de formation du modèle sans réellement les exposer. Cela permet d’exploiter les données privées et de les monétiser.
De plus, les preuves sans connaissance peuvent permettre aux créateurs de modèles de prouver que leurs modèles répondent à certaines mesures de performances sans exposer les détails du modèle afin d'empêcher d'autres personnes de copier ou de falsifier leurs modèles.
2.2 Extensible
À mesure que le nombre d’utilisateurs de la blockchain augmente, un grand nombre de calculs sont nécessaires sur la blockchain, provoquant une congestion des transactions. Certaines blockchains emprunteront la voie de l'expansion du sharding, mais cela nécessitera un grand nombre de modifications complexes de la couche de base de la blockchain, ce qui peut menacer la sécurité de la blockchain. Une autre solution plus réalisable consiste à emprunter la voie ZK-Rollup, à utiliser des calculs vérifiables, à sous-traiter les calculs à des entités sur une autre chaîne pour exécution, puis à soumettre la preuve de connaissance nulle et les résultats vérifiables à la chaîne principale pour vérification du sexe. La preuve sans connaissance garantit l'authenticité de la transaction. La chaîne principale n'a qu'à mettre à jour le résultat à l'état. Il n'est pas nécessaire de stocker les détails ou de rejouer les calculs, et il n'est pas nécessaire d'attendre que d'autres discutent de l'authenticité de la transaction. transaction, ce qui améliore considérablement l’efficacité et l’évolutivité. Les développeurs peuvent utiliser des preuves sans connaissance pour concevoir des applications de nœuds légers pouvant fonctionner sur du matériel courant tel que les téléphones mobiles, ce qui est plus propice à ce que le Web3 atteigne le grand public.
L'extension de la preuve de connaissance nulle peut être appliquée à la fois au réseau de première couche, tel que le protocole Mina, et aux rollups ZK du réseau de deuxième couche.
3. Comment fonctionnent les preuves sans connaissance
Dmitry Laverenov (2019) divise les structures de preuve sans connaissance en interactives et non interactives.
3.1 Preuve interactive de connaissance nulle
La forme de base de la preuve interactive à connaissance nulle se compose de trois étapes : preuve, challenger et réponse.
Preuve : les informations secrètes cachées constituent la preuve du prouveur. Ces preuves posent une série de questions auxquelles seule une personne connaissant l’information peut répondre correctement. Le prouveur commence à sélectionner des questions au hasard et envoie les réponses calculées au vérificateur pour preuve.
Défi : Le vérificateur choisit au hasard une autre question dans l'ensemble et demande au prouveur d'y répondre.
Réponse : Le prouveur accepte la question, calcule la réponse et renvoie le résultat au vérificateur. La réponse du prouveur permet au vérificateur de vérifier si le prouveur connaît la preuve.
Ce processus peut être répété plusieurs fois jusqu'à ce que la probabilité que le prouveur devine la bonne réponse sans connaître les informations secrètes devienne suffisamment faible. Pour donner un exemple mathématique simplifié, si la probabilité que le prouveur puisse deviner la bonne réponse sans connaître l'information secrète est de 1/2 et que l'interaction est répétée dix fois, la probabilité que le prouveur réussisse à chaque fois n'est que de 9,7 sur 10 000. Si vous souhaitez vérifier La possibilité qu'une personne approuve par erreur une fausse certification est extrêmement faible.
3.2 Preuve non interactive de connaissance nulle
Les preuves interactives à connaissance nulle ont des limites : d'une part, le prouveur et le vérificateur doivent exister en même temps et effectuer des vérifications répétées. D'autre part, chaque calcul d'une nouvelle preuve nécessite que le prouveur et le vérificateur passent un test. ensemble d'informations. La preuve ne peut pas être réutilisée dans une vérification indépendante.
Afin de résoudre les limites des preuves interactives à connaissance nulle, Manuel Blum, Paul Feldman et Silvio Micali ont proposé des preuves non interactives à connaissance nulle, dans lesquelles le prouveur et le vérificateur partagent la clé, et un seul cycle de vérification est requis. pour que la preuve sans connaissance s'avère plus efficace. Le prouveur calcule les informations secrètes via un algorithme spécial pour générer une preuve de connaissance nulle et l'envoie au vérificateur. Le vérificateur utilise un autre algorithme pour vérifier si le prouveur connaît les informations secrètes. Une fois cette preuve sans connaissance générée, toute personne disposant de la clé partagée et de l’algorithme de vérification peut la vérifier.
La preuve non interactive à connaissance nulle constitue une avancée majeure dans la technologie de preuve à connaissance nulle et favorise le développement des systèmes de preuve à connaissance nulle actuels. Les principales méthodes sont ZK-SNARK et ZK-STARK.
4. Principales voies techniques de la preuve zéro connaissance
Alchemy (2022) divise les voies techniques de la preuve sans connaissance en ZK-SNARK, ZK-STARK et ZK-SNARK récursif.
4.1 ZK-SNARK
Les ZK-SNARK sont une preuve concise et non interactive sans connaissance nulle.
Pour qu'une chaîne publique garantisse l'exactitude des transactions exécutées sur le réseau, cela doit être réalisé en faisant en sorte que d'autres ordinateurs (nœuds) réexécutent chaque transaction. Cependant, cette méthode amènera chaque nœud à réexécuter chaque transaction, ce qui ralentira le réseau et limitera l'évolutivité. Les nœuds doivent également stocker les données de transaction, ce qui entraîne une croissance exponentielle de la taille de la blockchain.
Pour ces restrictions, ZK-SNARK entre en jeu. Il peut prouver l'exactitude des calculs effectués hors chaîne sans obliger les nœuds à rejouer chaque étape du calcul. Cela élimine également le besoin pour les nœuds de stocker des données de transaction redondantes et augmente le débit du réseau.
L'utilisation de SNARK pour vérifier les calculs hors chaîne code le calcul dans une expression mathématique pour former une preuve de validité. Le vérificateur vérifie l'exactitude de la preuve. Si la preuve réussit tous les contrôles, le calcul sous-jacent est considéré comme valide. La taille d'une preuve de validité est plusieurs fois plus petite que le calcul qu'elle vérifie, c'est pourquoi nous appelons les SNARK succincts.
La plupart des rollups ZK utilisant ZK-SNARK suivent les étapes suivantes.
**1. Les utilisateurs L2 signent la transaction et la soumettent au vérificateur. **
**2. Le vérificateur utilise la cryptographie pour compresser plusieurs transactions afin de générer les certificats de validité correspondants (SNARK). **
**3. Le contrat intelligent sur la chaîne L1 vérifie le certificat de validité et détermine si ce lot de transactions est publié sur la chaîne principale. **
Il convient de mentionner que ZK-SNARK nécessite des paramètres fiables. A ce stade, le générateur de clé prend un programme et un paramètre secret pour générer deux clés publiques utilisables, une pour créer la preuve et une pour vérifier la preuve. Ces deux clés publiques n'ont besoin de générer des paramètres publics qu'une seule fois lors d'une cérémonie de configuration de confiance et peuvent être utilisées plusieurs fois par les parties souhaitant participer au protocole sans connaissance. Les utilisateurs doivent être sûrs que les participants aux rituels de configuration de confiance ne sont pas méchants et qu'il n'existe aucun moyen d'évaluer l'honnêteté des participants. Connaître les paramètres secrets peut générer de fausses preuves et tromper le vérificateur, il existe donc des risques potentiels pour la sécurité. Des chercheurs explorent actuellement des solutions ZK-SNARK qui ne nécessitent pas d'hypothèses de confiance.
Avantage
1. Sécurité
Le rollup ZK est considéré comme une solution d'expansion plus sécurisée que le rollup OP car ZK-SNARK utilise un mécanisme de sécurité de cryptage avancé, ce qui rend difficile la tromperie des vérificateurs et la conduite de comportements malveillants.
2. Débit élevé
ZK-SNARK réduit la quantité de calcul au bas d'Ethereum, atténuant ainsi la principale congestion du réseau. Les calculs hors chaîne partagent les coûts de transaction, ce qui accélère les vitesses de transaction.
3. Petit format d'épreuve
La petite taille des preuves SNARK les rend faciles à vérifier sur la chaîne principale, ce qui signifie que les frais de gaz pour la vérification des transactions hors chaîne sont inférieurs, réduisant ainsi le coût pour les utilisateurs.
Limites
1. Centralisation relative
S'appuyer sur une configuration fiable la plupart du temps. Cela va à l’encontre de l’intention initiale de la blockchain de supprimer la confiance.
Générer des preuves de validité avec les ZK-SNARK est un processus gourmand en calcul et le prouveur doit investir dans du matériel spécialisé. Ce matériel est cher et seules quelques personnes peuvent se le permettre, le processus de preuve de ZK-SNARK est donc hautement centralisé.
2 ZK-SNARK utilise la cryptographie à courbe elliptique (ECC) pour crypter les informations utilisées pour générer des preuves de validité et est actuellement relativement sécurisé, mais les progrès de l'informatique quantique pourraient briser son modèle de sécurité.
Projets utilisant ZK SNARK
Polygone Hermez
Polygon a acquis Hermez pour 250 millions de dollars américains en 2021, devenant ainsi la première fusion et acquisition complète de deux réseaux blockchain. La technologie ZK et les outils qu'Hermez a apportés à la base d'utilisateurs en croissance rapide de Polygon ont permis à Polygon d'obtenir de l'aide pour développer zkEVM. Hermez 1.0 est une plateforme de paiement qui exécute un lot de transactions hors chaîne, permettant aux utilisateurs de transférer facilement des jetons ERC-20 d'un compte Hermez à un autre compte Hermez, avec jusqu'à 2 000 transactions par seconde.
Hermez 2.0 agit comme un zkEVM sans connaissance pour exécuter de manière transparente les transactions Ethereum, y compris les contrats intelligents avec vérification sans connaissance. Il est entièrement compatible avec Ethereum et ne nécessite pas de nombreuses modifications du code du contrat intelligent, ce qui permet aux développeurs de déployer facilement des projets L1 sur Polygon Hermez. Hermez 1.0 utilise des preuves SNARK et 2.0 utilise à la fois des preuves SNARK et des preuves STARK. Dans la version 2.0, STARK-proof est utilisé pour prouver la validité des transactions hors chaîne. Cependant, le coût de la vérification de la preuve STARK sur la chaîne principale est très élevé, c'est pourquoi la preuve SNARK est introduite pour vérifier STARK.
zkSync
zkSync 1.0, lancé par Matter Labs en 2020, ne prend pas en charge les contrats intelligents et est principalement utilisé pour les transactions ou les transferts. ZkSync 2.0, qui prend en charge les contrats intelligents, sera lancé publiquement sur le réseau principal en mars 2023.
ZkSync compile le code source du contrat intelligent Solidity sur Ethereum dans Yul pour obtenir la compatibilité EVM. Yul est un langage intermédiaire qui peut être compilé en bytecode pour différents EVM. Le code Yul peut être recompilé à l'aide du framework de compilateur LLVM dans un ensemble de bytecode personnalisé et compatible avec les circuits, conçu pour le zkEVM de zkSync. Cette approche élimine le besoin d'effectuer des preuves zk via un code de niveau supérieur pour toutes les étapes de l'exécution d'EVM, ce qui facilite la décentralisation du processus de preuve tout en maintenant des performances élevées. À l'avenir, la prise en charge de Rust, Java ou d'autres langages pourra être ajoutée en créant de nouveaux frontaux de compilateur, augmentant ainsi la flexibilité de l'architecture zkEVM et atteignant davantage de développeurs.
Aztèque
Aztec est le premier zkRollup hybride, permettant l'exécution de contrats intelligents publics et privés dans un seul environnement. Il s'agit d'un environnement d'exécution sans connaissance, pas de zkEVM. La confidentialité est obtenue en fusionnant les exécutions publiques et privées en un seul cumul hybride, comme les transactions privées pour les AMM publics, les conversations privées dans les jeux publics, le vote privé pour les DAO publics, etc.
4.2 ZK-STARK
ZK-STARK ne nécessite pas de configuration fiable. ZK-STARK est l'abréviation de Zero-Knowledge Scalable Transparent Argument of Knowledge. Comparé à ZK-SNARK, ZK-STARK offre une meilleure évolutivité et transparence.
Avantage
1. Perdez confiance
ZK-STARK vérifie publiquement le caractère aléatoire pour remplacer les paramètres de confiance, réduisant ainsi la dépendance à l'égard des participants et améliorant la sécurité du protocole.
2. Capacités d'expansion plus fortes
Même si la complexité des calculs sous-jacents augmente de façon exponentielle, ZK-STARK maintient toujours des temps de preuve et de vérification inférieurs, plutôt qu'une croissance linéaire comme ZK-SNARK.
3. Garantie de sécurité supérieure
ZK-STARK utilise des valeurs de hachage résistantes aux collisions pour le cryptage au lieu du schéma de courbe elliptique utilisé dans ZK-SNARK, qui résiste aux attaques informatiques quantiques.
Limites
1. Grand format d'épreuve
La taille de la preuve de ZK-STARK est plus grande, ce qui rend la vérification sur le réseau principal plus réussie.
2. Taux d'adoption inférieur
ZK-SNARK est la première application pratique de la preuve sans connaissance dans la blockchain, de sorte que la plupart des rollups ZK utilisent ZK-SNARK, qui dispose de systèmes et d'outils de développement plus matures. Bien que ZK-STARK soit également soutenu par la Fondation Ethereum, son taux d'adoption est insuffisant et les outils de base doivent être améliorés.
**Quels projets utilisent ZK-STARK ? **
Polygone Miden
Polygon Miden, une solution de mise à l'échelle basée sur Ethereum L2, exploite la technologie zk-STARK pour intégrer un grand nombre de transactions L2 dans une seule transaction Ethereum, augmentant ainsi la puissance de traitement et réduisant les coûts de transaction. Sans sharding, Polygon Miden peut générer un bloc en 5 secondes, et son TPS peut atteindre plus de 1 000. Après sharding, son TPS peut atteindre 10 000. Les utilisateurs peuvent retirer des fonds de Polygon Miden vers Ethereum en seulement 15 minutes. La fonction principale de Polygon Miden est une machine virtuelle Turing-complete basée sur STARK - Miden VM, qui facilite la vérification formelle des contrats.
StarkEx et StarkNet
StarkEx est un cadre pour les solutions d'extension de licence personnalisées pour des applications spécifiques. Les projets peuvent utiliser StarkEx pour effectuer des calculs hors chaîne à faible coût et générer des preuves STARK qui prouvent l'exactitude de l'exécution. Une telle preuve contient 12 000 à 500 000 transactions. Enfin, la preuve est envoyée au validateur STARK sur la chaîne, et la mise à jour du statut est acceptée une fois que la vérification est correcte. Les applications déployées sur StarkEx incluent les options perpétuelles dYdX, NFT L2 Immutable, le marché d'échange de cartes numériques sportives Sorare et l'agrégateur DeFi multi-chaînes rhino.fi.
StarkNet est un L2 sans autorisation où n'importe qui peut déployer des contrats intelligents développés dans la langue du Caire. Les contrats déployés sur StarkNet peuvent interagir les uns avec les autres pour créer de nouveaux protocoles composables. Contrairement à StarkEx où les applications sont responsables de la soumission des transactions, le séquenceur de StarkNet regroupe les transactions et les envoie pour traitement et certification. StarkNet est plus adapté aux protocoles qui doivent interagir de manière synchrone avec d'autres protocoles ou qui dépassent la portée des applications StarkEx. Au fur et à mesure que le développement de StarkNet progresse, les applications basées sur StarkEx pourront être portées sur StarkNet et bénéficier de la composabilité.
Comparaison ZK-SNARK et ZK-STARK
4.3 ZK-SNARK récursif
Les cumuls ZK normaux ne peuvent traiter qu'un seul bloc de transactions, ce qui limite le nombre de transactions qu'ils peuvent traiter. Le ZK-SNARK récursif peut vérifier plus d'un bloc de transaction, fusionner les SNARK générés par différents blocs L2 en un seul certificat de validité et le soumettre à la chaîne L1. Une fois que le contrat en chaîne L1 accepte la preuve soumise, toutes ces transactions deviennent valides, augmentant considérablement le nombre de transactions qui peuvent finalement être complétées avec des preuves sans connaissance.
Plonky2 est un nouveau mécanisme de preuve de Polygon Zero qui utilise des ZK-SNARK récursifs pour augmenter les transactions. Les SNARK récursifs étendent le processus de génération de preuves en agrégeant plusieurs preuves en une preuve récursive. Plonky2 utilise la même technologie pour réduire le temps de génération de nouvelles preuves de bloc. Plonky2 génère des preuves pour des milliers de transactions en parallèle, puis les agrège de manière récursive dans une preuve de bloc, la vitesse de génération est donc très rapide. Le mécanisme de preuve ordinaire tente de générer la preuve de bloc entière en une seule fois, ce qui est encore moins efficace. De plus, Plonky2 peut également générer des preuves sur des appareils grand public, résolvant ainsi le problème de centralisation matérielle souvent associé aux preuves SNARK.
5. Cumul de connaissances zéro VS Cumul optimiste
ZK-SNARK et ZK-STARK sont devenus l'infrastructure de base des projets d'expansion de la blockchain, en particulier la solution Zero Knowledge Rollup. Zero-Knowledge Rollup fait référence à une solution d'expansion de deuxième couche pour Ethereum qui utilise une technologie de preuve de connaissance nulle pour transférer tous les calculs vers un traitement hors chaîne afin de réduire la congestion du réseau. Le principal avantage de Zero Knowledge Rollup est qu’il peut augmenter considérablement le débit des transactions d’Ethereum tout en maintenant les frais de transaction à un niveau bas, et une fois la transaction intégrée dans le rollup, elle peut être déterminée immédiatement.
En plus du Zero Knowledge Rollup, le plan d'expansion L2 actuel d'Ethereum comprend également Optimistic Rollup. Les transactions exécutées dans Optimistic Rollup sont valides et exécutées immédiatement par défaut. Ce n'est que lorsqu'une transaction frauduleuse est découverte (quelqu'un soumet une preuve de fraude) que la transaction sera annulée. Par conséquent, la sécurité est inférieure à Zero Knowledge Rollup. Pour éviter les transactions frauduleuses, Optimistic Rollup dispose d'une période de contestation après laquelle une transaction doit être finalisée. Cela peut obliger les utilisateurs à attendre un certain temps avant de récupérer leurs fonds.
L’utilisation d’une technologie de preuve sans connaissance n’a pas été envisagée lors de la conception initiale de l’EVM. Vitalik, le fondateur d'Ethereum, estime que Zero Knowledge Rollup sera techniquement complexe à court terme, mais finira par vaincre Optimistic Rollup dans la guerre d'expansion. Ce qui suit est une comparaison entre Zero Knowledge Rollup et Optimistic Rollup.
**6. Quelles sont les perspectives d'avenir d'une technologie à preuve de connaissance nulle ? **
Le domaine de la technologie de preuve à connaissance nulle occupe une position unique : ces dernières années, de nombreux efforts ont été consacrés à faire progresser la recherche dans ce domaine, et bon nombre de résultats sont assez nouveaux dans le domaine de la cryptographie et des communications sécurisées. Par conséquent, de nombreuses questions intéressantes restent sans réponse pour les communautés académiques et de développeurs. Dans le même temps, la technologie à connaissance nulle est utilisée dans divers projets, démontrant les défis de la technologie à connaissance nulle et élargissant ses exigences.
Un domaine de préoccupation pour la technologie à preuve de connaissance nulle est la discussion sur la sécurité post-quantique de la technologie à preuve de connaissance nulle. Les SNARK (Succinct Non-Interactive Arguments of Knowledge) vérifiables publiquement sont un élément clé dans le domaine des technologies à connaissance nulle. Cependant, les systèmes SNARK vérifiables publiquement les plus largement utilisés ne sont pas considérés comme sûrs quantiquement. Les exemples incluent Groth16, Sonic, Marlin, SuperSonic et Spartan. Ces solutions reposent sur des problèmes mathématiques qui peuvent être résolus efficacement à l’aide d’ordinateurs quantiques, ce qui compromet grandement leur sécurité dans un monde post-quantique.
Nous avons constaté que la communauté universitaire recherche activement des preuves à connaissance nulle à sécurité quantique qui peuvent être utilisées pour une variété d'énoncés sans étape de prétraitement. Les exemples actuels de preuves de connaissance nulle à sécurité quantique de pointe incluent des systèmes tels que Ligero, Aurora, Fractal, Lattice Bulletproofs et LPK22. Ligero, Aurora et Fractal sont basés sur des fonctions de hachage, tandis que Lattice Bulletproofs et LKP22 sont basés sur des fonctions de treillis. Les deux fonctions sont considérées comme sûres quantiquement. C'est devenu une tendance de promouvoir ces programmes et d'améliorer leur efficacité.
Une autre attente que nous avons pour l’avenir de la technologie à connaissance nulle est sa capacité à résister aux attaques et la maturité du code lié à la mise en œuvre. Compte tenu de l’augmentation de la quantité de code écrit, il y aura des bibliothèques plus sécurisées et vérifiées ainsi que de meilleures pratiques pour diverses techniques de preuve sans connaissance. Bien entendu, il y aura des erreurs plus courantes à l’avenir qui attendront d’être découvertes et communiquées. Nous nous attendons à ce que ce domaine mûrisse et soit largement adopté, avec des efforts pour standardiser les protocoles et assurer l'interopérabilité entre les différentes implémentations. Un projet appelé ZKProof a déjà commencé à le faire.
Une autre tendance qui continuera d’exister dans la communauté technologique à connaissance nulle est celle du travail accru sur des algorithmes efficaces et éventuellement sur du matériel spécial. Ces dernières années, nous avons vu la taille des preuves diminuer et les prouveurs et vérificateurs devenir plus efficaces. Les progrès des algorithmes, du matériel spécial et de l’optimisation informatique peuvent conduire à des mises en œuvre plus rapides et plus évolutives.
Si l’efficacité des algorithmes existants profite aux futurs utilisateurs de la technologie de preuve à connaissance nulle, nous nous attendons également à voir les capacités des preuves à connaissance nulle continuer à se développer. Dans le passé, nous avons rencontré de nombreux cas lors de la mise en œuvre de ZK-SNARK prétraités. Nous voyons désormais de plus en plus d’instances ZK-SNARK évolutives. De plus, certaines techniques de preuve sans connaissance sont utilisées davantage pour leur simplicité que pour leurs capacités de preuve sans connaissance.
Enfin, une autre tendance dans la technologie de preuve à connaissance nulle est l’intersection de l’apprentissage automatique et des preuves à connaissance nulle (ZKML). L’idée nécessite de former de grands modèles de langage dans un environnement multipartite et d’utiliser des techniques sans connaissance pour vérifier les calculs. C’est très utile pour l’intelligence artificielle actuelle. Des projets pourraient voir le jour dans ce domaine.
Conclusion
Cet article est co-écrit par des membres de la Blockchain Security Alliance. Grâce à l'introduction de cet article, nous pouvons comprendre la large application, les chemins techniques, les tendances de développement et les défis de la preuve de connaissance nulle dans le domaine de la blockchain. **Nous pensons qu'avec le développement de la technologie matérielle et de la cryptographie, les preuves sans connaissance réaliseront davantage de percées à l'avenir, fournissant des services d'application plus rapides et plus sécurisés pour le monde numérique. **