Preuves sans connaissance
Une preuve à connaissance nulle, parfois aussi appelée protocole ZK, est une méthode de vérification qui a lieu entre un prouveur et un vérificateur. Dans un système de preuve à connaissance nulle, le démonstrateur est capable de prouver au vérificateur qu'il a la connaissance d'une information particulière (comme la solution d'une équation mathématique) sans révéler l'information elle-même. Ces systèmes de preuve peuvent être utilisés par les cryptographes modernes pour fournir des niveaux accrus de confidentialité et de sécurité.
Le concept d'une preuve à connaissance nulle a été décrit pour la première fois dans un article du MIT de 1985, publié par Shafi Goldwasser et Silvio Micali. Ils ont démontré qu'il était possible de prouver certaines propriétés d'un nombre sans divulguer le nombre ou toute information supplémentaire à son sujet. Cet article a également introduit la découverte mathématiquement significative selon laquelle les interactions entre un prouveur et un vérificateur pourraient réduire la quantité d'informations nécessaires pour prouver un théorème donné.
Une épreuve ZK doit répondre à deux exigences de base appelées exhaustivité et justesse. L'exhaustivité fait référence à la capacité du démonstrateur à démontrer sa connaissance des informations pertinentes avec un degré élevé d'exactitude probable. Pour que la preuve soit solide, le vérificateur doit être en mesure de déterminer de manière fiable si oui ou non le prouveur est effectivement en possession de l'information. Enfin, pour être véritablement à connaissance nulle, la preuve doit être à la fois complète et correcte sans que l'information en question ne soit jamais communiquée entre le prouveur et le vérificateur.
Les preuves à connaissance nulle sont principalement utilisées pour les applications dans lesquelles la confidentialité et la sécurité sont essentielles. Les systèmes d'authentification, par exemple, peuvent utiliser des preuves ZK pour vérifier les informations d'identification ou les identités sans les divulguer directement. À titre d'exemple simple, il peut être utilisé pour vérifier qu'une personne possède un mot de passe pour accéder à un système informatique sans qu'il soit nécessaire de divulguer le mot de passe.
Un cas d'utilisation important dans le monde réel des preuves à connaissance nulle se trouve dans le monde de la crypto-monnaie et de la technologie blockchain. En utilisant un type de preuve connu sous le nom d'argument de connaissance succinct non interactif à connaissance nulle (zk-SNARK), les crypto-monnaies axées sur la confidentialité telles que Zcash sont en mesure d'offrir des transactions blockchain avec des niveaux de confidentialité accrus à leurs utilisateurs. Ethereum travaille également avec des preuves zk-SNARK depuis sa mise à jour Byzantium en 2017.