Développement et exploration des applications des zk-SNARKs
I. L'histoire des zk-SNARKs
Le système moderne des zk-SNARKs trouve son origine dans un article coécrit en 1985 par Goldwasser, Micali et Rackoff. Cet article explore la quantité de connaissances nécessaires à échanger pour prouver la véracité d'une affirmation via de multiples interactions dans un système interactif. Si un échange de connaissances sans révélation peut être réalisé, il est alors qualifié de zk-SNARK. Bien que ce système interactif ne puisse pas être prouvé complètement sur le plan mathématique, il est correct au sens probabiliste.
Pour surmonter les limitations des systèmes interactifs, les systèmes non interactifs ont vu le jour et sont devenus un choix idéal pour les zk-SNARKs. Les premiers systèmes de zk-SNARKs présentaient des lacunes en termes de praticité, et ce n'est que depuis une dizaine d'années qu'ils ont commencé à se développer de manière significative. Parmi ceux-ci, le développement de protocoles zk-SNARKs généraux, non interactifs et de taille de preuve limitée est devenu l'une des directions clés de recherche.
Une avancée importante dans les zk-SNARKs est le court argument de connaissance zéro non interactif basé sur des paires proposé par Groth en 2010, qui a établi la base théorique pour les zk-SNARKs. En 2015, les zk-SNARKs ont été appliqués dans le projet Zcash, permettant la protection de la confidentialité des transactions. Par la suite, la combinaison des zk-SNARKs avec les contrats intelligents a élargi encore davantage leurs cas d'utilisation.
Au cours de cette période, certains résultats académiques importants incluent :
Le protocole Pinocchio de 2013 a compressé le temps de preuve et de vérification.
En 2016, Groth16 a réduit la taille des preuves et amélioré l'efficacité de la vérification.
Les Bulletproofs de 2017 ont proposé des zk-SNARKs courts et non interactifs.
En 2018, les zk-STARKs ont proposé un protocole d'algorithme sans configuration de confiance.
D'autres développements comme PLONK, Halo2, etc., ont également apporté des améliorations aux zk-SNARKs.
Deuxièmement, les principales applications des zk-SNARKs
Les deux applications les plus répandues des zk-SNARKs sont la protection de la vie privée et l'extensibilité.
En matière de protection de la vie privée, les projets représentatifs des débuts incluent Zcash et Monero. Cependant, en raison de la nécessité des transactions privées qui n'est pas à la hauteur des attentes, ce type de projet a progressivement reculé.
Dans le domaine de l'extension des applications, avec le passage d'Ethereum vers une approche centrée sur les rollups, la série ZK redevient un point focal de l'industrie. L'extension ZK peut être réalisée sur un réseau de couche 1, comme le projet Mina ; elle peut également être réalisée sur un réseau de couche 2, c'est-à-dire zk-rollup.
Les principaux rôles des zk-rollups incluent le Sequencer et l'Aggregator. Le Sequencer est responsable de l'emballage des transactions, l'Aggregator est chargé de regrouper les transactions et de générer des zk-SNARKs pour mettre à jour l'état sur la chaîne.
Les avantages des zk-rollups résident dans des frais faibles, une rapidité de finalité et une protection de la vie privée ; les inconvénients incluent une charge de calcul importante et la nécessité d'une configuration de confiance.
Actuellement, les projets zk-rollup compétitifs sur le marché incluent StarkNet, zkSync, Aztec Connect, Polygon Hermez, etc. Ces projets choisissent principalement entre SNARK( et ses versions améliorées ) et STARK, ainsi que le niveau de support pour l'EVM.
La compatibilité EVM est un problème important. Certains projets choisissent de compatibilité totale avec les opcodes Solidity, tandis que d'autres conçoivent de nouvelles machines virtuelles pour concilier la convivialité ZK et la compatibilité avec Solidity. Ces dernières années, l'amélioration de la compatibilité EVM a offert plus de commodités aux développeurs.
Trois, les principes de base des zk-SNARKs
Les zk-SNARKs doivent satisfaire aux trois caractéristiques suivantes : intégrité, fiabilité et zero-knowledge. ZK-SNARK est un protocole de preuve à connaissance nulle largement utilisé, qui signifie "preuve de connaissance succincte et non interactive".
Les étapes de base des zk-SNARKs incluent:
Convertir le problème en circuit
Convertir le circuit en forme R1CS
Convertir 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
Le développement des ZK-SNARKs a jeté les bases de l'application des zk-SNARKs dans le domaine de la blockchain. À l'avenir, avec les progrès technologiques, les zk-SNARKs devraient jouer un rôle important dans davantage de scénarios.
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.
17 J'aime
Récompense
17
4
Partager
Commentaire
0/400
GasGuzzler
· 07-18 21:54
zk est vraiment un bull !
Voir l'originalRépondre0
OnchainHolmes
· 07-16 02:45
zk est vraiment exagéré 8
Voir l'originalRépondre0
FloorSweeper
· 07-16 02:41
ngmi si tu ne comprends toujours pas la technologie zk
Voir l'originalRépondre0
BlockchainDecoder
· 07-16 02:36
En citant le point de vue du papier de Goldwasser de 1989, l'essence de ZK est un problème de granularité interactive.
Histoire du développement des zk-SNARKs et analyse des principes des zk-SNARKs
Développement et exploration des applications des zk-SNARKs
I. L'histoire des zk-SNARKs
Le système moderne des zk-SNARKs trouve son origine dans un article coécrit en 1985 par Goldwasser, Micali et Rackoff. Cet article explore la quantité de connaissances nécessaires à échanger pour prouver la véracité d'une affirmation via de multiples interactions dans un système interactif. Si un échange de connaissances sans révélation peut être réalisé, il est alors qualifié de zk-SNARK. Bien que ce système interactif ne puisse pas être prouvé complètement sur le plan mathématique, il est correct au sens probabiliste.
Pour surmonter les limitations des systèmes interactifs, les systèmes non interactifs ont vu le jour et sont devenus un choix idéal pour les zk-SNARKs. Les premiers systèmes de zk-SNARKs présentaient des lacunes en termes de praticité, et ce n'est que depuis une dizaine d'années qu'ils ont commencé à se développer de manière significative. Parmi ceux-ci, le développement de protocoles zk-SNARKs généraux, non interactifs et de taille de preuve limitée est devenu l'une des directions clés de recherche.
Une avancée importante dans les zk-SNARKs est le court argument de connaissance zéro non interactif basé sur des paires proposé par Groth en 2010, qui a établi la base théorique pour les zk-SNARKs. En 2015, les zk-SNARKs ont été appliqués dans le projet Zcash, permettant la protection de la confidentialité des transactions. Par la suite, la combinaison des zk-SNARKs avec les contrats intelligents a élargi encore davantage leurs cas d'utilisation.
Au cours de cette période, certains résultats académiques importants incluent :
D'autres développements comme PLONK, Halo2, etc., ont également apporté des améliorations aux zk-SNARKs.
Deuxièmement, les principales applications des zk-SNARKs
Les deux applications les plus répandues des zk-SNARKs sont la protection de la vie privée et l'extensibilité.
En matière de protection de la vie privée, les projets représentatifs des débuts incluent Zcash et Monero. Cependant, en raison de la nécessité des transactions privées qui n'est pas à la hauteur des attentes, ce type de projet a progressivement reculé.
Dans le domaine de l'extension des applications, avec le passage d'Ethereum vers une approche centrée sur les rollups, la série ZK redevient un point focal de l'industrie. L'extension ZK peut être réalisée sur un réseau de couche 1, comme le projet Mina ; elle peut également être réalisée sur un réseau de couche 2, c'est-à-dire zk-rollup.
Les principaux rôles des zk-rollups incluent le Sequencer et l'Aggregator. Le Sequencer est responsable de l'emballage des transactions, l'Aggregator est chargé de regrouper les transactions et de générer des zk-SNARKs pour mettre à jour l'état sur la chaîne.
Les avantages des zk-rollups résident dans des frais faibles, une rapidité de finalité et une protection de la vie privée ; les inconvénients incluent une charge de calcul importante et la nécessité d'une configuration de confiance.
Actuellement, les projets zk-rollup compétitifs sur le marché incluent StarkNet, zkSync, Aztec Connect, Polygon Hermez, etc. Ces projets choisissent principalement entre SNARK( et ses versions améliorées ) et STARK, ainsi que le niveau de support pour l'EVM.
La compatibilité EVM est un problème important. Certains projets choisissent de compatibilité totale avec les opcodes Solidity, tandis que d'autres conçoivent de nouvelles machines virtuelles pour concilier la convivialité ZK et la compatibilité avec Solidity. Ces dernières années, l'amélioration de la compatibilité EVM a offert plus de commodités aux développeurs.
Trois, les principes de base des zk-SNARKs
Les zk-SNARKs doivent satisfaire aux trois caractéristiques suivantes : intégrité, fiabilité et zero-knowledge. ZK-SNARK est un protocole de preuve à connaissance nulle largement utilisé, qui signifie "preuve de connaissance succincte et non interactive".
Les étapes de base des zk-SNARKs incluent:
Le développement des ZK-SNARKs a jeté les bases de l'application des zk-SNARKs dans le domaine de la blockchain. À l'avenir, avec les progrès technologiques, les zk-SNARKs devraient jouer un rôle important dans davantage de scénarios.