Les zk-SNARKs et les zk-STARKs expliqués
Accueil
Articles
Les zk-SNARKs et les zk-STARKs expliqués

Les zk-SNARKs et les zk-STARKs expliqués

Avancé
Publié le Feb 26, 2019Mis à jour le Feb 22, 2024
6m
La confidentialité a toujours été considérée comme une caractéristique importante au sein de la communauté des crypto-monnaies. C'est un précurseur à la fongibilité, nécessaire pour qu’une forme de monnaie soit largement utilisée. De plus, la plupart des détenteurs d’actifs cryptographiques ne souhaitent pas que leurs avoirs et l’historique de leurs transactions soient entièrement publics. Parmi les différentes techniques cryptographiques visant à assurer la confidentialité des chaînes de blocs, les preuves zk-SNARK et zk-STARK en sont deux exemples notables.

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

Zcash est la première utilisation unviversellement accessible du zk-SNARK. Alors que d'autres projets de protection de la vie privée tels que Monero utilisent des signatures en anneau et d'autres techniques (afin de créer efficacement un écran de fumée autour de qui envoie quoi), les zk-SNARKS modifient fondamentalement la façon dont les données sont partagées. La confidentialité de Zcash découle du fait que les transactions sur le réseau peuvent rester cryptées  mais dont la validité reste vérifiée grâce aux zero-knowledge proofs (preuves sans communication d’information). De cette façon, ceux qui appliquent des règles de consensus n’ont pas besoin de connaître toutes les données inhérentes à chaque transaction. Notons cependant que les fonctionnalités de confidentialité de Zcash ne sont pas actives par défaut, mais sont en réalité optionnelles et dépendent d’une configuration manuelle.

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.

Alors que la configuration publique initiale est fondamentale pour les implémentations zk-SNARK actuelles, les chercheurs s’efforcent de trouver d’autres solutions pour réduire le degré de confiance requis dans le processus. La phase de configuration initiale est importante pour éviter les dépenses falsifiées, car si une personne avait accès au caractère aléatoire qui a généré les paramètres, elle pourrait créer de fausses preuves qui auraient l’air valables pour le vérificateur. Dans Zcash, la phase de configuration initiale est ainsi appelée la cérémonie de génération de paramètres (Parameter Generation Ceremony en anglais).
Passons maintenant à la partie "ARguments" de l'acronyme. Les zk-SNARK sont considérés comme rationnels sur le plan informatique, ce qui signifie qu'un prouveur malhonnête a très peu de chances de tricher avec succès. Cette propriété est appelée solidité ou soundness  et suppose que le prouveur dispose d'une puissance de calcul limitée. Théoriquement, un prouveur disposant de suffisamment de puissance de calcul pourrait créer de fausses preuves. C’est l’une des raisons pour lesquelles les ordinateurs quantiques sont considérés par beaucoup de personnes comme une menace pour les systèmes zk-SNARK et blockchain.

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 preuves à divulgation nulle de connaissance sont rapidement vérifiables et nécessitent généralement beaucoup moins de données qu'une transaction Bitcoin standard. Ce qui ouvre la voie à l'utilisation de la technologie zk-SNARK comme solution de confidentialité et d'évolutivité.


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).

Techniquement parlant, les Zk-STARKs ne nécessitent donc pas de configuration initiale sécurisée, car ils reposent sur une cryptographie plus symétrique via des fonctions de hachage résistantes aux collisions. Cette approche élimine également les hypothèses sur le nombre-théorique de zk-SNARKs qui coûtent cher en calcul et sont théoriquement sensibles aux attaques des ordinateurs quantiques.

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.

Il semble évident que les zk-SNARKS et les zk-STARK répondent à une préoccupation croissante des utilisateurs en matière de confidentialité. Dans le monde de la crypto-monnaie, ces protocoles ont un grand potentiel et pourraient constituer un moyen novateur d’adoption par le grand public.
Partager des publications
S’inscrire pour un compte.
Mettez vos connaissances en pratique en ouvrant un compte Binance dès aujourd’hui.