Accueil
>
Ressources
>
Blog
>
Qu'est-ce que la preuve de connaissance nulle Zero Knowledge Proof ?
Aujourd’hui, nous allons explorer le concept de Zero-Knowledge Proof, également connu sous le nom de preuve à divulgation nulle de connaissance. Son objectif est de préserver la confidentialité des données personnelles des utilisateurs.
Les données personnelles sont souvent exploitées à l’encontre des utilisateurs, devenant ainsi la propriété des grandes entreprises telles que Facebook, Microsoft et Google qui détiennent désormais le monopole sur ces informations sensibles. Ces entreprises n’hésitent pas à vendre ces données à d’autres sociétés, les utilisant ainsi pour des pratiques telles que le ciblage publicitaire. Pour éviter la fuite de nos données, la formation à la cybersécurité est primordiale.
Origine et histoire des Zero Knowledge Proofs
Les zero-knowledge proofs (ZKP) sont des protocoles qui permettent à un acteur de démontrer la véracité d’une situation sans avoir à divulguer les informations associées. Pour illustrer cela, imaginez qu’un utilisateur puisse prouver qu’il possède des bitcoins sans révéler sa signature ou son adresse publique. Cette méthode peut également être appliquée en dehors du domaine des crypto-monnaies, par exemple pour prouver une identité sans la révéler.
Les pionniers des ZKP
Bien que le terme « zero-knowledge proof » soit relativement récent, il ne trouve pas son origine dans l’écosystème actuel des crypto-monnaies. En 1989, trois experts – Shafi Goldwasser, Silvio Micali et Charles Rackoff – ont employé ce terme pour la première fois dans un document portant sur « La complexité des connaissances des systèmes de preuves interactives ».
Ils ont dévoilé un processus permettant de prouver une affirmation numérique sans en révéler le contenu. Ce processus permet à une partie, désignée comme le « prouveur », de démontrer la véracité d’une proposition à une autre partie, appelée le « vérificateur », sans révéler aucun détail concernant la proposition elle-même. Ainsi, aucune donnée spécifique ne peut être extraite d’une preuve à divulgation nulle de connaissance, hormis la confirmation de la véracité et de l’intégrité de la proposition.
L’évolution des preuves sans connaissance
Ce domaine de la cryptographie a suscité l’intérêt de nombreux chercheurs par la suite. Parmi eux, Jean-Jacques Quisquater, qui participe actuellement au développement du portefeuille froid de cryptomonnaies NGRAVE, a co-écrit avec Louis Guillon un article de recherche en 1989 intitulé « Comment expliquer les protocoles de divulgation nulle de connaissance à vos enfants ? ». L’objectif de cet article était de rendre le concept de preuve à divulgation nulle de connaissance plus accessible en utilisant l’analogie du jeu “où est Charlie ?”
Aujourd’hui, ces preuves sont devenues un domaine d’étude distinct au sein de la cryptographie.
Comment fonctionnent les Zero Knowledge Proofs ?
Par la suite, d’autres analogies ont été imaginées pour illustrer ce concept. L’une d’entre elles évoque les célèbres livres de jeux « Où est Charlie ? ».
Imaginez la situation suivante : vous connaissez la position de Charlie et devez convaincre votre interlocuteur que vous détenez cette information. Vous avez plusieurs options :
- Vous pointez directement Charlie sur la page, fournissant ainsi une information explicite sur sa localisation. Cela démontre à votre interlocuteur que vous savez où se trouve Charlie.
- Vous dessinez Charlie au bon endroit sur un papier calque de même dimension que la page. Vous le remettez ensuite à votre interlocuteur. Ce dernier peut le superposer à la page pour retrouver Charlie. Vous avez ainsi prouvé que vous connaissiez la position de Charlie sans divulguer directement cette information.
Cet exemple illustre simplement le concept de preuve à divulgation nulle de connaissance, mais ne reflète pas entièrement le rôle du vérificateur. En effet, il lui suffisait de vérifier la correspondance entre le papier calque et la page. En pratique, le vérificateur évalue la preuve un grand nombre de fois pour la valider de manière probabiliste.
La technologie des ZKP est longtemps restée méconnue en raison du manque d’applications concrètes à ce stade. Son essor massif est intervenu plus tard avec le développement des blockchains, notamment celui d’Ethereum.
Il est essentiel de noter que les ZKP reposent sur un mécanisme empirique probabiliste. Par conséquent, une telle preuve ne peut jamais garantir formellement l’exactitude d’une proposition. Cependant, au-delà d’un certain seuil, la probabilité est si élevée qu’il est acceptable de considérer les propositions vérifiées comme exactes. Ainsi, le résultat est toujours présenté sous forme booléenne, soit « vrai » ou « faux ».
Les applications ZKP
Les potentialités des ZKP sont vastes car elles ne se limitent pas aux systèmes de crypto-monnaie ou d’identité décentralisée. En effet, elles peuvent également intervenir dans des domaines tels que la transmission d’informations sensibles sans révéler leurs sources, comme l’évaluation des capacités militaires de différents pays. En outre, elles sont largement exploitées dans le contexte des plateformes blockchain, comme nous le découvrirons par la suite.
Les transactions anonymes
L’introduction d’un protocole ZKP peut rendre les transactions anonymes, notamment dans le contexte des cryptomonnaies. En effet, certaines blockchains axées sur l’anonymat font usage de méthodes ZKP pour assurer la confidentialité des utilisateurs. De plus, certains de ces systèmes peuvent être intégrés aux contrats intelligents afin d’apporter un niveau d’anonymat supplémentaire au sein de plateformes existantes.
Les identités décentralisées
Cependant, là où les protocoles ZKP suscitent un réel intérêt, c’est dans le domaine des identités décentralisées. En effet, l’un des défis majeurs des identités décentralisées réside dans la sélection et la limitation des données partagées. Personne ne souhaite divulguer toutes ses données sensibles, en particulier les informations médicales qui sont prioritaires dans cette liste.
Les solutions utilisant les ZKP pour la gestion des données personnelles offrent plusieurs avantages :
- Elles sont hautement conformes aux réglementations telles que le RGPD et NIS2, car leur conception repose sur le respect de la vie privée des données.
- Elles offrent aux utilisateurs une transparence accrue dans le cadre de protocoles ouverts.
Cependant, alors que ces avantages pourraient être atteints par des systèmes centralisés avec une divulgation transparente des informations, les ZKP vont plus loin.
Tout d’abord, les informations ne sont pas divulguées, conformément au principe des ZKP. Elles ne peuvent donc pas être stockées, exposées à des attaques de phishing, ou transférées à des tiers moins transparents quant à leur utilisation.
L’exploitation des données d’IOT
Alors que l’IoT (Internet des Objets) offre des perspectives alléchantes pour améliorer notre quotidien de manière personnalisée, cet ensemble de produits et de services souffre de divers problèmes. Parmi ceux-ci, on note un manque général de sécurité sur les appareils IoT, souvent bon marché, ainsi qu’une opacité considérable dans la gestion des données collectées, essentielles pour optimiser les services. Bien que l’utilisation de preuves à divulgation nulle de connaissance ne garantisse pas pleinement la sécurité, ces solutions peuvent néanmoins résoudre le dilemme lié à l’utilisation des données.
En effet, le véritable problème réside moins dans l’exploitation des données (telles que les reventes ou l’optimisation des systèmes) que dans le lien entre ces données collectées et les propriétaires des objets connectés. L’utilisation d’échanges d’informations à divulgation nulle pourrait garantir l’anonymat des utilisateurs sans avoir à accorder une confiance aveugle au fabricant (notamment dans le cadre de contrats intelligents ou de la mise à disposition du code source en open source).
Des surcouches de scalabilité
Une utilisation moins connue du grand public, mais offrant des perspectives intéressantes, réside dans l’intégration des ZKP dans des solutions de scalabilité. Principalement intégrées dans des projets en surcouche d’Ethereum, les signatures à divulgation nulle permettent d’accroître le nombre de transactions traitées dans un laps de temps donné en ne diffusant que la preuve de transaction. Ainsi, moins de données sont échangées sur le réseau tout en garantissant la validation du consensus. Des exemples de protocoles de scalabilité basés sur les ZKP existent déjà aujourd’hui, notamment avec ZK-Rollup et son implémentation zkSync, une DApp Ethereum qui permet des transactions à moindre coût sur la blockchain. Cependant, cette solution de micropaiements présente néanmoins certains inconvénients, tels qu’un schéma initial relativement centralisé et une demande accrue de puissance de calcul pour générer des preuves à divulgation nulle par rapport aux transactions classiques.
Cela conclut notre présentation des preuves à divulgation nulle, de leur fonctionnement et des cas d’utilisation pertinents. Bien qu’Ethereum soit actuellement le protocole avec la communauté la plus active dans le domaine des ZKP, il est important de noter que ces dernières ne sont pas exclusivement liées aux technologies blockchain, mais s’étendent également à des protocoles sans confiance plus généraux.
Avantages et limitations des ZKP
La découverte de ce nouveau protocole cryptographique a entraîné une réduction de la quantité d’informations requises pour prouver un théorème spécifié.
Dans le contexte de l’amélioration de la scalabilité d’une blockchain, ce protocole cryptographique présente des avantages significatifs. Il est plus rapide et plus léger, nécessitant uniquement une preuve plutôt que l’ensemble des informations du registre distribué.
En ce qui concerne la confidentialité, le protocole cryptographique ZKP offre l’anonymat. C’est d’ailleurs la cryptomonnaie ZCash qui a été la première à mettre en œuvre cette technologie. Les Zero-Knowledge permettent de dissimuler les détails de la transaction tout en garantissant la sécurité et la validation des transactions.
Pour la sécurité, il est important de noter que les preuves à divulgation nulle de connaissance ne sont pas des preuves au sens strictement mathématique. Il existe une faible probabilité qu’un prouveur puisse tricher et convaincre à tort un vérificateur. C’est pourquoi ces preuves sont qualifiées de probabilistes plutôt que déterministes. Cependant, diverses techniques, telles que les répétitions, peuvent être utilisées pour réduire la probabilité d’erreur. Plus la preuve est répétée, plus la probabilité d’obtenir un résultat correct augmente.
Saviez-vous que 80% des violations de données réussies sont dues à des identifiants faibles ou compromis ? Pour vous prémunir de ces risques omniprésents, découvrez notre gestionnaire de mots de passe.