La preuve à divulgation nulle, abrégée en ZKP, est une méthode novatrice pour prouver un fait sans divulguer d'informations privées. L'émergence de la preuve à divulgation nulle concerne l'une des choses les plus importantes à propos de nous, la protection des données de confidentialité. De nos jours, le ZKP est largement utilisé dans de nombreux projets de blockchain qui peuvent efficacement fournir un moyen d'authentifier l'utilisateur sans divulguer la vie privée de l'utilisateur dans un environnement public. Aujourd'hui, il existe de plus en plus de cas d'utilisation qui peuvent utiliser le ZKP pour authentifier les utilisateurs dans notre vie quotidienne. Par exemple, si nous voulons prouver qu'un étudiant a déjà réussi l'examen mais que nous ne voulons pas montrer la note réelle de l'examen. De même, lorsque nous souscrivons certaines polices d'assurance, nous voulons simplement montrer à la compagnie d'assurance que nous n'avons pas de cancer, mais nous ne voulons pas montrer plus de détails sur notre santé, et ainsi de suite.
En général, la preuve n'est pas la même que la preuve mathématique stricte qui utilise des axiomes et de la logique. La plupart des preuves ZKP sont basées sur la probabilité mathématique, ce qui signifie que le résultat peut être prouvé d'un point de vue statistique. Le vérificateur demandera aléatoirement au prouveur de fournir la preuve. Si le prouveur peut toujours fournir le bon résultat, après quelques fois, bien que la possibilité d'échec de la preuve ne soit pas nulle, elle est très proche de zéro. Donc, techniquement, cette petite chance d'échec peut être ignorée et la preuve est considérée comme réussie.
Considérons quelques exemples de preuve à divulgation nulle. Alice veut prouver à Bob qu'elle a la clé d'une pièce. Comment peut-elle le faire ? Bien sûr, elle peut donner à Bob la clé pour ouvrir la porte, prouvant ainsi qu'elle a la clé. Mais cela permettra à Bob de voir la clé. Si Alice a d'autres informations privées telles que son âge ou son adresse sur la clé, celles-ci seront également révélées à Bob. Que pouvons-nous faire pour permettre à Alice de prouver le fait sans montrer la clé à Bob ? Une solution possible pourrait être : Alice dira à Bob qu'elle peut prendre quelque chose dans la pièce que Bob connaît et le montrer à Bob, prouvant ainsi indirectement qu'elle a la clé.
Examinons une autre question. Alice a deux balles de couleur rouge et verte. Son ami Bob est daltonien et ne peut pas identifier les couleurs. Comment Alice peut-elle prouver à Bob que les deux balles ont des couleurs différentes ? Une solution pourrait être la suivante. Bob met les deux balles dans ses mains. À chaque tour, il peut choisir aléatoirement de changer ou non les balles dans ses mains sans laisser Alice voir l'action de changement. Ensuite, il demandera à Alice d'identifier s'il a échangé les balles. Comme Alice n'est pas daltonienne, elle peut correctement identifier la couleur des balles dans les mains de Bob. Après quelques tours, si Alice peut toujours répondre correctement, Bob saura que les deux balles ont des couleurs différentes car la possibilité d'échec est très faible.
Le troisième exemple de ZKP est la célèbre grotte d'Ali Baba. L'emplacement A et l'emplacement B se trouvent dans une grotte et sont séparés par une porte qui peut être ouverte avec des clés. Si Alice veut prouver à Bob qu'elle a la clé de la porte, que peut-elle faire pour compléter la preuve sans montrer la clé à Bob ? La solution possible serait : Alice peut choisir aléatoirement de se tenir à l'emplacement A ou à l'emplacement B, et Bob ne connaît pas sa position. Bob choisira aléatoirement un côté, soit A soit B, et demandera à Alice de sortir par cette grotte. Par exemple, si Alice se trouve à l'emplacement A et que Bob lui demande de sortir par le côté B, elle devra utiliser la clé pour ouvrir la porte. Après quelques tours, Bob croira qu'Alice a la clé de la porte, et Alice n'a pas besoin de montrer la clé à Bob.
Attribution :