Qu'est-ce que les preuves zk-SNARK et zk-STARK ?
Notions de base
Les amateurs de cryptomonnaies attachent une grande importance à la confidentialité, considérée comme essentielle pour atteindre la fongibilité, une caractéristique clé pour qu'une monnaie soit largement acceptée. La plupart des détenteurs de crypto préfèrent ne pas divulguer leurs avoirs ni l'historique de leurs transactions. Différentes méthodes cryptographiques ont été développées pour apporter de la confidentialité à la blockchain. Deux des plus remarquables sont les preuves zk-SNARK et zk-STARK.
Les preuves zk-SNARK et zk-STARK sont les abréviations de l'argument de connaissance succinct non-interactif à divulgation nulle et de l'argument de connaissance succinct transparent à divulgation nulle, respectivement. Les zk-SNARKs sont déjà utilisés dans Zcash, le système de paiement basé sur la blockchain de JP Morgan Chase, et comme moyen d'authentifier des clients auprès de serveurs. Bien que les zk-SNARKs aient été largement adoptés, les preuves zk-STARK ont été introduites comme une version améliorée du protocole, traitant certaines des problématiques rencontrées par les zk-SNARKs.
La parabole de la caverne d'Ali Baba
Le cryptographe Jean-Jacques Quisquater et ses collaborateurs ont publié un article en 1990, intitulé "Comment expliquer les protocoles à divulgation nulle à vos enfants", qui a introduit le concept des preuves à divulgation nulle au travers d'une parabole mettant en scène la caverne d'Ali Baba. Plusieurs adaptations de l'histoire ont été créées depuis, mais le concept fondamental reste le même.
La parabole se concentre sur une caverne en forme d'anneau avec une seule entrée et une porte magique séparant deux chemins. Pour franchir la porte, il faut chuchoter les bons mots secrets. Dans l'histoire, Emma veut prouver à David qu'elle connaît les mots secrets, sans les révéler. Pour y parvenir, David accepte de rester à l'extérieur pendant qu'Emma entre dans la caverne et marche jusqu'au bout de l'un des deux passages. Dans ce cas, Emma choisit le chemin 1.
David appelle depuis l'entrée pour demander à Emma de sortir par un chemin précis, ici le chemin 2. Si Emma connaît le secret, elle apparaîtra par le passage désigné. Ce processus peut être répété pour confirmer qu'Emma ne devine pas correctement par hasard.
L'histoire de la caverne d'Ali Baba sert d'exemple aux preuves à divulgation nulle, composante essentielle des protocoles zk-SNARK et zk-STARK. Ces preuves permettent de confirmer la possession d'une certaine information sans en divulguer le contenu.
Comment fonctionnent les zk-SNARKs ?
Le concept des preuves à divulgation nulle a été appliqué pour créer la première monnaie de confidentialité largement disponible, Zcash, en utilisant des zk-SNARKs. Contrairement à d'autres projets axés sur la confidentialité qui utilisent des signatures en anneau et d'autres techniques pour brouiller les transactions, Zcash change fondamentalement la manière de partager les données. Les transactions sur le réseau Zcash restent chiffrées, mais peuvent tout de même être vérifiées comme valides grâce aux preuves à divulgation nulle, permettant l'application des règles de consensus sans révéler les données sous-jacentes à chaque transaction. Cependant, les fonctions de confidentialité dans Zcash ne sont pas actives par défaut et dépendent d'une configuration manuelle.
Les preuves à divulgation nulle permettent à un individu de prouver à un autre qu'une assertion est vraie sans révéler d'information autre que la validité de l'assertion. Les parties impliquées sont le prouveur et le vérificateur, et l'information qu'ils détiennent en secret s'appelle le témoin. L'objectif des preuves à divulgation nulle est de révéler le moins d'informations possible entre les deux parties.
Dans l'acronyme zk-SNARK, «succinct» signifie que les preuves sont de petite taille et peuvent être vérifiées rapidement, tandis que «non-interactive» indique qu'il y a peu ou pas d'interaction entre le prouveur et le vérificateur. Les versions plus anciennes des protocoles à divulgation nulle exigeaient que le prouveur et le vérificateur communiquent en aller-retour, ce qui les rendait «interactifs». Cependant, dans les constructions «non-interactives», le prouveur et le vérificateur n'ont à échanger qu'une seule preuve.
Bien que les preuves zk-SNARK dépendent d'une configuration initiale de confiance entre un prouveur et un vérificateur, des chercheurs travaillent à trouver des alternatives pour réduire la quantité de confiance requise dans le processus. La phase d'initialisation est essentielle pour empêcher les doubles dépenses frauduleuses et, dans Zcash, elle est connue sous le nom de cérémonie de génération des paramètres.
La propriété de solidité (soundness) des zk-SNARK suppose qu'un prouveur malhonnête dispose d'une puissance de calcul limitée, et un prouveur doté d'une puissance computationnelle suffisante pourrait créer de fausses preuves. C'est pourquoi les ordinateurs quantiques sont considérés comme une menace pour les zk-SNARKs et les systèmes blockchain.
Enfin, les preuves à divulgation nulle sont rapidement vérifiables et occupent moins de données que les transactions Bitcoin standard, ce qui les rend adaptées comme solution à la fois de confidentialité et de scalabilité.
Comment fonctionnent les zk-STARKs ?
Eli-Ben Sasson, professeur au Technion - Institut de technologie d'Israël, a créé les zk-STARKs comme version alternative des zk-SNARKs. Les zk-STARKs sont considérés comme plus efficaces — potentiellement plus rapides et moins coûteux selon l'implémentation. Contrairement aux zk-SNARKs, les zk-STARKs ne nécessitent pas de configuration initiale de confiance, d'où le «T» pour «transparent».
Les zk-STARKs reposent sur des fonctions de hachage résistantes aux collisions, ce qui élimine les hypothèses arithmétiques des zk-SNARKs qui sont coûteuses en calcul et théoriquement vulnérables aux attaques des ordinateurs quantiques. Cette approche présente une structure cryptographique plus simple en termes d'hypothèses.
Cependant, les preuves zk-STARK ont au moins un inconvénient majeur : elles ont des tailles de preuve plus importantes que les zk-SNARKs. Cette différence de volume de données peut limiter leur usage dans certains contextes, mais cela peut être amélioré par des tests et des recherches supplémentaires.
Conclusion
Le potentiel des zk-SNARKs et des zk-STARKs dans le monde des cryptomonnaies est évident, car les deux protocoles répondent au besoin croissant de confidentialité. Ces technologies sont prometteuses et pourraient jouer un rôle important dans l'adoption plus large des cryptomonnaies.