La preuve à connaissance nulle (ZKP) est une technologie cryptographique proposée pour la première fois par S. Goldwasser, S. Micali et C. Rackoff au début des années 1980 dans un article intitulé The Knowledge Complexity Of Interactive Proof Systems (La complexité de la connaissance des systèmes de preuve interactifs). Dans ce document, il a été conceptualisé comme un modèle théorique permettant d'aborder le problème de la vérification des énoncés mathématiques sans révéler les preuves. Ce concept a attiré l'attention de la communauté universitaire car il a remis en question les limites des techniques de cryptage traditionnelles et a fourni une nouvelle approche pour le traitement des informations sensibles.
Au fil du temps, le ZKP est passé d'un concept théorique abstrait à des protocoles concrets pouvant être intégrés dans diverses applications. En 2010, Groth a publié un article intitulé Short Pairing-based Non-interactive Zero-Knowledge Arguments, qui est devenu un travail fondateur dans le développement de zk-SNARK, une solution importante dans ZKP. L'application pratique la plus importante du ZKP est le système de preuve à connaissance nulle utilisé par Z-cash en 2015, qui a permis de protéger la confidentialité des transactions et des montants. Par la suite, zk-SNARK a été combiné à des contrats intelligents, ce qui a permis d'élargir la gamme d'applications.
Les principes que le ZKP traditionnel doit respecter sont les suivants :
Le principe du ZKP peut être compris à l'aide d'un exemple simple : Si je dois prouver à A que j'ai le numéro de téléphone de B, je n'ai pas besoin de lui communiquer directement ce numéro. Au lieu de cela, je peux composer directement le numéro de téléphone de B et une fois que l'appel est connecté, il peut prouver que j'ai bien le numéro de téléphone de B. Cette procédure ne divulgue pas les informations relatives au numéro de B.
C'est sur cette base que zk-SNARK a été mis à niveau, avec les caractéristiques suivantes :
Dans son article, Groth a proposé une méthode de preuve non interactive sans connaissance basée sur les appariements qui transforme un problème de calcul en un programme arithmétique quadratique (PAQ), puis construit une preuve efficace à l'aide de la cryptographie à courbe elliptique et de fonctions de hachage. Les modèles ultérieurs de zk-SNARK comportent généralement quatre étapes :
Pour mieux comprendre, prenons un exemple simple : Supposons que vous disposiez d'une carte au trésor qui vous guide jusqu'à l'emplacement exact du trésor enterré. Vous voulez prouver à quelqu'un que vous connaissez l'emplacement du trésor sans révéler le contenu de la carte ou l'emplacement réel du trésor. Si vous utilisez la technologie zk-SNARK, vous devrez créer un puzzle complexe de la carte au trésor. Vous sélectionnez une petite pièce du puzzle (une preuve) et la montrez à la personne, ce qui la convainc que vous savez comment le puzzle complet s'emboîte, c'est-à-dire l'emplacement du trésor, sans avoir vu l'ensemble du puzzle. Pour ce faire, vous devez toutefois obtenir un marquage spécial auprès d'une imprimerie de confiance, qui constitue la preuve de l'authenticité de votre pièce de puzzle.
L'approche traditionnelle des preuves à connaissance nulle fait appel à des méthodes de preuve interactives, dans lesquelles un prouveur pose à plusieurs reprises des questions "oui ou non ?" à un vérificateur jusqu'à ce qu'il obtienne une réponse correcte. Ce processus est inefficace. Cependant, zk-SNARK élimine la nécessité d'interactions répétées en obtenant un SIR d'un tiers de confiance. Tous les prouveurs peuvent directement comparer les SIR pour déterminer leur véracité. Cela améliore considérablement l'efficacité des preuves à connaissance nulle.
En outre, zk-SNARK offre les avantages suivants :
La première application de zk-SNARK est Zcash, qui permet aux utilisateurs d'effectuer des transactions totalement anonymes en dissimulant des informations telles que les expéditeurs, les destinataires et les montants à l'aide de zk-SNARK. Dans l'espace Web3 actuel, la technologie zk-SNARK joue un rôle important dans l'évolutivité de la blockchain et la gestion des réserves de change.
En raison du mécanisme de consensus et des exigences de sécurité de la blockchain, son débit et son efficacité sont fortement limités. Pour résoudre ce problème, une solution courante consiste à utiliser la technologie Layer2, qui construit une couche supplémentaire au-dessus de la blockchain pour migrer un grand nombre de transactions ou de calculs de la chaîne principale (Layer1) vers la Layer2, améliorant ainsi les performances et la facilité d'utilisation du système.
zk-SNARK joue un rôle important dans cette solution, car il peut comprimer les transactions ou les calculs de la couche 2 en une preuve petite et rapide, qui est ensuite soumise à la vérification de la chaîne principale, garantissant l'exactitude et la cohérence de la couche 2. Il existe actuellement deux solutions Layer2 courantes basées sur zk-SNARK : ZK-rollup et Validium.
En raison de la volatilité et de l'incertitude du marché des crypto-monnaies, de nombreuses bourses doivent détenir un certain montant de fonds de réserve pour faire face à d'éventuels risques ou demandes. Cependant, ces fonds de réserve manquent souvent de transparence et de fiabilité, ce qui laisse les utilisateurs dans l'incertitude quant à savoir si la bourse dispose réellement de fonds de réserve suffisants pour protéger leurs actifs.
zk-SNARK peut apporter une solution à cet égard en permettant aux bourses de prouver aux utilisateurs ou aux organismes de réglementation qu'elles possèdent une quantité et une valeur adéquates de fonds de réserve sans révéler les détails ou la localisation d'actifs spécifiques.
Un exemple typique est Gate.io, qui utilise une combinaison de zk-SNARK et d'arbres de Merkle. Ils cryptent les données des utilisateurs et génèrent des preuves des fonds de réserve de 100 jetons différents à l'aide de circuits contraints pour démontrer leur capacité de solvabilité à 100 %.
Source : https://www.gate.io/proof-of-reserves
Pour en savoir plus : Comment zk-SNARK améliore la preuve de réserves de Gate.io
Outre les applications Web3, zk-SNARK peut également être utilisé dans des domaines non liés à la blockchain, comme par exemple :
Dans la section précédente, nous avons présenté les principes techniques de zk-SNARK, qui indiquent que zk-SNARK améliore l'efficacité de la preuve en trouvant un tiers de confiance pour générer des CRS. Toutefois, cela entraîne également certaines limitations et difficultés inhérentes à zk-SNARK.
En résumé, il existe plusieurs approches pour remédier aux limites inhérentes à zk-SNARK.
zk-SNARK, en tant que technologie cryptographique innovante, a de vastes scénarios d'application future, en particulier dans le domaine de la protection de la vie privée :
La technologie zk-SNARK représente une avancée significative dans les domaines de la protection de la vie privée et de la vérification cryptée. Elle est non seulement prometteuse en offrant de solides garanties de confidentialité, mais aussi pratique en améliorant l'évolutivité de la blockchain et de diverses autres applications. Malgré l'existence de défis et de limites techniques, grâce à la recherche et à l'innovation continues, nous nous attendons à ce que zk-SNARK continue d'évoluer, d'optimiser les systèmes existants et d'inspirer de nouveaux modèles d'application pour faire progresser la protection de la vie privée et la technologie de cryptage. Avec la maturité de la technologie et l'importance croissante accordée à la confidentialité des données dans la société, zk-SNARK a le potentiel de devenir un outil indispensable à l'ère numérique, en permettant aux utilisateurs de mieux contrôler leurs informations et en promouvant des interactions numériques sûres et transparentes.
La preuve à connaissance nulle (ZKP) est une technologie cryptographique proposée pour la première fois par S. Goldwasser, S. Micali et C. Rackoff au début des années 1980 dans un article intitulé The Knowledge Complexity Of Interactive Proof Systems (La complexité de la connaissance des systèmes de preuve interactifs). Dans ce document, il a été conceptualisé comme un modèle théorique permettant d'aborder le problème de la vérification des énoncés mathématiques sans révéler les preuves. Ce concept a attiré l'attention de la communauté universitaire car il a remis en question les limites des techniques de cryptage traditionnelles et a fourni une nouvelle approche pour le traitement des informations sensibles.
Au fil du temps, le ZKP est passé d'un concept théorique abstrait à des protocoles concrets pouvant être intégrés dans diverses applications. En 2010, Groth a publié un article intitulé Short Pairing-based Non-interactive Zero-Knowledge Arguments, qui est devenu un travail fondateur dans le développement de zk-SNARK, une solution importante dans ZKP. L'application pratique la plus importante du ZKP est le système de preuve à connaissance nulle utilisé par Z-cash en 2015, qui a permis de protéger la confidentialité des transactions et des montants. Par la suite, zk-SNARK a été combiné à des contrats intelligents, ce qui a permis d'élargir la gamme d'applications.
Les principes que le ZKP traditionnel doit respecter sont les suivants :
Le principe du ZKP peut être compris à l'aide d'un exemple simple : Si je dois prouver à A que j'ai le numéro de téléphone de B, je n'ai pas besoin de lui communiquer directement ce numéro. Au lieu de cela, je peux composer directement le numéro de téléphone de B et une fois que l'appel est connecté, il peut prouver que j'ai bien le numéro de téléphone de B. Cette procédure ne divulgue pas les informations relatives au numéro de B.
C'est sur cette base que zk-SNARK a été mis à niveau, avec les caractéristiques suivantes :
Dans son article, Groth a proposé une méthode de preuve non interactive sans connaissance basée sur les appariements qui transforme un problème de calcul en un programme arithmétique quadratique (PAQ), puis construit une preuve efficace à l'aide de la cryptographie à courbe elliptique et de fonctions de hachage. Les modèles ultérieurs de zk-SNARK comportent généralement quatre étapes :
Pour mieux comprendre, prenons un exemple simple : Supposons que vous disposiez d'une carte au trésor qui vous guide jusqu'à l'emplacement exact du trésor enterré. Vous voulez prouver à quelqu'un que vous connaissez l'emplacement du trésor sans révéler le contenu de la carte ou l'emplacement réel du trésor. Si vous utilisez la technologie zk-SNARK, vous devrez créer un puzzle complexe de la carte au trésor. Vous sélectionnez une petite pièce du puzzle (une preuve) et la montrez à la personne, ce qui la convainc que vous savez comment le puzzle complet s'emboîte, c'est-à-dire l'emplacement du trésor, sans avoir vu l'ensemble du puzzle. Pour ce faire, vous devez toutefois obtenir un marquage spécial auprès d'une imprimerie de confiance, qui constitue la preuve de l'authenticité de votre pièce de puzzle.
L'approche traditionnelle des preuves à connaissance nulle fait appel à des méthodes de preuve interactives, dans lesquelles un prouveur pose à plusieurs reprises des questions "oui ou non ?" à un vérificateur jusqu'à ce qu'il obtienne une réponse correcte. Ce processus est inefficace. Cependant, zk-SNARK élimine la nécessité d'interactions répétées en obtenant un SIR d'un tiers de confiance. Tous les prouveurs peuvent directement comparer les SIR pour déterminer leur véracité. Cela améliore considérablement l'efficacité des preuves à connaissance nulle.
En outre, zk-SNARK offre les avantages suivants :
La première application de zk-SNARK est Zcash, qui permet aux utilisateurs d'effectuer des transactions totalement anonymes en dissimulant des informations telles que les expéditeurs, les destinataires et les montants à l'aide de zk-SNARK. Dans l'espace Web3 actuel, la technologie zk-SNARK joue un rôle important dans l'évolutivité de la blockchain et la gestion des réserves de change.
En raison du mécanisme de consensus et des exigences de sécurité de la blockchain, son débit et son efficacité sont fortement limités. Pour résoudre ce problème, une solution courante consiste à utiliser la technologie Layer2, qui construit une couche supplémentaire au-dessus de la blockchain pour migrer un grand nombre de transactions ou de calculs de la chaîne principale (Layer1) vers la Layer2, améliorant ainsi les performances et la facilité d'utilisation du système.
zk-SNARK joue un rôle important dans cette solution, car il peut comprimer les transactions ou les calculs de la couche 2 en une preuve petite et rapide, qui est ensuite soumise à la vérification de la chaîne principale, garantissant l'exactitude et la cohérence de la couche 2. Il existe actuellement deux solutions Layer2 courantes basées sur zk-SNARK : ZK-rollup et Validium.
En raison de la volatilité et de l'incertitude du marché des crypto-monnaies, de nombreuses bourses doivent détenir un certain montant de fonds de réserve pour faire face à d'éventuels risques ou demandes. Cependant, ces fonds de réserve manquent souvent de transparence et de fiabilité, ce qui laisse les utilisateurs dans l'incertitude quant à savoir si la bourse dispose réellement de fonds de réserve suffisants pour protéger leurs actifs.
zk-SNARK peut apporter une solution à cet égard en permettant aux bourses de prouver aux utilisateurs ou aux organismes de réglementation qu'elles possèdent une quantité et une valeur adéquates de fonds de réserve sans révéler les détails ou la localisation d'actifs spécifiques.
Un exemple typique est Gate.io, qui utilise une combinaison de zk-SNARK et d'arbres de Merkle. Ils cryptent les données des utilisateurs et génèrent des preuves des fonds de réserve de 100 jetons différents à l'aide de circuits contraints pour démontrer leur capacité de solvabilité à 100 %.
Source : https://www.gate.io/proof-of-reserves
Pour en savoir plus : Comment zk-SNARK améliore la preuve de réserves de Gate.io
Outre les applications Web3, zk-SNARK peut également être utilisé dans des domaines non liés à la blockchain, comme par exemple :
Dans la section précédente, nous avons présenté les principes techniques de zk-SNARK, qui indiquent que zk-SNARK améliore l'efficacité de la preuve en trouvant un tiers de confiance pour générer des CRS. Toutefois, cela entraîne également certaines limitations et difficultés inhérentes à zk-SNARK.
En résumé, il existe plusieurs approches pour remédier aux limites inhérentes à zk-SNARK.
zk-SNARK, en tant que technologie cryptographique innovante, a de vastes scénarios d'application future, en particulier dans le domaine de la protection de la vie privée :
La technologie zk-SNARK représente une avancée significative dans les domaines de la protection de la vie privée et de la vérification cryptée. Elle est non seulement prometteuse en offrant de solides garanties de confidentialité, mais aussi pratique en améliorant l'évolutivité de la blockchain et de diverses autres applications. Malgré l'existence de défis et de limites techniques, grâce à la recherche et à l'innovation continues, nous nous attendons à ce que zk-SNARK continue d'évoluer, d'optimiser les systèmes existants et d'inspirer de nouveaux modèles d'application pour faire progresser la protection de la vie privée et la technologie de cryptage. Avec la maturité de la technologie et l'importance croissante accordée à la confidentialité des données dans la société, zk-SNARK a le potentiel de devenir un outil indispensable à l'ère numérique, en permettant aux utilisateurs de mieux contrôler leurs informations et en promouvant des interactions numériques sûres et transparentes.