Dans la vraie vie comme dans le monde numérique, nous voulons souvent prouver des choses aux autres. Avant d'entrer dans un immeuble de bureaux, les employés fournissent généralement une pièce d'identité avant d'entrer.
Lorsque les utilisateurs essaient de se connecter à une application telle que Facebook ou Twitter, ces services doivent d'abord demander à l'utilisateur de se connecter avec un mot de passe et parfois un code d'accès à usage unique (OTP) est envoyé à son appareil mobile.
L'inconvénient de fournir des preuves est que nous donnons souvent d'autres types d'informations. Fournir un mot de passe à un site Web signifie toujours que le site Web lui-même conserve une copie du mot de passe haché sur ses serveurs. Si quelqu'un venait à pirater le scanner d'identification des employés de l'immeuble de bureaux, il pourrait être en mesure d'obtenir les clés privées de tout le monde.
Les preuves à connaissance nulle ou ZKP permettent de valider une identité ou une transaction sans avoir à fournir d'informations supplémentaires. En raison de ses applications en cryptographie, les ZKP ont été adaptés par blockchains pour créer des protocoles de validation sécurisés et évolutifs.
Qu'est-ce qu'une preuve de connaissance zéro ?
Les preuves à connaissance nulle ont été proposées pour la première fois par les chercheurs du MIT Silvio Micali, Charles Rackoff et Shafi Goldwasser en 1985 dans leur article "La complexité des connaissances des systèmes de preuve interactifs"
Cet article a introduit le concept de complexité des connaissances. Cela fait référence à la quantité de connaissances sur une preuve transférée du démonstrateur au vérificateur. Les preuves à connaissance nulle visent à permettre à une partie de prouver qu'une déclaration spécifique est vraie à une autre partie sans avoir à divulguer d'autres informations.
Les ZKP peuvent être utilisés comme une alternative sécurisée aux systèmes d'authentification actuels et peuvent également être ajoutés aux protocoles de blockchain pour garder les transactions privées.
Comment fonctionnent les ZKP ?
Exemple du monde réel
Pour illustrer le fonctionnement des preuves à connaissance nulle, examinons un exemple abstrait de ZKP.
Disons que vous avez un ami qui est daltonien rouge-vert. Vous avez avec vous deux boules identiques qui ne diffèrent que par la couleur : une rouge et une verte. Pour votre ami, ils semblent identiques, mais en tant que personne sans daltonisme, vous pouvez facilement les distinguer.
Est-il possible pour vous de prouver à votre ami qu'il est d'une couleur différente sans révéler quelle boule est rouge ou verte ?
Il existe en fait un moyen de le prouver sans révéler les couleurs des balles. Tout d'abord, vous devez laisser votre ami mettre les deux balles derrière son dos et lui dire de montrer n'importe quelle balle et de la cacher à nouveau. Ensuite, vous dites à votre ami qu'il a le choix de montrer à nouveau la même balle ou de l'échanger avec l'autre.
Chaque fois qu'une nouvelle balle est montrée, vous pouvez lui dire s'il a changé de balle ou non. Si vous continuez à deviner le bon appel, il devient de plus en plus probable que les boules soient de couleurs différentes. Votre ami devrait maintenant être convaincu que les boules sont de couleurs différentes sans avoir à lui dire quelles boules ont quelle couleur.
Applications pratiques
La plupart des exemples pratiques de preuves à connaissance nulle se divisent en deux types.
Premièrement, les ZKP peuvent être utilisés lors de la conception de protocoles. Nous pouvons nous assurer que les différentes parties ne peuvent pas tricher ou profiter du protocole. Deuxièmement, les ZKP peuvent être utilisés pour l'identification.
Par exemple, nous pouvons utiliser les ZKP pour nous connecter à une application Web en toute sécurité sans avoir à révéler le mot de passe lui-même.
Examinons quelques exemples de la façon dont nous pouvons utiliser des preuves à connaissance nulle.
Vote électronique
Une application couramment discutée des ZKP est leur rôle possible dans le vote en ligne. Disons que nous avons un référendum à venir où les utilisateurs peuvent voter sur une politique proposée. Chaque électeur éligible est autorisé à voter 1 ou 0 sur le bulletin de vote.
En utilisant les ZKP, les électeurs peuvent prouver leur droit de voter sans révéler leur identité. Cela garantit que chaque vote sera véritablement anonyme. Un ZKP supplémentaire sera également utilisé pour prouver que le vote d'un utilisateur particulier fait partie du décompte final des votes.
En ce qui concerne le contenu lui-même des bulletins de vote, le système de vote peut également générer une preuve de connaissance zéro que chaque bulletin contient soit un 1 soit un 0. Ceci est accompli sans avoir à connaître le contenu du bulletin lui-même.
Confidentialité de la blockchain
Les chaînes de blocs telles que Bitcoin et Ethereum ne prennent pas en charge nativement les transactions privées. Tant que votre portefeuille Bitcoin est public, n'importe qui peut accéder à un explorateur de blocs tel que Blockstream pour voir toutes les transactions dont le portefeuille fait partie.
Pendant ce temps, l'utilisation d'un service tel qu'une banque ou des services de paiement tels que Cash App ou Venmo vous donne la possibilité d'effectuer des transactions en privé. Cette commodité, cependant, se fait au détriment de la divulgation de vos informations au service centralisé.
Nous pouvons combiner l'anonymat avec la décentralisation en ajoutant des ZKP au protocole blockchain. Les crypto-monnaies telles que ZCash utilisent les ZKP pour créer des transactions privées qui permettent aux détenteurs de pièces de conserver leur anonymat. Plusieurs de ces crypto-monnaies utilisent un type de ZKP connu sous le nom de zk-SNARK.
Ces ZKP ne nécessitent aucune interaction entre le prouveur et le vérificateur.
Cumuls sans connaissance
Les rollups ZK sont une solution d'évolutivité qui permet de vérifier instantanément les transactions hors chaîne et avec des frais de gaz minimes. Ils permettent de combiner un grand nombre de transactions de couche 2 et de les soumettre au protocole de couche 1.
En plus d'assurer la confidentialité, les ZKP permettent la mise à l'échelle de systèmes complexes. Les protocoles Blockchain peuvent utiliser les ZKP pour prouver que les utilisateurs ont réglé les bonnes transactions, ont le solde approprié, etc. Ces solutions sécurisées mais évolutives ne sont possibles que grâce aux preuves mathématiques effectuées hors chaîne dans les ZKP.
Des protocoles tels que Loopring utilisent des preuves à connaissance nulle pour aider à traiter les transactions hors chaîne sans avoir à compromettre la sécurité.
Avantages des preuves sans connaissance
- Les ZKP remplacent les formes d'authentification moins fiables telles que les codes PIN ou les cartes d'identité
- ZKPS augmente l'évolutivité des blockchains
- La mise en œuvre de ZKP nécessite des méthodes de cryptage simples
- L'utilisation de ZKPS peut rendre les systèmes plus sûrs en ne nécessitant pas le stockage d'informations inutiles dans le système.
Conclusion
La confidentialité des données est déjà un problème majeur dans les systèmes centralisés et décentralisés. Les preuves à connaissance nulle permettent à différentes parties de prouver ou de valider des transactions et des identités sans avoir à révéler lesdites transactions ou identités.
À mesure que la technologie blockchain est de plus en plus utilisée, l'adoption de ZKP pour gérer la vérification en toute sécurité sera la clé des problèmes d'évolutivité.
Soyez sympa! Laissez un commentaire