Le système de preuve à connaissance nulle trouve son origine dans l'article de Goldwasser, Micali et Rackoff de 1985, qui explore la quantité de connaissance à échanger pour prouver la validité dans un système interactif. Si un échange à connaissance nulle peut être réalisé, cela s'appelle une preuve à connaissance nulle. Les premiers systèmes de preuve à connaissance nulle manquaient d'efficacité et de convivialité, restant principalement au niveau théorique.
Au cours de la dernière décennie, les zk-SNARKs ont connu un développement rapide, devenant une direction importante dans le domaine de la cryptographie. Parmi celles-ci, le développement de protocoles de zk-SNARKs généraux, non interactifs et de petite taille est l'une des directions clés d'exploration. Les zk-SNARKs nécessitent un compromis entre la vitesse de preuve, la vitesse de vérification et la taille de la preuve.
L'article de Groth de 2010 est une avancée importante dans le domaine des ZKP, établissant la base théorique pour les zk-SNARKs. En 2015, Zcash a utilisé les preuves à connaissance nulle pour protéger la vie privée des transactions, ouvrant la voie à une large application des ZKP.
D'autres résultats académiques importants comprennent :
Protocole Pinocchio de 2013
Algorithme Groth16 de 2016
Algorithme Bulletproofs de 2017
Protocole zk-STARKs de 2018
De plus, PLONK, Halo2 et d'autres sont également d'importantes avancées dans le domaine des zk-SNARKs.
Deux, l'application des zk-SNARKs
Les zk-SNARKs sont principalement appliqués à la protection de la vie privée et à l'extensibilité.
protection de la vie privée
Les projets de transactions privées précoces comme Zcash et Monero sont assez remarquables, mais ils ont progressivement disparu des projecteurs. Zcash utilise des zk-SNARKs pour réaliser des transactions privées, les principales étapes incluent la configuration du système, la génération de clés, le minting, la transaction, la vérification et la réception.
Tornado Cash utilise un unique pool de mélange de gros montants, basé sur le réseau Ethereum, et adopte zk-SNARKs pour assurer la protection de la vie privée. Ses principales caractéristiques incluent que seuls les fonds déposés peuvent être retirés, les fonds ne peuvent pas être retirés plusieurs fois, et la preuve est liée à l'avis d'annulation.
Comparé à l'extension, la mise en œuvre de la protection de la vie privée est relativement facile. Si le plan d'extension réussit, la protection de la vie privée ne posera fondamentalement pas de problème.
mise à l'échelle
L'extension ZK peut être réalisée sur un réseau de couche 1 ou de couche 2. Le ZK rollup est une solution d'extension importante de couche 2, comprenant deux types de rôles : le Sequencer et l'Aggregator. Le Sequencer est responsable de l'emballage des transactions, tandis que l'Aggregator fusionne les 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, une rapidité de finalité, etc., tandis que les inconvénients incluent une charge de calcul importante et la nécessité d'une configuration de confiance, etc. Actuellement, les principaux projets de zk-rollups incluent StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, etc.
La route technique se concentre principalement sur le choix entre SNARK( et les versions améliorées ) et STARK, ainsi que sur le degré de support pour l'EVM. La compatibilité EVM est un problème clé qui influence l'écosystème de développement et le paysage concurrentiel.
Trois, le principe fondamental des zk-SNARKs
Les zk-SNARKs possèdent trois caractéristiques : intégrité, fiabilité et connaissance nulle. Leur principe de mise en œuvre inclut principalement :
Convertir le problème en circuit
Convertir le circuit en forme R1CS
Conversion de R1CS en forme QAP
Établir un trusted setup, générer des paramètres aléatoires
Générer et vérifier les preuves zk-SNARKs
Le développement des zk-SNARKs, ses applications et la relation avec les zk-STARKs seront discutés en profondeur par la suite.
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.
Développement des zk-SNARKs et double application : protection de la vie privée et extensibilité Layer2
zk-SNARKs de l'histoire et des applications
I. L'évolution des zk-SNARKs
Le système de preuve à connaissance nulle trouve son origine dans l'article de Goldwasser, Micali et Rackoff de 1985, qui explore la quantité de connaissance à échanger pour prouver la validité dans un système interactif. Si un échange à connaissance nulle peut être réalisé, cela s'appelle une preuve à connaissance nulle. Les premiers systèmes de preuve à connaissance nulle manquaient d'efficacité et de convivialité, restant principalement au niveau théorique.
Au cours de la dernière décennie, les zk-SNARKs ont connu un développement rapide, devenant une direction importante dans le domaine de la cryptographie. Parmi celles-ci, le développement de protocoles de zk-SNARKs généraux, non interactifs et de petite taille est l'une des directions clés d'exploration. Les zk-SNARKs nécessitent un compromis entre la vitesse de preuve, la vitesse de vérification et la taille de la preuve.
L'article de Groth de 2010 est une avancée importante dans le domaine des ZKP, établissant la base théorique pour les zk-SNARKs. En 2015, Zcash a utilisé les preuves à connaissance nulle pour protéger la vie privée des transactions, ouvrant la voie à une large application des ZKP.
D'autres résultats académiques importants comprennent :
De plus, PLONK, Halo2 et d'autres sont également d'importantes avancées dans le domaine des zk-SNARKs.
Deux, l'application des zk-SNARKs
Les zk-SNARKs sont principalement appliqués à la protection de la vie privée et à l'extensibilité.
protection de la vie privée
Les projets de transactions privées précoces comme Zcash et Monero sont assez remarquables, mais ils ont progressivement disparu des projecteurs. Zcash utilise des zk-SNARKs pour réaliser des transactions privées, les principales étapes incluent la configuration du système, la génération de clés, le minting, la transaction, la vérification et la réception.
Tornado Cash utilise un unique pool de mélange de gros montants, basé sur le réseau Ethereum, et adopte zk-SNARKs pour assurer la protection de la vie privée. Ses principales caractéristiques incluent que seuls les fonds déposés peuvent être retirés, les fonds ne peuvent pas être retirés plusieurs fois, et la preuve est liée à l'avis d'annulation.
Comparé à l'extension, la mise en œuvre de la protection de la vie privée est relativement facile. Si le plan d'extension réussit, la protection de la vie privée ne posera fondamentalement pas de problème.
mise à l'échelle
L'extension ZK peut être réalisée sur un réseau de couche 1 ou de couche 2. Le ZK rollup est une solution d'extension importante de couche 2, comprenant deux types de rôles : le Sequencer et l'Aggregator. Le Sequencer est responsable de l'emballage des transactions, tandis que l'Aggregator fusionne les 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, une rapidité de finalité, etc., tandis que les inconvénients incluent une charge de calcul importante et la nécessité d'une configuration de confiance, etc. Actuellement, les principaux projets de zk-rollups incluent StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, etc.
La route technique se concentre principalement sur le choix entre SNARK( et les versions améliorées ) et STARK, ainsi que sur le degré de support pour l'EVM. La compatibilité EVM est un problème clé qui influence l'écosystème de développement et le paysage concurrentiel.
Trois, le principe fondamental des zk-SNARKs
Les zk-SNARKs possèdent trois caractéristiques : intégrité, fiabilité et connaissance nulle. Leur principe de mise en œuvre inclut principalement :
Le développement des zk-SNARKs, ses applications et la relation avec les zk-STARKs seront discutés en profondeur par la suite.