La preuve sans connaissance est une méthode de cryptographie extrêmement intelligente qui permet au prouveur de prouver au vérificateur qu'il connaît effectivement l'information sans révéler la véritable information.

Exemple de diagramme de fonctionnement d'une technologie à preuve de connaissance nulle

Ce concept technique a été proposé pour la première fois par des chercheurs du MIT à la fin des années 1980. Cependant, il a fallu attendre l’essor de la technologie blockchain ces dernières années pour que les preuves de connaissance nulle soient véritablement largement utilisées dans la pratique.

Cet article passera brièvement en revue l'historique du développement et les principes de base de la technologie de preuve sans connaissance.​

L’histoire du développement de la cryptographie peut être divisée en trois étapes : la période classique, la période moderne et la période moderne. La cryptographie classique est née dans le domaine militaire et s'est concentrée sur la manière de transmettre des informations de manière sûre et fiable. Le chiffre de Vigenère utilise plusieurs tables de chiffrement de substitution pour réaliser le chiffrement, ce qui augmente considérablement la difficulté de piratage. La cryptographie moderne est née de la théorie de l'information et a été transformée en une forme scientifique par Shannon et d'autres. L'introduction de l'algorithme RSA a marqué l'entrée dans l'ère de la cryptographie moderne et a résolu le problème de la transmission des clés.

L’introduction de la preuve à connaissance nulle a ouvert un nouveau chapitre dans la recherche en cryptographie moderne.

En 1985, Goldreich, Micali et Wigderson ont publié le protocole GBC, qui implémentait des preuves interactives à connaissance nulle. En 1991, Fiat et Shamir ont proposé une méthode permettant de convertir les preuves interactives à connaissance nulle en preuves non interactives. En 1994, le protocole PICCS a raccourci la longueur des preuves. Par la suite, différents types de preuves à connaissance nulle, tels que les SNARK et les STARK, possédaient chacun leurs propres caractéristiques. Avec l'avènement de la blockchain, ses applications se sont rapidement développées.

Les preuves à divulgation nulle de connaissance permettent au prouveur de démontrer au vérificateur qu'il possède l'information sans révéler la vérité. Le concept de base peut être illustré par un Sudoku. Alice, la prouveuse, crée un Sudoku pour Bob, le vérificateur, qui ne peut le résoudre. Pour prouver qu'elle connaît la réponse, Alice prépare 81 cartes papier numérotées de 1 à 9. Elle les dispose selon une matrice 9x9, les cartes problèmes face visible et les cartes réponses face cachée. Bob sélectionne ensuite au hasard une ligne ou une colonne à vérifier. Alice réorganise les cartes en fonction de la sélection de Bob, s'assurant ainsi que Bob peut vérifier que la ligne ou la colonne satisfait aux exigences du Sudoku. Ce processus se répète jusqu'à ce que Bob soit convaincu qu'Alice a la réponse.

Historiquement, la technologie de preuve à divulgation nulle de connaissance a évolué, passant de systèmes de preuve interactifs à des systèmes de preuve non interactifs. Les premiers systèmes de preuve nécessitaient plusieurs cycles de questions-réponses entre le prouveur et le vérificateur pour mener à bien le processus de preuve. Cette approche interactive était inefficace et peu pratique. Les chercheurs ont donc proposé des systèmes de preuve non interactifs, dans lesquels un tiers de confiance génère des paramètres de vérification à l'avance. Le prouveur n'a plus qu'à construire une preuve basée sur ces paramètres et à l'envoyer une seule fois au vérificateur, éliminant ainsi le besoin de multiples cycles d'interaction. Cela améliore considérablement l'efficacité.

Le protocole de preuve à divulgation nulle de connaissance le plus répandu actuellement est zkSNARK. Il sépare complètement la preuve et la vérification en aplatissant le code informatique, en introduisant un système de contraintes et en utilisant la cryptographie à courbe elliptique. Cela permet au vérificateur de vérifier que le prouveur a effectué correctement le calcul requis sans connaître la solution.

Diagramme conceptuel zkSNARK

zkSNARK a également donné naissance à une variété d'algorithmes différents en termes d'efficacité et de volume de données, tels que Sonic et Plonk. Grâce au développement de matériel spécialisé, le coût de calcul des preuves à divulgation nulle de connaissance devrait être considérablement réduit.

Diagramme conceptuel zk-STARK

Un autre protocole de preuve à divulgation nulle de connaissance est zk-STARK. Contrairement à zkSNARK, qui repose sur des hypothèses mathématiques spécifiques pour la sécurité, zk-STARK repose sur des fonctions de hachage cryptographiques, offrant une sécurité plus proche du déterminisme. Cependant, les preuves zk-STARK sont plus volumineuses et moins efficaces. Grâce à l'optimisation continue des algorithmes, zk-STARK devient de plus en plus pratique.

La technologie de preuve à connaissance nulle présente un intérêt considérable pour la protection des données privées. Elle a déjà été appliquée à de nombreux projets blockchain, tels que la cryptomonnaie privée Zcash et la solution de couche 2 zkRollup. Avec les progrès technologiques, les preuves à connaissance nulle offriront sans aucun doute de nouvelles possibilités au monde de la blockchain.

À l'avenir, les preuves à connaissance nulle devraient être utiles dans un nombre croissant de scénarios, tels que les transactions financières, les données médicales et l'identité numérique. Elles favoriseront également l'évolutivité de la blockchain et le développement d'architectures en couches. Les défis actuels incluent le besoin d'infrastructures fiables à grande échelle, l'efficacité et les obstacles à l'adoption. Grâce aux progrès réalisés dans le domaine du matériel spécialisé et de la normalisation des protocoles, les preuves à connaissance nulle devraient jouer un rôle encore plus important dans l'avenir de la blockchain.