18 avril 2021 17:21

Zk-SNARK

Qu’est-ce que zk-SNARK?

Zk-SNARK est un acronyme qui signifie «Argument de connaissance succinct et non interactif à connaissance zéro». Un zk-SNARK est une preuve cryptographique qui permet à une partie de prouver qu’elle possède certaines informations sans révéler ces informations. Cette preuve est rendue possible grâce à une clé secrète créée avant la transaction. Il est utilisé dans le cadre du protocole de la crypto-monnaie, Zcash.

Points clés à retenir

  • Zk-SNARK est un protocole de preuve zéro-connaissance utilisé dans le chiffrement, et est un acronyme qui signifie «Argument de connaissance succinct zéro-connaissance non interactif».
  • Cette preuve a été développée et introduite pour la première fois à la fin des années 1980 et est maintenant utilisée par la crypto-monnaie Zcash pour résoudre un problème d’anonymat perçu avec les blockchains de type Bitcoin.
  • Les preuves Zk-SNARK reposent sur une configuration initiale de «système de confiance» qui a été critiquée comme une faille de sécurité inhérente.

Comprendre zk-SNARK

Pour de nombreux membres originaux de la communauté des crypto-monnaies – principalement la communauté Bitcoin – la confidentialité était un objectif et une caractéristique supposés des cryptomonnaies. Cependant, la confidentialité a toujours été une préoccupation de second ordre, étant donné le besoin de la crypto-monnaie de créer un système « sans confiance » pour garantir l’intégrité de la monnaie électronique et des transactions numériques.

Au début des années 2010, les utilisateurs de relativement facile, de réidentifier les personnes qui avaient donné des données pseudonymes à plusieurs sources.

En raison du manque de confidentialité perçu de certaines des crypto-monnaies originales comme Bitcoin, les développeurs ont commencé à travailler sur des pièces axées sur la confidentialité. Le plus important d’entre eux était Zcash, soutenu par une technologie connue sous le nom de zk-SNARKs.

Preuve de zéro-connaissance

Un zk-SNARK («argument de connaissance succinct et non interactif de connaissance zéro») utilise un concept connu sous le nom de «preuve de connaissance zéro». L’idée derrière ces preuves a été développée pour la première fois dans les années 1980. En termes simples, une preuve à connaissance nulle est une situation dans laquelle chacune des deux parties dans une transaction est capable de vérifier l’une à l’autre qu’elle dispose d’un ensemble particulier d’informations, tout en ne révélant pas ce que sont ces informations.

Pour la plupart des autres types de preuves, au moins une des deux parties doit avoir accès à toutes les informations. Une preuve traditionnelle peut être comparée à un mot de passe utilisé pour accéder à un réseau en ligne. L’utilisateur soumet le mot de passe et le réseau lui-même vérifie le contenu du mot de passe pour vérifier qu’il est correct. Pour ce faire, le réseau doit également avoir accès au contenu du mot de passe.

Une version sans connaissance de cette situation impliquerait que l’utilisateur démontre au réseau (via une preuve mathématique) qu’il a le mot de passe correct sans réellement révéler le mot de passe lui-même. Les avantages en matière de confidentialité et de sécurité dans cette situation sont évidents: si le réseau n’a pas le mot de passe stocké quelque part à des fins de vérification, le mot de passe ne peut être volé.

La base mathématique de zk-SNARKS est complexe. Néanmoins, des preuves de ce type permettent à une partie de démontrer non seulement qu’une information particulière existe, mais aussi que la partie en question a connaissance de cette information. Dans le cas de Zcash, les zk-SNARK peuvent être vérifiés presque instantanément et le protocole ne nécessite aucune interaction entre le prouveur et le vérificateur.

Critique des zk-SNARKs

Il y a, bien sûr, des préoccupations liées aux zk-SNARK. Par exemple, si quelqu’un pouvait accéder à la clé privée qui a été utilisée pour créer les paramètres du protocole de preuve, il pourrait créer de fausses preuves qui semblaient néanmoins valides pour les vérificateurs. Cela permettrait à cette personne de créer de nouveaux jetons de Zcash via un processus de contrefaçon. Afin d’éviter que cela ne se produise, Zcash a été conçu de manière à ce que les protocoles de vérification soient élaborés et répartis entre plusieurs parties.

Alors que la construction du processus de preuve Zcash a été achevée de manière à minimiser la possibilité de contrefaçon de jetons via de fausses preuves, il existe au moins une autre préoccupation liée à la crypto-monnaie. Zcash a été créé avec une «taxe» de 20% prélevée sur tous les blocs créés au cours des premières années du jeton. Cette taxe est connue sous le nom de «taxe du fondateur» et est utilisée pour compenser les développeurs de la crypto-monnaie.

Les critiques ont suggéré que les fondateurs pourraient potentiellement utiliser cette facette du système pour créer un nombre infini de jetons Zcash sans que personne d’autre ne soit au courant de l’existence de ces jetons. Pour cette raison, il n’est pas tout à fait possible de connaître le nombre exact de jetons Zcash existants à ce stade.

Depuis 2019, certains développeurs travaillent à améliorer les zk-SNARK en supprimant la configuration de confiance. Une équipe appelée Suterusu a développé un système appelé zK-ConSNARK qui prétend être opérationnel sans configuration de confiance, peut fournir une protection de la vie privée aux blockchains grand public comme Bitcoin, et a l’inflation la plus basse pour toutes les crypto-monnaies existantes.