# 🌍 — IRL

Comprendre le Zero-knowledge Proof avec « Où est Charlie ? »

Par Audran Lemaitre , le 29 mars 2023 — blockchain, Confidentialité, zero knowledge proof - 8 minutes de lecture

La protection des données personnelles devient un enjeux majeur à l’ère digitale actuelle.

Le scandale de Cambridge Analytica est un bon exemple : en 2018, Facebook avait été accusé d’avoir laissé Cambridge Analytica collecter et exploiter, sans leur consentement, les données personnelles de 87 millions d’utilisateurs pour influencer les élections présidentielles américaines.

Depuis longtemps, des voix s’élèvent afin de réclamer plus de contrôle sur le partage de nos informations sensibles. L’apparition de cryptomonnaies anonymes (Zcash ou Monero) qui se veulent décentralisées et confidentielles sont des réponses à cette préoccupation.

Or, cet anonymat rend très difficile la lutte contre le blanchiment d’argent et le financement du terrorisme. Qu’on le veuille ou non, l’identification est parfois le prix de la sécurité.

Néanmoins, n’y aurait-il pas un moyen de garder le contrôle de nos données personnelles, tout en garantissant la sécurité des utilisateurs et le respect des lois ?

Dans cet article, nous allons nous intéresser à une technologie qui a le potentiel de répondre à ce problème : le zero-knowledge proof. Découvrons cette technologie qui permet de prouver la validité d’une affirmation sans révéler d’informations personnelles.

Qu’est-ce que le Zero-knowledge Proof ?

Traduit dans la langue de Molière par « Preuve à divulgation nulle de connaissance » (mais, entre nous, ça claque tout de suite moins bien), le zero-knowledge proof n’est pas un concept nouveau. Il a été évoqué pour la première fois en 1985 dans un papier « The Knowledge Complexity of interactive proof systems »

Le zero-knowledge proof est un protocole cryptographique qui permet à une personne de prouver qu’elle connaît certaines informations sans avoir à les divulguer. En d’autres termes, une personne peut prouver qu’elle possède une information spécifique, sans avoir à révéler l’information en elle-même.

« Pourquoi auriez-vous besoin de prouver que vous connaissez le secret sans le dire ? »

Lorsque vous ne faites pas confiance à l’autre personne, mais que vous devez quand même la persuader que vous le savez.

A titre d’illustration, une expérience menée en 2022 par la CNIL, s’est intéressée aux contrôle de l’âge des mineurs pour l’accès aux sites pour adultes (ne faites pas les innocents on vous voit 👀). Grâce à la technologie ZKP, il sera possible de contrôler l’âge d’une personne à l’entrée du site sans divulguer d’informations personnelles.

La technologie blockchain apporterait un réel avantage d’un point de vue parcours utilisateur et sécurité de l’information, tout en garantissant la conformité avec le RGPD.

L’exemple « Où est Charlie ? »

Une question ne vous trotte pas dans la tête depuis tout à l’heure ? Comment prouver quelque chose si vous ne voulez pas la dévoiler ?

Voici une analogie très simple pour comprendre le fonctionnement du ZKP.

Vous et un ami voulez trouver Charlie. Vous savez où se trouve Charlie dans l’image, mais votre ami ne vous croit pas. Comment prouver à votre ami que vous savez où se trouve Charlie sans révéler son emplacement ?

Vous prenez un grand carton et vous recouvrez l’image. Puis vous faites une petite découpe là où se situe Charlie. Évidemment, vous disposez le carton de sorte qu’il soit impossible de situer Charlie.

Voilà ! Vous pouvez ainsi prouver que vous connaissez l’emplacement de Charlie, mais votre ami ne saura pas où il se trouve. Puisque les coordonnées exactes de Charlie par rapport à l’image lui seront toujours inconnues.

Il s’agit d’une analogie simple d’une « preuve non interactive à connaissance nulle ». Quiconque voit Charlie à travers l’encoche a la preuve que Charlie existe et que le prouveur sait où il se trouve, sans donner d’autres informations.

Bien sûr, dans la réalité cette technologie est bien plus complexe… mais afin de vous évitez des maux de tête nous passerons de définir l’heuristique de Fiat-Shamir, les zk-SNARK, ou encore la différence entre une preuve interactive et non-interactive.

Concentrons-nous plutôt sur les possibles cas d’utilisation de cette technologie.

Cas d’usage

Amélioration de la scalabilité d’une blockchain

Théorisé il y a plus de 30 ans, c’est seulement aujourd’hui que cet outil est au centre de l’attention avec l’essor des technologies blockchain.

En effet, l’association des algorithmes ZKP aux blockchain est très puissante. Des projets comme Starkware ou zkSync travaillent sur des solutions qui réduisent les coûts et le temps de transaction d’une blockchain.

Le principe est simple : plutôt que d’enregistrer toutes les informations sur une blockchain, on regroupe les transactions en paquets et on envoie seulement une preuve Zero-knowledge à la blockchain. On appelle cela des zk-rollup.

Identité numérique

Pour utiliser des services en ligne, il faut prouver son identité et son droit d’accès à ces plateformes. Pour ce faire, il faut souvent fournir des informations personnelles, telles que le nom, l’adresse électronique, la date de naissance, etc. Il peut également être nécessaire de mémoriser de longs mots de passe, sous peine de perdre l’accès à ces services. Les preuves de connaissance zéro peuvent toutefois simplifier l’authentification, tant pour les plateformes que pour les utilisateurs.

On parle de plus en plus d’identité décentralisée (également décrite comme une « identité souveraine ») donnant à l’individu la possibilité de contrôler l’accès aux identifiants personnels. Par exemple, prouver sa citoyenneté sans révéler son numéro d’identification fiscale ou les détails de son passeport.

Si ce sujet vous intéresse nous avons consacré un article entier à ce sujet : L’identité numérique et les noms de domaine Web3

Banque et finance

Le ZKP peut être utilisé pour vérifier des transactions financières sans révéler d’informations sensibles sur la transaction.

Imaginez une application alimentée par un ZKP qui vérifie si un bénéficiaire dispose de fonds suffisants sur son compte sans connaître son solde bancaire avant d’autoriser les transactions. Ou encore des transactions en crypto-monnaies validées sur une blockchain sans révéler quels portefeuilles ont émis des paiements ou quelle quantité de monnaie a été échangée.

Secteur médical

Cette technologie peut être utilisée pour protéger la confidentialité des dossiers médicaux et d’autres informations sensibles relatives à la santé.

Vote en ligne

Le vote électronique a un grand intérêt aujourd’hui, permettant de réduire l’abstention, et notamment celle des jeunes. La blockchain est un parfait candidat pour faire fonctionner ce genre de système garantissant la transparence et la véracité des informations. Les technologies ZKP assureraient le décompte des votes avec précision sans révéler le choix des votants.

Bénéfices

L’utilisation de la preuve par l’absence de connaissance présente plusieurs avantages:

  • Confidentialité : Comme mentionné précédemment, l’avantage le plus important d’un ZKP est qu’elle permet à une personne de prouver quelque chose à une autre personne sans révéler aucune information à ce sujet. Il s’agit d’une caractéristique précieuse dans le monde d’aujourd’hui, où les préoccupations en matière de protection de la vie privée sont de plus en plus nombreuses.
  • Sécurité : La preuve par l’absence de connaissance constitue un moyen sûr de prouver une information. Comme l’information à prouver n’est pas révélée, il n’y a aucun risque qu’elle soit volée ou utilisée à mauvais escient. De plus, ce type d’algorithme répète un grand nombre de fois les preuves afin de réduire la probabilité d’erreur.
  • Vérifiabilité : Finalement, ces algorithmes permettent de vérifier des informations sans avoir à faire confiance à l’auteur de la preuve. Cela en fait un outil précieux pour la vérification d’informations sensibles, telles que les transactions financières.

Conclusion

Le zero-knowledge proof est un concept précieux en cryptographie qui permet à une personne de prouver quelque chose à une autre sans révéler aucune information à ce sujet. Il s’agit d’un moyen sûr et privé de vérifier des informations, créant de belles synergies dans plusieurs applications du monde réel, notamment dans la finance, la santé, l’identité numérique…

Cependant, le chemin est encore long et sinueux avant de voir son adoption à grande échelle. Notamment à cause du manque de développeurs formés à ce sujet, l’importante puissance de calcul nécessaire à son fonctionnement, et la menace des ordinateurs quantiques…

SOURCE :

Article Journal du coin : https://journalducoin.com/analyses/preuves-a-divulgation-nulle-de-connaissance-zero-knowledge-proofs-zk-snarks-zk-starks/

Rapport Mina Protocol : https://minaprotocol.com/wp-content/uploads/zkReport_2022_EN.pdf

Premier papier de 1985 : http://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf

Article Ethereum Fondation : https://ethereum.org/en/zero-knowledge-proofs/

Pour aller plus loin : https://blog.octo.com/etude-de-cas-dutilisation-de-zero-knowledge-proof-zkp/

Audran Lemaitre

Actuellement en poursuite d’un Master en finance de marché, j’ai découvert le monde des cryptos en 2020 et depuis je n’en suis pas ressorti… Co-fondateur de Blockus, je vulgarise et partage ma passion pour cet univers en pleine expansion au sein duquel se développent les innovations de demain.

Voir les publications de l'auteur

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.