Suite à l'article de la semaine passée, on va aller plus loin cette semaine dans la confidentialité en découvrant ensemble le ZK Proof ou la preuve à divulgation nulle de connaissance. Comment prouver que vous possédez une information sans jamais la dévoiler !
Introduction : prouver sans tout dévoiler, est-ce possible ?
Imaginez pouvoir démontrer que vous possédez une information sensible sans jamais la révéler. Cela semble magique, et pourtant c’est précisément ce que permet une preuve à divulgation nulle de connaissance, connue sous le nom de Zero-Knowledge Proof (ZKP ou ZK proof) en anglais. Il s’agit d’un protocole cryptographique qui autorise une personne (le fournisseur de preuve) à prouver à une autre (le vérificateur) qu’une affirmation est vraie, sans dévoiler aucun détail sur cette affirmation.
Concrètement, grâce aux ZKP, on peut par exemple prouver que l’on possède des bitcoins sans révéler son adresse ou sa signature, ou encore prouver son identité sans divulguer aucune donnée personnelle. Ce tour de force algébrique révolutionne la confidentialité dans de nombreux domaines, et en particulier dans l’univers de la blockchain, où il aide à résoudre le dilemme entre transparence et vie privée. Avant d’explorer ses applications, voyons d’abord en termes simples ce qu’est une preuve zero-knowledge et comment cela fonctionne.
Qu’est-ce qu’une preuve à divulgation nulle de connaissance (Zero-Knowledge Proof) ?
Une preuve à divulgation nulle de connaissance, ou Zero-Knowledge Proof, est un protocole qui permet de prouver la véracité d’une information sans révéler l’information elle-même. Autrement dit, le prouveur convainc le vérificateur qu’il connaît un certain secret ou qu’une certaine proposition est vraie, mais le vérificateur n’apprend rien d’autre que « c’est vrai ». Mais comment c’est possible vous allez me demander ! et bien pour que ce miracle cryptographique fonctionne, trois propriétés fondamentales doivent coexister :
- Complétude (consistance) – Si l’information est vraie et que le protocole est suivi correctement, le vérificateur sera convaincu par la preuve (un prouveur honnête convaincra un vérificateur honnête).
- Solidité (robustesse) – Si l’information est fausse, aucun prouveur malveillant ne devrait pouvoir tromper le vérificateur et le convaincre que l’information est vraie. Dit autrement, on ne peut pas fabriquer une fausse preuve crédible si on ne possède pas réellement le secret.
- Divulgation nulle (zéro connaissance) – La preuve ne révèle aucune information sur l’information secrète, hormis le fait qu’elle est correcte. Le vérificateur ne repart avec aucune donnée exploitable sur le secret lui-même.
En respectant ces principes, un protocole ZKP garantit qu’il est aussi fiable qu’une preuve classique, sans compromettre la confidentialité du secret. Notons que l’idée des preuves à connaissance nulle n’est pas neuve : elle a été formulée dès le milieu des années 1980 par des cryptographes pionniers, mais ce n’est que récemment avec les cryptomonnaies et la blockchain que ces techniques connaissent un essor pratique. Pour mieux comprendre intuitivement comment on peut « prouver sans révéler », rien de tel qu’une petite histoire illustrée.
Comment prouver sans rien révéler ? (L’exemple de la grotte d’Ali Baba)
Pour vulgariser le concept de Zero-Knowledge Proof, on utilise souvent une analogie appelée la grotte d’Ali Baba. Dans ce conte moderne, Peggy (la prouveuse) veut convaincre Victor (le vérificateur) qu’elle connaît le mot magique qui ouvre une porte cachée dans une grotte, sans lui dévoiler ce mot. Le schéma ci-dessous illustre la situation : la grotte a deux chemins, A et B, qui forment une boucle se rejoignant devant une porte fermée par le mot de passe secret.

Peggy (personnage en rose) veut prouver à Victor (en vert) qu’elle connaît un mot de passe secret permettant d’ouvrir une porte cachée, sans révéler le mot lui-même. Elle entre dans la grotte par l’un des deux tunnels (A ou B) tandis que Victor attend à l’extérieur. À l’intérieur, une porte verrouillée (barre noire) sépare les chemins A et B et ne peut s’ouvrir qu’en prononçant le mot secret. Victor ignore par quel chemin Peggy est entrée.

Pour tester Peggy, Victor choisit au hasard l’une des deux sorties et lui crie, par exemple, de ressortir par le tunnel A. Au même moment, Peggy est arrivée devant la porte intérieure. Si elle connaît le mot secret, elle peut déverrouiller la porte et emprunter le chemin A sans problème pour revenir vers l’entrée A comme demandé. En revanche, si elle ne connaît pas le mot, elle serait coincée derrière la porte si Victor lui demande de ressortir par le côté opposé à celui par lequel elle est entrée.

Peggy ressort finalement du côté demandé par Victor (ici la sortie A), prouvant ainsi qu’elle a pu franchir la porte secrète à l’intérieur de la grotte. Victor s’exclame « OK » : il est convaincu que Peggy connaît bien le mot magique, sans que Peggy ait eu besoin de le lui révéler. En répétant cette expérience plusieurs fois avec des choix aléatoires de la part de Victor, la confiance de celui-ci grandit à chaque succès de Peggy. Après de nombreux tests, la probabilité pour que Peggy ait pu le tromper sans le mot devient négligeable. Elle a donc démontré son savoir sans divulguer le secret !
Dans cette histoire, on voit bien les trois propriétés du Zero-Knowledge Proof à l’œuvre. Si Peggy connaît le mot (proposition vraie) et suit le protocole, Victor finit par être convaincu (complétude). Si Peggy ne connaissait pas le mot (proposition fausse), elle aurait tôt ou tard échoué à sortir du bon côté et Victor l’aurait démasquée (solidité). Surtout, Victor n’a jamais entendu le mot secret en question : tout ce qu’il a appris, c’est que Peggy semble bien le connaître (zéro connaissance). Cet exemple simple illustre comment, grâce à un protocole astucieux, on peut prouver qu’on sait quelque chose sans révéler ce que c’est. Bien entendu, les Zero-Knowledge Proofs informatiques reposent sur des mathématiques plus complexes que des portes de grotte, mais le principe reste le même.
ZKP et blockchain : vers la confidentialité sans sacrifier la transparence
Les blockchains publiques (Bitcoin, Ethereum, etc.) sont réputées pour leur transparence : toutes les transactions sont enregistrées de manière visible par tous. Cette transparence renforce la confiance et la sécurité, on peut vérifier ce qui se passe, mais elle pose un problème majeur de vie privée. En effet, il devient délicat d’utiliser une blockchain pour des transactions confidentielles, car n’importe quel observateur peut suivre les montants et les destinataires. C’est ici que les Zero-Knowledge Proofs apportent une révolution : ils permettent de vérifier et valider des transactions sans en révéler les détails.
Prenons l’exemple de la cryptomonnaie Zcash, pionnière en la matière. Zcash utilise des preuves zk-SNARK pour ses transactions protégées. Grâce à ces preuves, les nœuds du réseau peuvent vérifier qu’une transaction est valide sans connaître ni le montant envoyé, ni les adresses impliquées. La transaction reste confidentielle, tout en étant garantie correcte vis-à-vis du protocole. Ainsi, Zcash résout en partie le dilemme transparence vs vie privée : on conserve une blockchain intègre et vérifiable, mais les données financières sensibles des utilisateurs restent privées. Zcash a été la première cryptomonnaie à implémenter cette prouesse en 2016, et d’autres projets ont suivi (PivX, Mina Protocol, etc.).
Au-delà des cryptos centrées sur l’anonymat, les ZKP trouvent aussi leur utilité dans les blockchains classiques. Par exemple, Ethereum explore activement ces techniques pour améliorer la confidentialité de certaines applications décentralisées (contrats intelligents privés, échanges décentralisés confidentiels, etc.), ainsi que pour la scalabilité. Des solutions de seconde couche nommées ZK-Rollups regroupent des centaines de transactions hors de la chaîne et publient ensuite une preuve cryptographique unique sur la blockchain principale, preuve qui atteste que toutes ces transactions off-chain sont. Le résultat ? Beaucoup moins de données à enregistrer sur la chaîne publique, donc des frais réduits et un réseau plus rapide, sans compromettre la sécurité ou la transparence globale. Le protocole zkSync sur Ethereum, par exemple, utilise ce principe pour offrir des paiements rapides à faible coût en ne diffusant que des preuves plutôt que chaque transaction individuelle. On le voit, les Zero-Knowledge Proofs deviennent un outil indispensable pour concilier les exigences de transparence des registres distribués avec le besoin croissant de confidentialité des utilisateurs.
Des usages concrets qui transforment la donne
Les Zero-Knowledge Proofs sont un sujet pointu, mais leurs applications concrètes commencent à fleurir dans de nombreux domaines. En voici quelques exemples marquants qui montrent comment les ZKP révolutionnent la confidentialité et la sécurité au quotidien :
- Transactions financières confidentielles : comme évoqué, des cryptomonnaies comme Zcash utilisent les ZKP pour des transactions anonymes où seuls les participants connaissent les détails. Même dans des contextes bancaires ou d’échanges, on peut imaginer utiliser des preuves à divulgation nulle pour prouver qu’une transaction est autorisée (solde suffisant, identité validée) sans révéler les montants ni les soldes exacts. Cela permettrait des paiements privés ou des échanges confidentiels sur blockchain publique, résolvant la quadrature du cercle entre conformité et secret bancaire.
- Authentification sans mot de passe : les ZKP permettent d’envisager des systèmes de connexion où vous prouvez que vous connaissez votre mot de passe sans jamais l’envoyer au serveur. Par exemple, lors de la connexion, votre appareil peut générer une preuve cryptographique à partir d’une version chiffrée de votre mot de passe, et le serveur vérifie juste cette preuve. Ainsi, le mot de passe en clair ne circule pas sur le réseau, éliminant le risque qu’il soit intercepté. Si un pirate espionne la communication, il ne récupère qu’une preuve inutilisable pour lui. Cette approche renforce grandement la sécurité : on estime que près de 80 % des cyberattaques exploitent des mots de passe compromis d’une façon ou d’une autre. Avec l’authentification zéro connaissance, même une base de données piratée ne révélerait aucun mot de passe exploitable. Des protocoles d’authentification et d’autorisation utilisent déjà ce principe pour valider votre identité sans compromettre votre vie privée. On peut aussi prouver qu’on possède une clé privée (d’un compte crypto, par ex.) sans la révéler, ce qui renforce la sécurité des transactions en ligne.
- Identité numérique et vérifications d’âge ou de statut : les ZKP ouvrent la voie à des vérifications d’identité sélectives. Par exemple, prouver que vous êtes majeur sans montrer votre carte d’identité (et donc sans révéler votre nom, adresse, date de naissance exacte, etc.). Ou encore, prouver que vous avez un permis de conduire valide sans dévoiler d’autres informations personnelles. Ceci est extrêmement utile pour la protection des données personnelles : seules les informations strictement nécessaires sont confirmées (par ex. « oui, cette personne a plus de 18 ans »), rien de plus. Des startups et projets blockchain travaillent sur des identités décentralisées où chaque attribut (âge, nationalité, diplôme…) peut être vérifié par une preuve cryptographique plutôt que par un document divulguant tout un tas de détails. À l’heure où la réglementation sur la vie privée se renforce, ces solutions basées sur le zero-knowledge pourraient devenir la norme pour les contrôles en ligne (KYC, vérification d’identité, etc.), évitant de stocker des photocopies de documents sensibles un peu partout.
- Audits et conformité sans fuite d’informations : dans le monde de l’entreprise ou de la finance, les ZKP peuvent permettre de réaliser des audits tout en gardant les données confidentielles. Par exemple, une entreprise pourrait prouver à un auditeur qu’elle respecte certaines contraintes (ratios financiers, critères ESG, etc.) sans dévoiler l’entièreté de ses livres de comptes. De même, une plateforme décentralisée pourrait prouver qu’elle est solvable avec une preuve de réserves sans révéler toutes les adresses et montants de ses portefeuilles publics. On obtient ainsi un niveau de transparence suffisant pour la confiance, mais sans exposer d’informations stratégiques ou personnelles. On parle parfois de vérification sans connaissance dans le cadre d’audits qui garantissent l’intégrité d’un processus sans en exposer les données internes.
- Protection des données sensibles (médical, fichiers, etc.) : le partage de données médicales (ce qui peut nous intéresser en tant que médecin) ou de documents confidentiels pourrait grandement bénéficier des Zero-Knowledge Proofs. Imaginons une étude médicale multi-hôpitaux : chaque hôpital pourrait fournir une preuve que ses résultats satisfont les critères de l’étude, sans devoir partager les dossiers patients bruts avec les autres. Chacun pourrait vérifier la cohérence de l’ensemble sans jamais accéder aux données privées des patients. De même, pour le stockage et le partage de fichiers chiffrés, on peut prouver qu’un fichier possède telle caractéristique ou tel mot-clé (pour une recherche par exemple) sans dévoiler le contenu du fichier. On commence à voir émerger des applications où deux parties peuvent échanger une information prouvée sans se la dire explicitement – un peu comme deux espions qui se feraient mutuellement confiance grâce à un tiers mathématique infaillible.
Ces cas d’usage ne sont que le début. À mesure que la technologie mûrit, on peut imaginer des scénarios encore plus ambitieux. Par exemple, dans le domaine du vote électronique, on entrevoit la possibilité de réaliser des élections en ligne où chaque vote est comptabilisé de manière vérifiable sur une blockchain, tout en garantissant le secret du vote grâce aux ZKP. On pourrait ainsi prouver qu’un bulletin a été pris en compte sans révéler pour qui il a voté, assurant à la fois transparence du décompte et confidentialité des électeurs.
Conclusion : une révolution discrète mais déterminante
Les preuves à divulgation nulle de connaissance (Zero-Knowledge Proofs) sont en train de changer la façon dont on envisage la sécurité et la confidentialité sur Internet et dans la blockchain. Elles offrent une réponse élégante à un problème jusqu’ici insoluble : comment avoir confiance dans la véracité d’une information sans accéder à cette information. Grâce aux ZKP, il devient possible de bâtir des systèmes plus respectueux de la vie privée sans renoncer à la transparence ou à la vérifiabilité. Dans l’univers des cryptomonnaies et des blockchains, ces techniques jouent déjà un rôle clé pour permettre des transactions anonymes, des identités numériques protégées et même l’amélioration des performances des réseaux.
En révolutionnant la confidentialité, les Zero-Knowledge Proofs ouvrent la voie à une multitude d’innovations. Que ce soit pour des cryptos plus privées, des services en ligne plus sécurisés ou de nouvelles applications encore inimaginables, il est clair que nous n’avons pas fini d’entendre parler des preuves à divulgation nulle de connaissance. Ce concept autrefois ésotérique est en passe de devenir un pilier de la cryptographie blockchain et de la protection de la vie privée à l’ère du numérique – une révolution en toute discrétion, mais aux implications gigantesques.