Que sont les zk-SNARKs ?

From Mina Wiki
Jump to navigation Jump to search

Le guide complet des preuves crypto les plus puissantes


Pour commencer


Zero Knowledge Proofs ou zk-SNARKs. Ces termes sont fréquemment utilisés dans les cercles des cryptomonnaies, souvent dans le contexte de la confidentialité des transactions. Dans le contexte du protocole Mina, ils constituent une partie essentielle de notre principale innovation : une petite blockchain de taille constante. Leurs origines remontent à 1985, lorsque les preuves à zéro connaissance ont été expliquées pour la première fois dans le document "The Knowledge Complexity of Interactive Proof-Systems". Mais la question demeure : que sont-ils réellement ?

La vision centrale des cryptomonnaies est de permettre aux individus de diminuer leur dépendance vis- à-vis des pouvoirs centralisés et des intermédiaires tiers. Les zk-SNARKs sont une innovation qui peut faire de cette vision, une réalité. Cependant, les zk-SNARKs étant très complexes, il est difficile de trouver des ressources claires et accessibles. Notre équipe de cryptographes et d'ingénieurs a compilé, résumé et passé en revue les ressources disponibles pour vous aider à démarrer, que vous soyez débutant ou expert. Vous connaissez une ressource que nous devrions inclure ? Faites-le nous savoir dans la section "Commentaires" ci-dessous.

Tout d'abord, Izaak et Vanishree, deux membres de notre équipe de cryptographie qui ont consacré leur vie à l'étude des zk-SNARKS, vous aideront à démarrer avec une introduction.

Zero-knowledge Proofs: An Intuitive Explanation

Vanishree Rao, un cryptographe travaillant sur le protocole Mina, propose cette explication en utilisant le problème classique des 3 couleurs pour introduire des concepts clés tels que la solidité, la connaissance zéro et les vérificateurs. Très visuelle, cette lecture courte (<5 minutes) est un excellent point de départ.

Using zk-SNARKs for a constant sized Blockchain

Dans cette présentation, Izaak Meckler, co-fondateur et CTO de O(1) Labs, et principal cryptographe travaillant sur le protocole Mina, donne un aperçu et une introduction non seulement des concepts qui sous-tendent les zk-SNARK, mais aussi des exemples pratiques qui montrent leur importance.


En savoir plus


Ce sont les meilleures ressources de type 101 qui rendent les Zero Knowledge Proofs et les zk-SNARKs plus accessibles. Des métaphores visuelles et des explications simplifiées sont utilisées pour affiner et développer les concepts introduits ci-dessus.

Introduction to Zero-Knowledge Proofs

C'est un bon point de départ. Tout d'abord, il y a un peu d'histoire, expliquant le contexte original du document de 1985 "The Knowledge Complexity of Interactive Proof-Systems" qui a lancé le projet. Ensuite, il présente une version légèrement simplifiée et plus visuelle de l'histoire de la grotte d'Ali Baba. Troisièmement, il fournit un joli résumé succinct des trois propriétés qu'une preuve de connaissance zéro (Zero Knowledge Proof) doit satisfaire : exhaustivité, solidité, connaissance zéro.

Explain Like I’m 5: Zero Knowledge Proof - Halloween Edition

Cet exemple prend le célèbre "problème du millionnaire de Yao" - où deux millionnaires veulent découvrir s'ils ont la même somme d'argent sans qu'aucun d'entre eux n'ait à divulguer ses avoirs - et le place dans le contexte de deux enfants (évidemment nommés Alice et Bob) qui veulent savoir s'ils ont apporté la même quantité de bonbons pendant Halloween.

Video: Zero Knowledge Proof - ZPK

Pour rendre tout cela plus visuel, allons directement sur YouTube. Cette courte animation explicative de 10 minutes permet aux utilisateurs de démontrer la capacité à prouver que quelque chose est vrai sans révéler les circonstances spécifiques qui le rendent ainsi. Dans ce cas, l'exemple utilisé est celui d'une personne qui essaie de convaincre son ami daltonien qu'il y a une différence entre une balle verte et une balle rouge. Cette vidéo aborde également la différence entre les ZKP interactifs et non interactifs, ouvrant la voie à la discussion sur les SNARKS.

Video: Zero Knowledge Proof

Si la vidéo ci-dessus est le niveau 101 de départ pour les ZKP, considérez qu'il s'agit de la vidéo de niveau 102. Avec plus de narration et quelques exemples visuels différents - dont un jeu de cartes où l'on prouve qu'une carte est d'une certaine couleur sans révéler autre chose, cette vidéo réitère également les propriétés fondamentales requises pour une preuve de connaissance zéro (Zero Knowledge Proof).

Zero Knowledge Proofs: An illustrated primer - 1 & 2

Bon, maintenant on passe aux choses sérieuses ! Cette série en deux parties vient de Matthew Green, qui est impliqué dans Zcash depuis le début du projet et qui passe la plupart de son temps comme cryptographe et professeur à l'université Johns Hopkins. La première partie parle de plusieurs points. Tout d'abord, elle approfondit les origines et le contexte des ZKP - y compris une discussion sur les raisons pour lesquelles nous nous sommes intéressés à eux en premier lieu. Ensuite, elle utilise un ensemble d'exemples du monde réel, y compris une version sur le thème des télécommunications du problème des trois couleurs du graphique, pour expliquer ce qui fait que ces types d'interaction sont "à connaissance zéro". Troisièmement, il introduit d'autres concepts importants comme les régimes d'engagement (commitment schemes). Alors que la partie 1 est nettement non technique, la partie 2 s'aventure sur un terrain technique qui reste relativement facile à suivre.

WTF is Zero-Knowledge Proof & Introduction to Zero Knowledge Proof: The protocol of next generation Blockchain

Maintenant que vous avez eu l'occasion de vous instruire sur l'idée de base des ZKP et que vous avez vu un certain nombre de métaphores visuelles différentes, introduisons quelques concepts supplémentaires. Ces deux articles sont très similaires et fonctionnent en binôme. Bien qu'ils soient encore très 101, ils élargiront votre perspective pour inclure : 1) la différence entre les preuves interactives et non interactives des ZKP et 2) zk-SNARKS. Le deuxième article en particulier fait un bon travail de décomposition de chaque partie de l'acronyme comme moyen de commencer à comprendre les concepts impliqués.

Zero Knowledge Proofs Part One: The Cryptographic Protocols and Their Variations

Cet article reprend plus ou moins des concepts abordés dans les articles précédents. Ainsi que l’ajout d’une définition supplémentaire simplifiée des zk-SNARK et une comparaison avec les zk-STARK.

Video: What are ZK-Snarks?

Maintenant que nous sommes passés des preuves de connaissance zéro (ZKP) aux SNARKs, voici une vidéo pour les gens qui sont plus dans le visuel. Cette présentation de 4 minutes va vous donner les bases afin que nous puissions nous replonger dans un contenu plus substantiel.

zk-SNARKS and zk-STARKS Explained

Cet article provient de la Binance Academy et va encore plus loin en expliquant la différence entre zk- SNARKS et zk-STARKS. C'est l'une des explications courtes et non techniques les plus succinctes et les plus claires qui existent.

What is zkSNARKs? The Comprehensive Spooky Moon Math Guide

Bien qu'il soit essentiellement non technique, ce document utilise un peu de mathématiques pour approfondir l'explication des zkSNARKs. Cela dit, il ne le fait qu'après de nombreux visuels utiles et des explications initiales simplifiées, et il le fait d’une manière que nous vous promettons que vous comprendrez après tout ce que vous aurez lu.

Why zk-SNARKs Are Crucial For Blockchain Data Privacy

Jusqu'à présent, nous avons vu beaucoup d'explications visuelles de ce que sont les preuves de connaissance zéro (ZKP), ainsi que des définitions simplifiées pour nous faire comprendre le concept de zk-SNARKs. Ce que nous n'avons pas encore vu, c'est une explication simple et claire des raisons pour lesquelles tout cela est important. C'est exactement ce que fait Samantha Radocchia dans son article pour Forbes. Elle trace les limites entre la quantité copieuse de données que les différents services collectent sur nous, l'abus et l'insécurité généralisés de ces données, et le besoin de technologies de protection de la vie privée comme les SNARKs.

Video: Rhapsody in Zero Knowledge: Proving Without Revealing

Ce merveilleux exposé reprend un grand nombre des concepts présentés dans les articles ci-dessus et les met dans un ordre clair et succinct. Si vous avez besoin d'une seule vidéo pour résumer absolument tout ce qui se trouve dans cette section 101 et vous préparer à la prochaine section, plus technique, celle-ci est faite pour vous.


Dans la technique


Si vous avez lu jusqu'ici, vous êtes prêt à vous lancer dans la technique. Vous trouverez ci-dessous le comment et le pourquoi, en expliquant plus en détail l'application des zk-SNARKs et pourquoi ils sont si prometteurs pour la réalisation de la mission principale des Cryptomonnaies.

Introduction to zk-SNARKs with Examples

Publié sur le blog de ConsenSys, cet article présente tous les concepts clés que vous avez appris ci- dessus - tels que les vérificateurs, les prouveurs et les témoins - dans un cadre mathématique qui peut fournir la base d'une compréhension plus technique. Même pour un public non technique, c'est une lecture intéressante que vous pourrez probablement suivre.

Video: Introduction to SNARKs

Filmé lors de la DevCon 3, cet exposé de 20 minutes est une introduction aux SNARKs du Dr Christian Reitweissner. L'un des aspects les plus intéressants de cette conférence est la mise en place. Avant même de se plonger dans le sujet, il explique pourquoi les SNARK sont si importants pour les chaînes de blocs, en abordant à la fois la mise à l’échelle (scaling) et la confidentialité.

Video: Eli Ben-Sasson, ZCash founding scientist, co-inventor of zk-SNARKs, co-founder of Starkware

Parfois, il faut aller directement à la source. Eli Ben-Sasson est co-fondateur de Zcash, co-inventeur des SNARKs et a (comme on peut s'y attendre) de nombreuses connaissances à partager. Il ne s'agit pas d'une simple interview vidéo, mais d'un séminaire d'introduction sur le sujet. Cette vidéo sera encore meilleure une fois que vous aurez acquis les notions de base avec les ressources ci-dessus, mais dans tous les cas, c'est un incontournable.

Zero-knowledge proofs, a board game, and leaky abstractions: how I learned zk-SNARKs from scratch

Au sujet de l'article de blog ci-dessus, cet article provient d'un développeur qui apprend à travailler avec les zk-SNARKs. Il s'agit d'une excellente combinaison d'un journal d'apprentissage personnel et de quelques idées qui pourraient également vous aider.

Learning about zk SNARKs

Zaki Manian, de l'équipe Tendermint, a rédigé ce guide de ressources pour faciliter l’introduction et l'apprentissage des ZKP et des SNARKs. Il organise le contenu qu'il propose en quelques catégories différentes : enquêtes, programmes d'arithmétique quadratique, cryptographie par paires, articles de base sur les SNARKs, et recherches récentes. Si notre curation de contenu est votre guide 101, cela vous donne un bon point de départ pour aller plus loin.

Vitalik Buterin’s SNARK series

En ce qui concerne le contenu de SNARK, c'est du très bon. De fin 2016 à début 2017, le créateur d'Ethereum, Vitalik Buterin, a écrit une série en trois parties. La première partie était intitulée "Quadratic Arithmetic Programs : from Zero to Hero", et s'intéressait (selon les termes de Vitalik) à "la machinerie derrière la technologie". La deuxième partie était "Exploring Elliptic Curve Pairings" et la troisième partie était "zk-SNARKS : Under the Hood". Il s'agit d'une exploration beaucoup plus technique qui s'appuie sur le cadre des deux autres. Ce n'est pas pour les novices, mais le contenu est néanmoins intéressant.