Le zk-SNARK représente l'argument de connaissance succinct non-interactif à divulgation nulle de connaissance, et le zk-STARK représente l'argument de connaissance succinct transparent à divulgation nulle de connaissance. Les preuves Zk-SNARK sont déjà utilisées pour Zcash, le système de paiement blockchain de JP Morgan Chase, afin d’authentifier de manière sécurisée les clients sur les serveurs. Bien que les zk-SNARK aient considérablement progressé et soient maintenant bien établis et adoptés, les preuves du zk-STARK sont désormais présentées comme une nouvelle version améliorée du protocole, qui résout de nombreux inconvénients de la version précédente des zk-SNARKs.
La parabole de la caverne d'Ali Baba
En 1990, le cryptographe Jean-Jacques Quisquater (avec d'autres collaborateurs) a publié un article intitulé "Comment expliquer les protocoles à divulgation nulle de connaissance à vos enfants". Le papier introduisit le concept des preuves ZK et une parabole impliquant la caverne d'Ali Baba. Depuis sa création, la parabole a été adaptée plusieurs fois et nous en avons maintenant de nombreuses variantes. Néanmoins, les informations fondamentales sont essentiellement les mêmes.
Imaginons une grotte en forme d’anneau avec une seule entrée et une porte magique qui sépare deux chemins latéraux. Pour franchir la porte magique, il faut murmurer les mots secrets appropriés. Imaginez qu'Alice (en jaune) veut prouver à Bob (en bleu) qu'elle connaît les mots secrets - tout en les gardant secrets. A cette fin, Bob accepte d'attendre dehors, pendant qu'elle entre dans la grotte et marche jusqu'au bout de l'un des deux chemins possibles. Dans cet exemple, elle décide de passer par le chemin 1.
Après un moment, Bob passe devant l'entrée et crie de quel côté il veut qu'Alice apparaisse (chemin 2 dans ce cas).
Si Alice connaît vraiment le secret, elle se montrera sûrement depuis le chemin qu’a choisi Bob.
Tout ce processus peut être répété plusieurs fois afin de confirmer qu'Alice ne choisit pas le bon chemin par hasard.
La parabole de la Cave d’Ali Baba illustre ainsi le concept des preuves à zéro connaissance, qui font partie des protocoles zk-SNARK et zk-STARK. De cette façon, les preuves ZK peuvent être utilisées pour prouver la possession de certaines connaissances sans en révéler aucun détail.
Les zk-SNARKs
Les preuves à divulgation nulle de connaissance (zero knowledge proof) permettent à un individu de prouver à un autre qu’une déclaration est vraie, sans divulguer d’autres informations que la validité de la déclaration. Les parties impliquées sont communément appelées « prouveurs » et « vérificateurs », et l’attestation qu'elles détiennent en secret s'appelle un « témoin ». L'objectif principal de ces preuves est de révéler le moins de données possible entre les deux parties. En d'autres termes, on peut utiliser des preuves à divulgation nulle de connaissance pour prouver qu'on possède certaines connaissances sans révéler aucune information sur la nature des connaissances en elles-mêmes.
Dans l'acronyme SNARK, «succinct» signifie que ces preuves sont de taille réduite et peuvent être rapidement vérifiées. "Non-interactif" signifie qu'il n'y a peu ou pas d'interaction entre le « prouveur » et le « vérificateur ». Les versions plus anciennes des protocoles avec divulgation nulle de connaissance exigent généralement que le prouveur et le vérificateur communiquent entre eux, et sont donc considérés comme des preuves zk «interactives». Mais dans les constructions «non interactives», les prouveurs et les vérificateurs ont seulement à échanger une preuve.
Actuellement, les preuves zk-SNARK dépendent d'une configuration sécurisée initiale entre un prouveur et un vérificateur, ce qui signifie qu'un ensemble de paramètres publics est nécessaire pour construire des preuves à divulgation nulle de connaissance et, par conséquent, des transactions privées. Ces paramètres ressemblent à une règle de jeu, ils sont encodés dans le protocole et constituent l’un des facteurs nécessaires pour prouver la validité d’une transaction. Cependant, cela crée un problème de centralisation potentiel car les paramètres sont souvent élaborés par un très petit groupe.
La dernière pièce du casse-tête de l'acronyme est "of Knowledge" soit « de l’information », ce qui signifie qu'il n'est pas possible pour le prouveur de construire une preuve sans avoir réellement l’information (ou le témoin) pour appuyer sa déclaration.
Les zk-Starks
Les zk-STARKs ont été créés comme une version alternative des preuves zk-SNARKs et sont considérés comme une mise en œuvre plus rapide et moins onéreuse de la technologie. Mais plus important encore, les zk-STARKs ne requièrent pas de configuration initiale de confiance (d'où le «T» pour transparent).
L'une des principales raisons pour laquelle les Zk-STARKs offrent une implémentation moins chère et plus rapide est que le nombre de tours de communication entre les prouveurs et les vérificateurs reste constant relativement à toute augmentation du calcul. En revanche, avec les zk-SNARKs, plus le calcul requis est important, plus les parties doivent envoyer de messages dans les deux sens. Par conséquent, la taille globale des données de zk-SNARKs est beaucoup plus grande que celle des données contenues dans les preuves zk-STARKs.