Zero-Knowledge Proof, le nouveau protocole qui respecte la vie privée

zero knowledge proof zkp explication

Introduction au Zero-Knowledge Proof

La cryptographie a pour but de protéger les données grâce à diverses méthodes. Aujourd’hui nous allons découvrir le protocole de cryptographie appelé Zero-Knowledge Proof, en français la preuve à divulgation nulle de connaissance. Elle a pour but de respecter les données personnelles des utilisateurs.

Très souvent utilisées à l’encontre des utilisateurs, les données personnelles sont devenues propriété des grandes sociétés. Facebook, Microsoft, Google détiennent aujourd’hui le monopole des données privées. Ils n’hésitent pas à vendre ces informations confidentielles à d’autres sociétés qui vont les utiliser pour mieux cibler leur publicité par exemple.

Découvrez d’où vient ce protocole cryptographique, à quoi il sert et comment il fonctionne.

Zero-Knowledge Proof : concept de base

Les protocoles cryptographiques sont des règles d’échange éditées par le réseau pour régir et sécuriser les communications.

Le concept de preuve à divulgation nulle de connaissance apparaît dans les années 80, il a été mis en avant par Silvio Micali (fondateur de la blockchain Algorand), Shafi Goldwasser et Charles Rackoff dans un papier au sujet de « La complexité des connaissances des systèmes de preuves interactives ».

Ils ont réussi à mettre en évidence un procédé qui permet de prouver une assertion numérique sans pour autant révéler son contenu. Plus simplement, la preuve à divulgation nulle de connaissance est une méthode de vérification. Elle a lieu entre un prouveur et un vérificateur.

Un utilisateur cherche à prouver son honnêteté à un validateur. Il cherche à démontrer en apportant une preuve qu’il dispose d’une information particulière sans pour autant la dévoiler. Ce système est très utilisé en cryptographie, il permet de fournir un haut niveau de confidentialité et de sécurité.

zero knowledge proof zkp

Zero-Knowledge Proof : comment ça fonctionne ?

Une ZKP doit répondre à deux exigences pour fonctionner :

  • Exhaustivité : il s’agit de la capacité du démonstrateur à prouver sa connaissance des informations pertinentes
  • Solidité : le vérificateur doit être en mesure de déterminer de manière fiable si oui ou non le démonstrateur est en possession de l’information. Pour être tout à fait complète et correcte, cette preuve en question ne doit jamais être communiquée entre les deux protagonistes

Zero Knowledge Proof – L’exemple « Où est Charlie »

Pour faciliter la compréhension et imager nos précédentes explications, utilisons l’exemple « Où est Charlie ? ». Il s’agit d’un livre d’images où le lecteur doit découvrir un petit personnage appelé Charlie caché quelque part sur une double page remplie de nombreux autres personnages. Les images sont conçues pour qu’il soit difficile de trouver Charlie.

ou est charlie
Exemple : Où est Charlie ?

Max est un professionnel du jeu « Où est Charlie ? ». Il reçoit une entreprise qui souhaite s’assurer qu’il est bien professionnel dans le domaine. L’entreprise lui demande de retrouver Charlie à l’intérieur d’un des livres qu’ils ont apportés. Problème, Max ne souhaite pas travailler avant d’être payé.

Max et l’entreprise vont essayer de coopérer, mais cela semble compliqué. Impossible de satisfaire la demande de l’entreprise sans faire le travail gratuitement pour eux.

Cependant, il existe une possibilité : les deux entités peuvent utiliser une preuve à divulgation nulle de connaissance. Max peut prouver à l’entreprise où se trouve Charlie sans réellement révéler sa position.

Où est Charlie : la preuve

Max demande au représentant de l’entreprise de se retourner, pour qu’il puisse placer un grand carton sur la page du livre. Ce carton doit être plus grand que le livre de façon à le recouvrir totalement. Il est positionné de façon à ce que Charlie soit au centre du carton pour ne pas indiquer son emplacement exact sur la page. Max va découper une petite fenêtre afin de laisser visible Charlie.

Lorsque le représentant de l’entreprise se retourne, il voit Charlie à travers le trou. Le carton est suffisamment grand, de ce fait, il n’est pas en mesure de déterminer la position de Charlie par rapport au livre. Cette preuve est une illustration, mais Max n’a pas dévoilé l’emplacement de Charlie, il a pu prouver à l’entreprise qu’il sait où est Charlie, sans pour autant donner son emplacement exact.

ou est charlie zkp livre carton
En déposant un large carton au-dessus du livre, Max a pu prouver qu'il connaissait l'emplacement de Charlie sans donner son emplacement exact

Autre exemple

On peut appliquer cette idée sur d'autres concepts liés à l'informatique, par exemple, on pourrait prouver à un site internet que l'on connait notre email et notre mot de passe pour nous connecter, sans dévoiler notre mot de passe, limitant ainsi le risque de piratage.

Les ingrédients de la Zero Knowledge Proof

Comparé aux protocoles cryptographiques standards, le protocole cryptographique Zero-Knowledge Proof utilise des ingrédients supplémentaires :

  1. Les interactions : le démonstrateur (prouveur) et le vérificateur échangent des informations
  2. Randomisation cachée : le vérificateur pose des questions aléatoires que le prouveur ne peut pas anticiper afin de garantir la sécurité du protocole
  3. Difficulté de calcul : le démonstrateur intègre dans ses preuves la difficulté de calcul d’un autre problème

Les propriétés des Zero Knowledge Proof sont les suivantes :

  1. Consistance : la proposition (preuve) est vraie, le vérificateur honnête qui suit le protocole sera convaincu de ce fait que le prouveur est honnête
  2. Robustesse : si la proposition est fausse, aucun prouveur malhonnête (tricheur) ne peut convaincre le vérificateur que cette preuve soit vraie, excepté avec une très faible probabilité
  3. On ne donne pas la preuve (Zero-Knowledge) : le vérificateur n'apprend de la part du prouveur rien de plus que la véracité de la proposition, il n'obtient aucune information en plus qu'il ne connaissait pas déjà

Les deux premières propriétés sont utilisées par les systèmes de preuve interactifs de manière générale. La dernière permet de réaliser la proposition (preuve) sans divulguer la connaissance (solution).

security zkp

Les avantages de la preuve à divulgation nulle de connaissance (ZKP)

La découverte de ce nouveau protocole cryptographique a permis de réduire la quantité d’informations nécessaire pour prouver un théorème défini.

  • Amélioration de la scalabilité d’une blockchain : le protocole cryptographique est plus rapide et plus léger, il a uniquement besoin d’une preuve et non pas de l’ensemble des informations du registre distribué
  • Confidentialité : le protocole cryptographique ZKP permet l’anonymat. C’est d’ailleurs la cryptomonnaie ZCash qui a été la première à implémenter cette technologie. Les Zero-Knowledge permettent de masquer les détails de la transaction tout en assurant la sécurité et la validation des transactions
  • Sécurité : les preuves à divulgation nulle de connaissance ne sont pas des preuves au sens mathématique de la chose. Il existe une faible probabilité qu’un prouveur arrive à tricher. Il pourrait réussir à convaincre un vérificateur à tort. C’est pour cette raison que ces preuves sont dites probabilistes et non pas déterministes. Cependant, il existe des techniques afin de réduire la probabilité d’erreur comme les répétitions. Plus la preuve est répétée plus la probabilité d’un résultat juste augmente

Conclusion

La ZKP ou Zero-Knowledge Proof est une preuve permettant de démontrer une vérité sans pour autant dévoiler son contenu. Un utilisateur doit prouver la véracité d’une proposition à un vérificateur, on dit qu’il doit lui apporter la preuve.

Légère, elle dispose de moins d’informations que les protocoles cryptographiques standards, elle permet d'améliorer la scalabilité d'un registre distribué comme la blockchain. Confidentielle, la preuve à divulgation nulle de connaissance respecte la vie privée des utilisateurs sans dévoiler leurs données personnelles.