Le système de zk-SNARKs trouve ses origines dans les travaux de Goldwasser, Micali et Rackoff en 1985. Ils ont exploré la quantité de connaissances à échanger pour prouver la validité d'une déclaration dans un système interactif, à travers plusieurs tours d'interaction. Si la preuve peut être faite sans échanger de connaissances, elle est appelée zk-SNARKs.
Les systèmes de zk-SNARKs des débuts présentaient des lacunes en termes d'efficacité et de praticité, restant principalement au niveau théorique. Au cours de la dernière décennie, avec l'essor de la cryptographie dans le domaine des cryptomonnaies, les zk-SNARKs ont commencé à se développer rapidement, devenant une direction de recherche importante. Parmi celles-ci, le développement de protocoles zk-SNARKs généraux, non interactifs et à taille de preuve limitée est l'une des directions clés d'exploration.
Une avancée majeure dans les zk-SNARKs est la preuve à court couplage non interactive proposée par Groth en 2010. Cela a jeté les bases théoriques pour les zk-SNARKs. En 2015, Zcash a adopté un système de preuves à connaissance nulle pour protéger la confidentialité des transactions, marquant le début d'une application étendue des zk-SNARKs.
D'autres résultats académiques importants comprennent :
Pinocchio de 2013 : réduire le temps de preuve et de vérification à une plage utilisable
Groth16 de 2016 : réduction de la taille des preuves, amélioration de l'efficacité de la vérification
Bulletproofs de 2017 : proposition de courtes preuves sans configuration de confiance
zk-STARKs de 2018 : proposition d'un nouveau protocole sans configuration de confiance.
De plus, PLONK et Halo2 sont également des avancées importantes qui ont amélioré les zk-SNARKs.
zk-SNARKs de l'application
Les deux applications les plus répandues des zk-SNARKs sont la protection de la vie privée et l'évolutivité.
protection de la vie privée
Les premiers projets de transactions privées tels que Zcash et Monero ont été lancés et sont devenus une direction importante. Cependant, en raison du besoin de transactions privées qui n'a pas répondu aux attentes, ces projets sont progressivement entrés dans les rangs des deuxième et troisième lignes.
Zcash utilise la technologie zk-SNARKs, ses étapes de transaction comprennent : la configuration du système, la génération de clés publiques et privées, la création de pièces, la génération de preuves, la vérification et la réception. Cependant, Zcash est basé sur le modèle UTXO, il masque seulement certaines informations de transaction, et non pas complètement. Son taux d'utilisation des transactions privées est inférieur à 10 %.
Tornado Cash utilise un design de pool de mélange unique, basé sur le réseau Ethereum, utilisant la technologie zk-SNARKs. Il garantit que seules les pièces déposées peuvent être retirées, chaque pièce ne peut être retirée qu'une seule fois, et le processus de preuve est lié à l'avis d'annulation.
mise à l'échelle
L'extension ZK peut être réalisée sur un réseau de couche 1 ( tel que Mina ) ou sur un réseau de couche 2 (, à savoir zk-rollup ). Le zk-rollup comprend deux types de rôles : 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, mettant à jour l'arbre d'état d'Ethereum.
Les avantages des zk-rollups sont des frais bas et une rapidité d'atteinte de la finalité, tandis que les inconvénients sont une charge de calcul élevée et des problèmes de sécurité potentiels.
Les principaux projets zk-rollup actuellement incluent : StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, etc. Ils présentent des différences en termes de choix entre SNARK/STARK et de compatibilité EVM.
La compatibilité EVM a toujours été un problème. Certains projets choisissent de développer leur propre machine virtuelle et langage, mais cela augmente le coût d'apprentissage pour les développeurs. Actuellement, il existe principalement deux solutions dans l'industrie : être entièrement compatible avec les opcodes Solidity, ou concevoir une nouvelle machine virtuelle compatible avec ZK et compatible avec Solidity. Récemment, des progrès importants ont été réalisés en matière de compatibilité EVM, offrant la possibilité d'une migration sans heurts pour les développeurs.
Principe de réalisation des zk-SNARKs
ZK-SNARK(Argument de connaissance succinct non interactif à divulgation nulle) est un système de zk-SNARKs avec les caractéristiques suivantes:
zk-SNARKs : le processus de preuve ne divulgue pas d'informations supplémentaires
Concis : taille de vérification réduite
Non interactif : aucune interaction multiple requise
Fiabilité : les prouveurs avec des capacités de calcul limitées ne peuvent pas falsifier les preuves
Connaissance : le prouveur doit connaître des informations valides pour construire une preuve.
Le processus de preuve ZK-SNARK de Groth16 comprend :
Convertir le problème en circuit
Convertir le circuit en forme R1CS
Conversion de R1CS en forme QAP
Établir une configuration de confiance, générer une clé de preuve et une clé de vérification
Génération et vérification des preuves zk-SNARKs
La technologie des zk-SNARKs continue de se développer rapidement et devrait jouer un rôle encore plus important à l'avenir dans la protection de la vie privée et l'extension des capacités.
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.
Analyse complète du développement et de l'application de la technologie zk-SNARKs : de la protection de la vie privée à l'extension Layer2.
zk-SNARKs : développement et application
zk-SNARKs de l'histoire
Le système de zk-SNARKs trouve ses origines dans les travaux de Goldwasser, Micali et Rackoff en 1985. Ils ont exploré la quantité de connaissances à échanger pour prouver la validité d'une déclaration dans un système interactif, à travers plusieurs tours d'interaction. Si la preuve peut être faite sans échanger de connaissances, elle est appelée zk-SNARKs.
Les systèmes de zk-SNARKs des débuts présentaient des lacunes en termes d'efficacité et de praticité, restant principalement au niveau théorique. Au cours de la dernière décennie, avec l'essor de la cryptographie dans le domaine des cryptomonnaies, les zk-SNARKs ont commencé à se développer rapidement, devenant une direction de recherche importante. Parmi celles-ci, le développement de protocoles zk-SNARKs généraux, non interactifs et à taille de preuve limitée est l'une des directions clés d'exploration.
Une avancée majeure dans les zk-SNARKs est la preuve à court couplage non interactive proposée par Groth en 2010. Cela a jeté les bases théoriques pour les zk-SNARKs. En 2015, Zcash a adopté un système de preuves à connaissance nulle pour protéger la confidentialité des transactions, marquant le début d'une application étendue des zk-SNARKs.
D'autres résultats académiques importants comprennent :
De plus, PLONK et Halo2 sont également des avancées importantes qui ont amélioré les zk-SNARKs.
zk-SNARKs de l'application
Les deux applications les plus répandues des zk-SNARKs sont la protection de la vie privée et l'évolutivité.
protection de la vie privée
Les premiers projets de transactions privées tels que Zcash et Monero ont été lancés et sont devenus une direction importante. Cependant, en raison du besoin de transactions privées qui n'a pas répondu aux attentes, ces projets sont progressivement entrés dans les rangs des deuxième et troisième lignes.
Zcash utilise la technologie zk-SNARKs, ses étapes de transaction comprennent : la configuration du système, la génération de clés publiques et privées, la création de pièces, la génération de preuves, la vérification et la réception. Cependant, Zcash est basé sur le modèle UTXO, il masque seulement certaines informations de transaction, et non pas complètement. Son taux d'utilisation des transactions privées est inférieur à 10 %.
Tornado Cash utilise un design de pool de mélange unique, basé sur le réseau Ethereum, utilisant la technologie zk-SNARKs. Il garantit que seules les pièces déposées peuvent être retirées, chaque pièce ne peut être retirée qu'une seule fois, et le processus de preuve est lié à l'avis d'annulation.
mise à l'échelle
L'extension ZK peut être réalisée sur un réseau de couche 1 ( tel que Mina ) ou sur un réseau de couche 2 (, à savoir zk-rollup ). Le zk-rollup comprend deux types de rôles : 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, mettant à jour l'arbre d'état d'Ethereum.
Les avantages des zk-rollups sont des frais bas et une rapidité d'atteinte de la finalité, tandis que les inconvénients sont une charge de calcul élevée et des problèmes de sécurité potentiels.
Les principaux projets zk-rollup actuellement incluent : StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, etc. Ils présentent des différences en termes de choix entre SNARK/STARK et de compatibilité EVM.
La compatibilité EVM a toujours été un problème. Certains projets choisissent de développer leur propre machine virtuelle et langage, mais cela augmente le coût d'apprentissage pour les développeurs. Actuellement, il existe principalement deux solutions dans l'industrie : être entièrement compatible avec les opcodes Solidity, ou concevoir une nouvelle machine virtuelle compatible avec ZK et compatible avec Solidity. Récemment, des progrès importants ont été réalisés en matière de compatibilité EVM, offrant la possibilité d'une migration sans heurts pour les développeurs.
Principe de réalisation des zk-SNARKs
ZK-SNARK(Argument de connaissance succinct non interactif à divulgation nulle) est un système de zk-SNARKs avec les caractéristiques suivantes:
Le processus de preuve ZK-SNARK de Groth16 comprend :
La technologie des zk-SNARKs continue de se développer rapidement et devrait jouer un rôle encore plus important à l'avenir dans la protection de la vie privée et l'extension des capacités.