2023-09-27 08:55 Temps de lecture : 22 min

Preuve de connaissance zéro (ZKP) dans la blockchain expliquée

Dans un contexte où la surveillance devient une pratique courante, diverses institutions scrutent en permanence les informations personnelles. Ce manque de confidentialité appelle une réponse technologique novatrice.

La blockchain, également désignée sous le terme de technologie de registre distribué, représente un système décentralisé qui transforme radicalement nos habitudes. Bien que cette technologie ait engendré des changements significatifs, son impact reste perfectible.

Un nouvel acteur émerge : les preuves à divulgation nulle de connaissance (ZKP). Si vous avez entendu parler des ZKP sans vraiment saisir leur fonctionnement, vous êtes au bon endroit.

Le chiffrement à divulgation nulle de connaissance est souvent présenté comme le protocole idéal pour renforcer la sécurité. Mais est-il réellement suffisant ? Pourrait-il être la solution tant attendue ? Cet article vise à éclairer ces questions et d’autres interrogations connexes.

Qu'est-ce qu'un protocole de preuve à divulgation nulle de connaissance ?

Une preuve à divulgation nulle de connaissance désigne une technique cryptographique par laquelle une partie (le prouveur) peut attester de la validité d'une affirmation auprès d'une autre partie (le vérificateur), sans divulguer davantage d'informations que la légitimité de cette affirmation.

Le système de preuve implique un prouveur, un vérificateur, et un défi. Il permet aux parties concernées de démontrer publiquement la possession ou la connaissance d'une information, sans en dévoiler les détails précis.

Pour simplifier, un protocole de divulgation nulle de connaissance peut être utilisé en cryptographie pour convaincre quelqu'un que vous savez ou avez fait quelque chose, sans révéler le secret en question.

Par exemple, si vous souhaitez obtenir un prêt sans divulguer vos informations financières à une banque, celle-ci pourrait utiliser une preuve à divulgation nulle de connaissance pour évaluer votre historique financier. Elle pourrait vérifier des informations telles que les paiements de compte, une preuve de résidence, votre cote de crédit ou vos biens immobiliers, sans avoir accès aux détails de ces actifs.

Ce protocole a été théorisé pour la première fois en 1985 par trois chercheurs du MIT, Shafi Goldwasser, Silvio Micali et Charles Rackoff, dans un article intitulé « La complexité des connaissances des systèmes de preuve interactifs ». De nombreux protocoles de finance décentralisée (DeFi) utilisent déjà les ZKP pour améliorer la sécurité et la confidentialité des utilisateurs lors de leurs opérations de prêt, d'emprunt et de trading.

Plusieurs blockchains de couche 1, comme Zcash et Polygon, intègrent déjà des rollups basés sur les ZKP ou des machines virtuelles Ethereum à divulgation nulle de connaissance (zkEVM). Les acteurs de la blockchain et du Web 3.0 nourrissent de grands espoirs quant au rôle crucial des ZKP dans l'adoption croissante de leurs applications.

Propriétés d'une preuve à divulgation nulle de connaissance

La méthode de preuve à divulgation nulle de connaissance s'avère particulièrement pertinente dans les situations où l'information est sensible et où le prouveur estime que le vérificateur n'a pas à y avoir accès.

Dans ce cas, le prouveur fournit une preuve mathématique qu'il est le seul à pouvoir générer. Le vérificateur peut utiliser cette preuve pour confirmer la véracité de l'affirmation, sans pouvoir reconstituer l'information initiale.

Imaginez une montagne immense qui traverse votre ville, avec un tunnel doté de deux entrées reliant les extrémités de la ville. Vous seul connaissez le code secret des portes verrouillées aux deux extrémités du tunnel.

Si vous exigiez un paiement avant de révéler le code, il est évident que les personnes souhaitant utiliser le tunnel voudraient une preuve que vous connaissez réellement le code avant de vous faire confiance.

Ces personnes pourraient être convaincues que vous connaissez le code en vous voyant entrer d'un côté du tunnel et ressortir de l'autre.

Les trois propriétés essentielles de tout protocole de divulgation nulle de connaissance sont :

❇️ Complétude : Le vérificateur doit être en mesure de confirmer que le prouveur possède les informations nécessaires pour justifier l'affirmation.

❇️ Solidité : Il est impossible de falsifier l'affirmation et de convaincre le vérificateur que le prouveur possède les informations nécessaires, s'il ne les a pas.

❇️ Divulgation nulle de connaissance : Aucun mécanisme ne permet au vérificateur d'obtenir des informations autres que la validité de l'affirmation. Les données personnelles ou le contenu des informations restent anonymes.

Différents types de preuves à divulgation nulle de connaissance

Il existe deux types principaux de ZKP :

Preuves interactives à divulgation nulle de connaissance

Ce type de preuve à divulgation nulle de connaissance implique de nombreuses interactions entre le prouveur et le vérificateur. Le vérificateur peut remettre en question les réponses du prouveur plusieurs fois jusqu'à être pleinement convaincu.

Puisque les actions associées à ce type de ZKP reposent sur des probabilités mathématiques, le prouveur doit soit convaincre un vérificateur spécifique, soit répéter le processus auprès de plusieurs vérificateurs à travers une série d'actions liées à un fait particulier.

Preuves non interactives à divulgation nulle de connaissance

Dans ce type de ZKP, il n'y a aucune interaction entre le prouveur et le vérificateur. Le vérificateur n'a qu'une seule possibilité d'authentifier la preuve fournie par le prouveur.

Ce type de ZKP étant plus gourmand en puissance de calcul que le ZKP interactif, le prouveur est tenu de créer une preuve que tout le monde peut vérifier. Ainsi, le processus de vérification peut se dérouler.

Le ZKP non interactif peut nécessiter un logiciel spécifique pour être efficace.

Application de la preuve à divulgation nulle de connaissance dans les blockchains

La technologie blockchain a introduit de nombreuses fonctionnalités importantes comme la décentralisation, l'immuabilité, la transparence et le registre distribué, permettant aux utilisateurs d'effectuer des transactions en toute sécurité et de manière anonyme.

Bien que la blockchain ait donné aux utilisateurs un certain contrôle sur leur vie privée, elle n'a pas complètement atteint cet objectif car les réseaux blockchain utilisent des bases de données publiques. Toute personne ayant une connexion Internet peut accéder à l'historique des transactions d'un réseau.

Par conséquent, de nombreux détails associés à la transaction d'un utilisateur et à ses informations de portefeuille sont visibles. Même si l'identité reste anonyme, les tiers peuvent toujours voir les clés publiques.

La création de clés publiques à l'aide de techniques cryptographiques peut protéger la confidentialité. Cependant, il existe des techniques qui pourraient compromettre l'anonymat et la confidentialité. C'est pourquoi il est nécessaire d'appliquer des preuves à divulgation nulle de connaissance dans les systèmes blockchain, afin d'obtenir les résultats suivants :

#1. Messagerie

Lorsque les gens échangent des messages en utilisant le chiffrement de bout en bout, il est essentiel que personne d'autre que le destinataire prévu n'ait accès aux messages privés. Les plateformes de messagerie s'efforcent de vérifier l'identité des utilisateurs auprès des serveurs, et inversement. L'implémentation des ZKP permettra aux plateformes de messagerie d'établir une confiance de bout en bout, sans divulguer d'informations sensibles sur les utilisateurs.

#2. Authentification

Les ZKP peuvent être utilisés pour faciliter la transmission d'informations sensibles, comme l'authentification, avec une sécurité maximale. Les plateformes blockchain pourront créer des canaux sécurisés permettant aux utilisateurs d'envoyer leurs informations sans divulgation inappropriée, afin d'éviter les fuites de données dans le pire des cas.

Un exemple concret de transactions préservant la confidentialité grâce à la blockchain est l'application décentralisée Manta Network, MantaPay.

Cette application utilise les ZKP pour permettre aux utilisateurs de réaliser des transactions sur des échanges décentralisés sans révéler leur identité ou les détails de la transaction. Les utilisateurs peuvent ainsi préserver leur confidentialité lorsqu'ils utilisent ces plateformes.

#3. Protection du stockage

Étant donné que les blockchains traitent de grandes quantités de données, les ZKP pourraient également être utiles pour le stockage de données.

Les preuves à divulgation nulle de connaissance intègrent des protocoles capables de protéger les informations sensibles en plus de l'unité de stockage elle-même. Les ZKP peuvent également sécuriser les canaux d'accès pour offrir aux utilisateurs une expérience transparente et sécurisée.

#4. Envoi de transactions blockchain privées

L'objectif des transactions blockchain privées est d'empêcher des tiers de les consulter. Malgré leurs avantages, les méthodes de protection existantes peuvent présenter certaines lacunes. C'est là que les ZKP interviennent.

Correctement implémentées, les ZKP empêcheront quiconque de pirater, d'intercepter ou de détourner des transactions blockchain privées.

Par exemple, Zcash utilise des transactions à divulgation nulle de connaissance pour permettre des transactions protégées qui masquent les adresses de l'expéditeur et du destinataire ainsi que les montants impliqués dans la blockchain publique. Cela ajoute un niveau de sécurité supplémentaire.

#5. Documentation complexe

Les ZKP sont conçues pour chiffrer les données en blocs importants. Ainsi, les utilisateurs peuvent décider à quels blocs ils autorisent l'accès de certains utilisateurs et en restreindre l'accès à d'autres. Ce concept peut être utilisé pour garantir que seules les parties autorisées peuvent accéder à une documentation complexe.

#6. Démocratisation de la vérification des votes

Un autre domaine d'application pratique des ZKP dans la blockchain est la vérification des votes. Ce protocole peut fournir des réponses fiables pour tout processus de vote vérifiable en enregistrant les votes exprimés sur une blockchain publique.

L'effet serait un processus de vote qui supprimerait les restrictions et la nécessité de confirmations tierces. Les preuves à divulgation nulle de connaissance permettraient aux électeurs de prouver leur éligibilité au vote tout en garantissant la confidentialité de leurs données personnelles sensibles.

Les électeurs pourraient également utiliser les ZKP pour exiger une preuve immuable de leur vote lors du décompte final des voix.

#7. Sécurité des informations sensibles

Les ZKP amélioreront également la manière dont la blockchain est utilisée pour les transactions, en ajoutant une couche de sécurité supplémentaire aux blocs contenant des informations sensibles.

Cela pourrait inclure des informations bancaires confidentielles telles que l'historique de crédit et les détails de la carte de crédit. Ainsi, les destinataires n'auront accès qu'aux blocs nécessaires contenant les informations de l'utilisateur, les autres blocs restant protégés.

#8. Tokenisation et vérification de propriété

Les plateformes blockchain peuvent également utiliser les ZKP pour la tokenisation des actifs et la vérification de la preuve de propriété. Par exemple, un utilisateur pourrait prouver qu'il est propriétaire d'un bien sans divulguer publiquement ses informations personnelles.

Avantages de l'utilisation de preuves à divulgation nulle de connaissance

Comme toute nouvelle technologie, l'utilisation des ZKP présente de nombreux avantages lorsqu'ils sont combinés aux protocoles blockchain. Outre la liberté et la flexibilité qu'ils offrent aux utilisateurs, les autres avantages de l'utilisation de preuves à divulgation nulle de connaissance sont les suivants :

🔷 Simplicité : La simplicité est l'un des avantages les plus notables des ZKP. Les utilisateurs n'ont pas besoin de savoir comment utiliser des logiciels complexes pour bénéficier des différentes solutions qu'ils proposent. Les ZKP sont entièrement sécurisés, bien qu'ils ne soient pas chiffrés au sens traditionnel du terme. Ils font donc le pont entre ces deux mondes.

🔷 Sécurité : Les protocoles de preuve à divulgation nulle de connaissance sont hautement sécurisés dans la manière dont ils facilitent le partage d'informations. Les utilisateurs peuvent les utiliser en toute confiance pour interagir sans avoir à maîtriser des codes ou des analyses spécifiques.

🔷 Gain de temps : Les ZKP permettent aux utilisateurs d'économiser le temps nécessaire pour effectuer des transactions blockchain, tout en offrant une valeur conséquente.

🔷 Confidentialité : La protection de la vie privée des utilisateurs est un avantage clé des ZKP. Les utilisateurs n'ont pas à partager de données sensibles, ce qui fait de ce protocole un outil très privé.

🔷 Sécurité : Les utilisateurs de protocoles de preuve à divulgation nulle de connaissance sont informés de la politique relative au partage de données. Ils pourront ainsi refuser de communiquer leurs informations personnelles sans raison valable.

ZKP contre calcul multipartite (MPC)

Les ZKP consistent en une chaîne unique utilisée pour prouver l'authenticité d'une déclaration contenant une valeur publique, sans en révéler les détails à la partie correspondante. Cela peut inclure la structure cachée d'une communication ou une clé secrète liée à la clé publique.

Dans le cadre des transactions blockchain, cela peut signifier que l'initiateur d'une transaction dissimule la valeur exacte tout en prouvant qu'une transaction valide a bien eu lieu.

Le calcul multipartite (MPC), quant à lui, fait référence à une communication interactive entre plusieurs parties, qui leur permet de calculer de manière sécurisée une fonction identique de leurs valeurs non divulguées, tout en gardant les détails individuels pour eux.

Par exemple, trois parties pourraient avoir chacune un numéro secret et calculer la somme des trois nombres. Bien sûr, chaque partie doit connaître le numéro secret des deux autres, outre le total des trois chiffres.

La principale caractéristique du MPC est donc que de nombreux pairs sont impliqués. Chacun cherche à évaluer en toute sécurité la valeur secrète des fonctions de ses pairs, tout en leur accordant le même privilège sans révéler sa propre valeur privée.

Preuve à divulgation nulle de connaissance vs. Confiance zéro

L'aspect de la vérification est la distinction majeure entre les preuves à divulgation nulle de connaissance et la confiance zéro. Le modèle Zero Trust exige une vérification stricte de l'identité des utilisateurs et de leurs appareils avant de pouvoir autoriser l'accès aux applications et aux données confidentielles.

Les ZKP, en revanche, chiffrent les données de manière à ce que seule une partie autorisée puisse y accéder. La vérification de l'identité est au cœur du mécanisme Zero Trust, tandis que le chiffrement est le principe fondamental du protocole de divulgation nulle de connaissance.

La portée distingue également les deux protocoles. La sécurité du réseau est l'objectif principal de Zero Trust, tandis que la sécurité des données est le pilier du protocole à divulgation nulle de connaissance.

Zero Trust est appliqué pour garantir que seul un appareil ou un utilisateur autorisé et authentifié puisse accéder à des applications ou à des données confidentielles. Le protocole de divulgation nulle de connaissance sécurise les données personnelles en les chiffrant de sorte que seul un participant autorisé puisse y accéder.

Dernières réflexions

La preuve à divulgation nulle de connaissance n'est peut-être pas magique, mais elle a ouvert de nouvelles perspectives passionnantes dans la technologie blockchain. Ce protocole offre un potentiel immense pour un large éventail d'applications qui traitent d'informations sensibles. Par exemple, la preuve d'identité, la confirmation de mot de passe ou la preuve d'appartenance peuvent être nécessaires.

Les ZKP suscitent un intérêt croissant grâce à leurs propriétés d'évolutivité et de préservation de la confidentialité. Ils sont de plus en plus utilisés dans les applications blockchain, les cryptomonnaies et la DeFi. Leur rôle est voué à s'étendre dans les écosystèmes DApp, où la sécurité, la confidentialité et l'efficacité sont essentielles.

Les preuves à divulgation nulle de connaissance, utilisées comme outil fondamental en cryptographie, permettront de prouver les propriétés des données et deviendront le chaînon manquant polyvalent qui pourrait amener la blockchain et ses applications au grand public. Les opérateurs de blockchain peuvent tirer parti des ZKP de dernière génération pour bénéficier d'avantages considérables à des coûts abordables.

Consultez ensuite le guide détaillé sur la sécurité Zero Trust.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.