zk-SNARKs : Évolution de la théorie à l'application
zk-SNARKs的发展历程
Le système de preuve à connaissance nulle (zk-SNARKs) est originaire d'un article publié en 1985 par Goldwasser, Micali et Rackoff intitulé "La complexité de la connaissance dans les systèmes de preuve interactifs". Cet article examine la quantité de connaissances échangées pour prouver la véracité d'une déclaration par le biais de plusieurs interactions dans un système interactif. Si la preuve peut être réalisée sans révéler d'informations supplémentaires, cela s'appelle une preuve à connaissance nulle.
Les systèmes de zk-SNARKs des débuts n'étaient ni efficaces ni pratiques, restant principalement au niveau théorique. Ce n'est que depuis environ 10 ans, avec l'application généralisée de la cryptographie dans le domaine des cryptomonnaies, que les zk-SNARKs sont devenus un domaine de recherche important. Parmi ceux-ci, le développement de protocoles de zk-SNARKs génériques, non interactifs et à l'échelle de preuve limitée est un objectif clé.
Les avancées révolutionnaires en matière de zk-SNARKs sont basées sur l'article publié par Groth en 2010, qui a établi les fondements théoriques des zk-SNARKs. En 2015, Zcash a appliqué les zk-SNARKs pour protéger la vie privée des transactions, ouvrant ainsi la voie à une large application des zk-SNARKs dans des scénarios pratiques.
Par la suite, certains résultats académiques importants comprennent :
Le protocole Pinocchio de 2013 a considérablement amélioré l'efficacité de la preuve et de la vérification.
La Groth16 de 2016 a further réduit la taille des preuves et amélioré l'efficacité de la vérification.
En 2017, les Bulletproofs ont proposé un algorithme de preuve courte sans configuration de confiance.
Les zk-STARKs de 2018 ont proposé un protocole de preuve à connaissance nulle résistant aux ordinateurs quantiques.
D'autres développements récents tels que PLONK et Halo2 ont également amélioré les zk-SNARKs dans différents aspects.
Applications principales des zk-SNARKs
Les deux applications les plus répandues des zk-SNARKs sont la protection de la vie privée et l'extensibilité.
Les applications de transactions privées telles que Zcash et Monero ont suscité beaucoup d'attention au début, mais la demande de confidentialité ne s'est pas révélée aussi marquante que prévu, et ces projets ont progressivement été relégués au second plan. En revanche, la demande d'évolutivité est devenue de plus en plus pressante. En particulier, après que Ethereum 2.0 ait adopté une approche centrée sur les rollups, les solutions d'évolutivité basées sur zk-SNARKs sont revenues au premier plan de l'industrie.
transactions privées
Les projets représentatifs de la transaction privée incluent :
Zcash: utilise des zk-SNARKs pour réaliser la confidentialité des transactions
Monero : utilise l'algorithme Bulletproofs
Tornado Cash : un pool de mélange basé sur Ethereum, utilisant des zk-SNARKs
Le processus de transaction privée de Zcash comprend des étapes telles que la configuration du système, la génération de clés, le minting, la génération de preuves de transaction, la vérification et la réception. Cependant, Zcash présente également certaines limites, telles que son modèle UTXO, ce qui rend difficile son intégration avec d'autres applications, et le taux d'utilisation des transactions privées est faible en pratique.
Tornado Cash adopte un modèle de pool de mélange unique, offrant une meilleure universalité. Il est basé sur l'implémentation zk-SNARKs de Groth16, garantissant que les fonds déposés ne peuvent être retirés que par leur propriétaire, et que chaque fonds ne peut être retiré qu'une seule fois.
mise à l'échelle
Les applications des zk-SNARKs en matière d'évolutivité reposent principalement sur le zk-rollup. Le rôle central du zk-rollup est joué par le Sequencer et l'Aggregator. Le Sequencer est responsable de l'emballage des transactions, tandis que l'Aggregator fusionne un grand nombre de transactions et génère des zk-SNARKs pour mettre à jour l'arbre d'état d'Ethereum.
Les avantages des zk-rollups sont des frais bas, une vitesse de transaction rapide et la protection de la vie privée. Les inconvénients sont que la génération de preuves nécessite une grande quantité de calculs, et que les zk-SNARKs nécessitent une configuration de confiance.
Actuellement, les principaux projets zk-rollup incluent :
StarkNet : utilise des zk-STARKs, ne supporte pas l'EVM
zkSync: utilise PLONK, supporte EVM
Aztec : a développé le protocole PLONK, axé sur la confidentialité
Scroll : s'engage à réaliser un zk-rollup compatible avec l'EVM
La compatibilité EVM est un grand défi auquel sont confrontés les zk-rollups. Actuellement, il existe principalement deux solutions : être complètement compatible avec les opcodes Solidity ou concevoir une nouvelle machine virtuelle compatible avec ZK et Solidity. L'amélioration de la compatibilité EVM aura un impact considérable sur le développement de l'écosystème ZK.
Les principes de base des zk-SNARKs
zk-SNARKs signifie "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge". Il possède les caractéristiques suivantes :
zk-SNARKs: ne divulgue pas d'informations supplémentaires
Concis : faible coût de vérification
Non interactif : pas besoin de plusieurs interactions
Preuve : fiable sur le plan computationnel
Connaissance : le prouveur doit connaître des informations valides
Le principe de mise en œuvre de zk-SNARKs de Groth16 comprend les étapes suivantes :
Convertir le problème en circuit
Convertir le circuit en forme R1CS
Convertir R1CS en forme QAP
Générer les paramètres de configuration fiables
Générer et vérifier des zk-SNARKs
La technologie des zk-SNARKs se développe rapidement et devrait jouer un rôle important dans de nombreux domaines à l'avenir.
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.
Évolution de la technologie des zk-SNARKs : des percées théoriques aux applications d'évolutivité
zk-SNARKs : Évolution de la théorie à l'application
zk-SNARKs的发展历程
Le système de preuve à connaissance nulle (zk-SNARKs) est originaire d'un article publié en 1985 par Goldwasser, Micali et Rackoff intitulé "La complexité de la connaissance dans les systèmes de preuve interactifs". Cet article examine la quantité de connaissances échangées pour prouver la véracité d'une déclaration par le biais de plusieurs interactions dans un système interactif. Si la preuve peut être réalisée sans révéler d'informations supplémentaires, cela s'appelle une preuve à connaissance nulle.
Les systèmes de zk-SNARKs des débuts n'étaient ni efficaces ni pratiques, restant principalement au niveau théorique. Ce n'est que depuis environ 10 ans, avec l'application généralisée de la cryptographie dans le domaine des cryptomonnaies, que les zk-SNARKs sont devenus un domaine de recherche important. Parmi ceux-ci, le développement de protocoles de zk-SNARKs génériques, non interactifs et à l'échelle de preuve limitée est un objectif clé.
Les avancées révolutionnaires en matière de zk-SNARKs sont basées sur l'article publié par Groth en 2010, qui a établi les fondements théoriques des zk-SNARKs. En 2015, Zcash a appliqué les zk-SNARKs pour protéger la vie privée des transactions, ouvrant ainsi la voie à une large application des zk-SNARKs dans des scénarios pratiques.
Par la suite, certains résultats académiques importants comprennent :
D'autres développements récents tels que PLONK et Halo2 ont également amélioré les zk-SNARKs dans différents aspects.
Applications principales des zk-SNARKs
Les deux applications les plus répandues des zk-SNARKs sont la protection de la vie privée et l'extensibilité.
Les applications de transactions privées telles que Zcash et Monero ont suscité beaucoup d'attention au début, mais la demande de confidentialité ne s'est pas révélée aussi marquante que prévu, et ces projets ont progressivement été relégués au second plan. En revanche, la demande d'évolutivité est devenue de plus en plus pressante. En particulier, après que Ethereum 2.0 ait adopté une approche centrée sur les rollups, les solutions d'évolutivité basées sur zk-SNARKs sont revenues au premier plan de l'industrie.
transactions privées
Les projets représentatifs de la transaction privée incluent :
Le processus de transaction privée de Zcash comprend des étapes telles que la configuration du système, la génération de clés, le minting, la génération de preuves de transaction, la vérification et la réception. Cependant, Zcash présente également certaines limites, telles que son modèle UTXO, ce qui rend difficile son intégration avec d'autres applications, et le taux d'utilisation des transactions privées est faible en pratique.
Tornado Cash adopte un modèle de pool de mélange unique, offrant une meilleure universalité. Il est basé sur l'implémentation zk-SNARKs de Groth16, garantissant que les fonds déposés ne peuvent être retirés que par leur propriétaire, et que chaque fonds ne peut être retiré qu'une seule fois.
mise à l'échelle
Les applications des zk-SNARKs en matière d'évolutivité reposent principalement sur le zk-rollup. Le rôle central du zk-rollup est joué par le Sequencer et l'Aggregator. Le Sequencer est responsable de l'emballage des transactions, tandis que l'Aggregator fusionne un grand nombre de transactions et génère des zk-SNARKs pour mettre à jour l'arbre d'état d'Ethereum.
Les avantages des zk-rollups sont des frais bas, une vitesse de transaction rapide et la protection de la vie privée. Les inconvénients sont que la génération de preuves nécessite une grande quantité de calculs, et que les zk-SNARKs nécessitent une configuration de confiance.
Actuellement, les principaux projets zk-rollup incluent :
La compatibilité EVM est un grand défi auquel sont confrontés les zk-rollups. Actuellement, il existe principalement deux solutions : être complètement compatible avec les opcodes Solidity ou concevoir une nouvelle machine virtuelle compatible avec ZK et Solidity. L'amélioration de la compatibilité EVM aura un impact considérable sur le développement de l'écosystème ZK.
Les principes de base des zk-SNARKs
zk-SNARKs signifie "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge". Il possède les caractéristiques suivantes :
Le principe de mise en œuvre de zk-SNARKs de Groth16 comprend les étapes suivantes :
La technologie des zk-SNARKs se développe rapidement et devrait jouer un rôle important dans de nombreux domaines à l'avenir.