Dans l’univers des cryptomonnaies, le terme de Preuves à Divulgation Nulle de Connaissance (ZKP), est fréquemment évoqué, étant utilisé pour anonymiser certaines transactions. Plongeons dans ce que sont ces ZKP, comment elles fonctionnent, et à quoi elles servent concrètement.
Les Preuves à Divulgation Nulle de Connaissance (ZKP) : Concepts et Applications
Lorsqu’on évoque Bitcoin et l’écosystème des crypto-monnaies qui l’entoure, on parle souvent d’algorithmes cryptographiques. Ces mécanismes fonctionnent de manière spécifique et répondent à des besoins divers, tels que la gestion autonome d’un portefeuille numérique. C’est ainsi que les clés, les signatures de transactions et autres outils permettent de prouver la possession de bitcoins sans révéler l’identité réelle. Cela a donné naissance à Bitcoin, un système non anonyme, mais pseudonyme.
Mais que diriez-vous d’aller plus loin, en instaurant des transactions anonymes ? Cela nécessiterait d’autres concepts cryptographiques, dont les Preuves à Divulgation Nulle de Connaissance, ou ZKP, font partie.
Qu’est-ce que les Preuves à Divulgation Nulle de Connaissance (ZKP) ?
Les Preuves à Divulgation Nulle de Connaissance (ZKP), désignent des protocoles permettant à une partie de prouver la véracité d’une situation sans divulguer les informations associées à cette situation. Pour illustrer, cela signifie que l’on pourrait prouver à un utilisateur qu’il possède des bitcoins, sans révéler sa signature ou son adresse publique. En extrapolant au-delà des cryptomonnaies, cela pourrait aussi être utilisé pour prouver une identité sans la révéler. Nous explorerons plus en détail ces deux exemples pertinents par la suite. Mais commençons par retracer l’origine de ces protocoles.
Le terme « Preuves à Divulgation Nulle de Connaissance » est relativement récent, mais n’a pas été créé dans le contexte des crypto-monnaies. C’est en 1989 que trois experts, Shafi Goldwasser, Silvio Micali et Charles Rackoff, ont employé ce terme pour la première fois dans une publication scientifique abordant de nombreux concepts liés aux preuves cryptographiques. De nos jours, ces preuves sont devenues un domaine d’étude à part entière en cryptographie.
Comment Fonctionnent les ZKP ?
De même qu’il existe divers cas d’utilisation pour les ZKP, il existe également plusieurs modes de fonctionnement, chacun étant adapté à des situations spécifiques. En effet, chaque cas particulier requiert une configuration propre, avec un protocole développé en fonction de ces paramètres. Cependant, les ZKP obéissent à des principes généraux, ce qui se traduit par divers exemples illustrant leurs fonctionnements.
La Métaphore de la Grotte d’Ali Baba
Imaginons Alice et Bob devant la grotte d’Ali Baba, Alice possédant le mot de passe de la porte. Cette dernière bloque deux couloirs, A et B. Bob souhaite franchir la porte, mais Alice ne désire pas révéler le mot de passe. Le protocole ZKP associé à cette situation serait le suivant : Alice ouvre la porte et Bob sort de la grotte en utilisant le mot de passe.
Comme Alice ignore quel couloir choisira Bob, elle a une chance sur deux de mentir. En répétant ce processus un nombre suffisant de fois, Alice prouve qu’elle peut accéder aux deux couloirs et détenir le mot de passe, permettant le passage d’un couloir à l’autre si nécessaire.
L’exemple des Bonbons d’Halloween
À la fin de la collecte de bonbons à Halloween, Alice et Bob veulent vérifier s’ils ont collecté le même nombre de bonbons, sans révéler le nombre exact qu’ils ont chacun. Pour ce faire, Bob crée des boîtes pour chaque possibilité de collecte et place un nombre à l’intérieur. Il les ferme à clé et jette les clés des boîtes contenant un nombre incorrect. De son côté, Alice prend autant de morceaux de papier que de boîtes et écrit le signe « – » sur chacun, sauf sur l’un qu’elle marquera d’un « + ». Elle place ensuite un morceau de papier dans chaque boîte de Bob, le « + » étant dans celle correspondant au nombre de bonbons qu’elle a collectés.
Applications des ZKP
Les applications des ZKP sont nombreuses, et ne se limitent pas aux systèmes de cryptomonnaie ou d’identité décentralisée, que nous examinerons en détail par la suite. En effet, elles peuvent aussi intervenir dans la diffusion d’informations sensibles sans révéler les sources, comme dans l’évaluation des forces militaires de différents pays. Enfin, elles sont largement utilisées dans le domaine des plateformes blockchain, comme nous le verrons.
Transactions Anonymes et Protection de la Vie Privée
La mise en place de protocoles ZKP peut rendre les transactions anonymes, y compris celles des crypto-monnaies. Certaines blockchains axées sur l’anonymat utilisent les ZKP pour garantir la confidentialité de leurs utilisateurs. Certains de ces systèmes peuvent également être déployés via des contrats intelligents pour introduire l’anonymat au sein de plateformes existantes. Par exemple, Tornado Cash, qui a récemment lancé sa version 2, a déployé des preuves à divulgation nulle pour rendre anonymes les transactions Ethereum.
Identités Décentralisées
Cependant, là où les protocoles ZKP deviennent vraiment intéressants, c’est dans le contexte des identités décentralisées. L’un des enjeux des identités décentralisées réside dans la sélection et la limitation des données partagées. Personne ne souhaite divulguer publiquement certaines informations sensibles, comme les données médicales qui sont en tête de liste. Les solutions utilisant les ZKP dans la gestion de données personnelles présentent plusieurs avantages :
- Elles sont en grande partie conformes au RGPD (Règlement Général sur la Protection des Données), car le système est conçu pour préserver la confidentialité des données.
- Elles offrent aux utilisateurs une transparence élevée grâce à des protocoles ouverts.
Cependant, les ZKP vont plus loin que ces avantages que pourraient offrir des systèmes centralisés avec une divulgation d’informations transparente.
Tout d’abord, les informations ne sont pas divulguées, conformément au principe. Par conséquent, elles ne peuvent être stockées et exposées à des attaques, ou transmises à des tiers dont l’utilisation pourrait être moins transparente. Si ce sujet vous intéresse, je vous recommande la lecture du travail approfondi de Blockchain Partner sur ce sujet.
Exploitation des Données de l’Internet des Objets (IoT)
Bien que l’Internet des Objets (IoT) promette des optimisations personnalisées pour chacun au quotidien. Cet écosystème de produits et de services souffre de nombreux problèmes : produits IoT peu sécurisés, souvent peu coûteux. Ainsi qu’une gestion obscure des données collectées, nécessaires pour optimiser les services. Même si les preuves à divulgation nulle de connaissance ne garantissent pas la sécurité (encore moins sur une blockchain !). Elles peuvent résoudre le dilemme de l’utilisation des données.
En effet, le véritable enjeu n’est pas l’exploitation des données (reventes, optimisation des systèmes, etc.), mais plutôt le lien entre les données collectées et les propriétaires des objets connectés. Nous imaginons tous ces scénarios dystopiques quasi réels où les primes d’assurance dépendent instantanément des données recueillies autour de vous. L’utilisation d’échanges d’informations à divulgation nulle pourrait garantir l’anonymat des utilisateurs sans placer leur confiance envers le fabricant (dans le cadre de contrats intelligents ou de code open source).
Amélioration de la Scalabilité
L’une des utilisations moins connues du grand public, mais prometteuses, est l’application des ZKP aux solutions de scalabilité. Principalement présents dans les projets de surcouche d’Ethereum, les signatures à divulgation nulle permettent d’augmenter le nombre de transactions sur une période donnée en ne transmettant 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 protocoles de scalabilité basés sur les ZKP existent déjà aujourd’hui, notamment en surcouche d’Ethereum.
C’est notamment le cas de ZK-Rollup et de son implémentation zkSync, une DApp Ethereum permettant des transactions à faible coût sur la blockchain Ethereum. Il s’agit d’une solution de micro paiements qui présente toutefois des inconvénients, tels qu’un modèle initial plutôt centralisé et une demande accrue de puissance de calcul pour les preuves à divulgation nulle par rapport aux transactions classiques.Ceci conclut notre exploration des preuves à divulgation nulle de connaissance (ZKP), de leur fonctionnement et des cas d’utilisation qui les concernent. Ethereum est actuellement la blockchain dont la communauté est la plus active dans le domaine des preuves à divulgation nulle. Cependant, ces protocoles ne sont pas exclusivement liés aux technologies blockchain, mais sont plus généralement utilisés pour les protocoles sans confiance. Si vous avez des questions ou des commentaires concernant cet article, n’hésitez pas à nous contacter dans la section des commentaires ou sur les réseaux sociaux.