zk-SNARK : preuve innovante de non-connaissance et ses applications

Intermédiaire11/28/2023, 12:24:18 PM
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.

Description

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.

Principes techniques de zk-SNARK

Les principes que le ZKP traditionnel doit respecter sont les suivants :

  • Complétude : Si une déclaration est vraie, un prouveur honnête peut convaincre le vérificateur de sa véracité.
  • Solidité : Si une déclaration est fausse, tout prouveur frauduleux n'aura qu'une faible probabilité de tromper le vérificateur en lui faisant croire que la déclaration est vraie.
  • Connaissance nulle : Si une déclaration est vraie, le vérificateur n'apprendra aucune information supplémentaire autre que le fait que la déclaration est vraie. En d'autres termes, le processus de vérification ne révèle aucune information pouvant être utilisée pour construire une preuve.

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 :

  • Connaissance nulle : Le vérificateur ne peut obtenir aucune information utile à partir de la preuve.
  • Concise : La preuve est de petite taille (généralement quelques dizaines d'octets seulement) et le temps de vérification est court (généralement quelques millisecondes seulement).
  • Non-interactif : Le prouveur ne doit envoyer la preuve au vérificateur qu'une seule fois, sans autre communication.
  • Paramètres de confiance : Le prouveur et le vérificateur doivent utiliser une chaîne de référence commune (CRS) générée par un tiers de confiance. Le SIR peut contenir des informations sensibles qui, en cas de fuite ou d'altération, peuvent menacer la sécurité du système.

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 :

  • Mise en place : Effectuée par un tiers de confiance, elle génère un SIR qui comprend une clé de preuve (pk) pour générer des preuves et une clé de vérification (vk) pour vérifier les preuves. Ce processus ne doit être exécuté qu'une seule fois et le SIR peut être réutilisé plusieurs fois.
  • Encodage du problème : Le problème de calcul f(x) = y est transformé en une forme QAP A(x)-B(x) = C(x)-Z(x), où A(x), B(x), C(x) sont des polynômes déterminés par la structure du circuit de f, Z(x) est un polynôme fixe, x est un point choisi au hasard et y est la sortie de f. Cette étape peut être réalisée par le prouveur ou le vérificateur, ou peut être effectuée à l'avance par une tierce partie.
  • Génération de preuves : Le prouveur utilise pk, x et l'entrée w de f pour générer une preuve π prouvant qu'il connaît un w qui satisfait f(w) = y, sans révéler la valeur spécifique de w. Ce processus implique des calculs polynomiaux, des opérations sur la courbe elliptique et des opérations sur la fonction de hachage, générant finalement un π composé de plusieurs points de la courbe elliptique et d'une valeur de hachage.
  • Vérification de la preuve : Effectuée par le vérificateur, elle utilise vk, x, y et π pour vérifier si le prouveur connaît effectivement un w qui satisfait à f(w) = y. Ce processus implique également des calculs polynomiaux, des opérations sur la courbe elliptique et des opérations sur la fonction de hachage, pour aboutir finalement à une valeur booléenne indiquant la validité de la preuve.

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.

Pourquoi avons-nous besoin de zk-SNARK ?

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 :

  • Protection de la vie privée : zk-SNARK permet à un prouveur de démontrer à un vérificateur qu'il connaît ou remplit certaines conditions sans révéler d'informations privées. Ceci est particulièrement utile dans les scénarios impliquant des données sensibles ou privées, comme l'authentification de l'identité, le vote anonyme et les transactions privées.
  • Évolutivité : zk-SNARK compresse les problèmes de calcul complexes en preuves petites et rapides, ce qui réduit la charge de calcul et les besoins de stockage des vérificateurs. Cela est bénéfique dans les scénarios qui nécessitent une vérification et un stockage efficaces de grandes quantités de données, tels que l'informatique en nuage, l'évolutivité de la blockchain et l'informatique vérifiable.
  • Sécurité : zk-SNARK est basé sur des problèmes mathématiques difficiles, tels que le problème du logarithme discret et le problème du mappage bilinéaire, qui offrent une grande sécurité. Dans l'hypothèse d'un calcul non quantique, à moins que le tiers de confiance ne fuie ou n'altère le SIR, il est impossible pour un prouveur de falsifier une preuve ou pour un vérificateur de falsifier un résultat de vérification.

Applications de zk-SNARK dans le monde réel

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.

Évolutivité de la blockchain

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.

  • ZK-rollup : Cette solution stocke toutes les données d'état sur la chaîne principale, mais utilise des preuves pour vérifier la validité des transitions d'état. Cela garantit la disponibilité et la sécurité des données de la couche 2, mais augmente la charge de stockage de la chaîne principale. Par exemple, zkSync stocke les données d'état sur la chaîne principale Ethereum et garantit la validité des transitions d'état grâce à des preuves à zéro connaissance. Parmi les projets similaires, citons Polygon zkEVM et Scroll.
  • Validium : Cette solution stocke toutes les données d'état sur Layer2 ou d'autres tiers de confiance, et utilise uniquement des preuves pour vérifier la validité des transitions d'état, en soumettant les preuves à la chaîne principale. Cela réduit la charge de stockage de la chaîne principale, mais peut diminuer la disponibilité et la sécurité des données de la couche 2. DeversiFi utilise la technologie Validium pour maintenir la vitesse et l'efficacité des transactions de la couche 2 tout en garantissant la confidentialité des données. Loopring propose un mode Validium pour alléger la pression de stockage sur la chaîne principale.

Fonds de réserve dans les échanges

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 :

  • Authentification de l'identité : zk-SNARK permet aux utilisateurs de prouver à des tiers qu'ils possèdent certains attributs d'identité ou certaines qualifications sans révéler d'informations personnelles, telles que l'âge, la nationalité, l'éducation, etc. Ceci est utile dans les scénarios qui nécessitent une authentification ou une autorisation de l'identité, tels que les achats en ligne, l'éducation en ligne, les signatures numériques, etc.
  • Vote électronique : zk-SNARK permet aux utilisateurs de prouver à des tiers leur participation à certaines activités de vote et leur conformité à des protocoles ou règles spécifiques, sans révéler le contenu ou les métadonnées du vote. Cela est utile dans les scénarios qui exigent la protection de la confidentialité et de la sécurité des votes, tels que les élections démocratiques, la gouvernance communautaire, la prise de décision publique, etc.

Limites et défis techniques

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.

  • Paramètres de confiance : zk-SNARK nécessite un SIR généré par un tiers de confiance, qui peut contenir des informations sensibles. En cas de fuite ou d'altération, il pourrait compromettre la sécurité du système. Pour résoudre ce problème, certains projets ont adopté l'approche du calcul multipartite (MPC) pour générer le SIR, où plusieurs participants contribuent conjointement au processus de génération et détruisent leurs informations secrètes. Cependant, cette approche reste confrontée à des défis tels que l'intégrité des participants, les coûts de communication et les difficultés de coordination.
  • Universalité : Actuellement, zk-SNARK ne peut être appliqué qu'à des problèmes de calcul spécifiques, tels que QAP ou R1CS, et ne peut être appliqué à des problèmes de calcul arbitraires. Pour remédier à cette limitation, certains projets ont exploré l'utilisation de circuits généraux (GC) ou de preuves récursives générales (GRS) pour étendre l'applicabilité de zk-SNARK. Toutefois, cette approche s'accompagne de compromis tels que l'augmentation de la taille de la preuve, la diminution de l'efficacité et l'augmentation de la complexité.
  • Vérifiabilité : Si zk-SNARK garantit que le prouveur ne divulgue aucune information privée, il ne garantit pas que le prouveur ne trichera pas ou ne trompera pas le vérificateur. Pour résoudre ce problème, certains projets ont introduit des fonctions aléatoires vérifiables (VRF) ou des fonctions de retard vérifiables (VDF) afin d'améliorer l'intégrité du prouveur. Toutefois, cette approche augmente également la complexité et les frais généraux du système.

En résumé, il existe plusieurs approches pour remédier aux limites inhérentes à zk-SNARK.

Scénarios d'application future

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 :

  • Contrats intelligents de confidentialité : zk-SNARK permet aux utilisateurs de prouver à un tiers qu'ils ont exécuté certains contrats intelligents et obtenu le résultat correct sans révéler la logique ou l'état du contrat. Ceci est particulièrement utile dans les scénarios impliquant des secrets commerciaux ou des règles sensibles, tels que la gestion de la chaîne d'approvisionnement, les demandes d'assurance, la protection des droits d'auteur, etc.1.
  • Calcul préservant la vie privée : zk-SNARK permet aux utilisateurs de prouver à un tiers qu'ils ont effectué certaines tâches de calcul et obtenu les bons résultats sans révéler aucune donnée d'entrée ou de sortie. Cela s'applique aux scénarios impliquant des données sensibles ou privées, comme le diagnostic médical, l'analyse de données, l'apprentissage automatique, etc.
  • Communication préservant la vie privée : zk-SNARK permet aux utilisateurs de prouver à un tiers qu'ils se sont engagés dans certaines activités de communication et qu'ils ont respecté certains protocoles ou règles sans révéler le contenu ou les métadonnées de la communication. Cela est utile dans les scénarios où la confidentialité ou la sécurité des communications doit être protégée, comme la messagerie instantanée, les réseaux sociaux, le courrier électronique, etc.

Conclusion

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.

Auteur : Wayne
Traduction effectuée par : Sonia
Examinateur(s): KOWEI、Piccolo、Elisa、Ashley He、Joyce
* Les informations ne sont pas destinées à être et ne constituent pas des conseils financiers ou toute autre recommandation de toute sorte offerte ou approuvée par Gate.io.
* Cet article ne peut être reproduit, transmis ou copié sans faire référence à Gate.io. Toute contravention constitue une violation de la loi sur le droit d'auteur et peut faire l'objet d'une action en justice.

zk-SNARK : preuve innovante de non-connaissance et ses applications

Intermédiaire11/28/2023, 12:24:18 PM
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.

Description

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.

Principes techniques de zk-SNARK

Les principes que le ZKP traditionnel doit respecter sont les suivants :

  • Complétude : Si une déclaration est vraie, un prouveur honnête peut convaincre le vérificateur de sa véracité.
  • Solidité : Si une déclaration est fausse, tout prouveur frauduleux n'aura qu'une faible probabilité de tromper le vérificateur en lui faisant croire que la déclaration est vraie.
  • Connaissance nulle : Si une déclaration est vraie, le vérificateur n'apprendra aucune information supplémentaire autre que le fait que la déclaration est vraie. En d'autres termes, le processus de vérification ne révèle aucune information pouvant être utilisée pour construire une preuve.

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 :

  • Connaissance nulle : Le vérificateur ne peut obtenir aucune information utile à partir de la preuve.
  • Concise : La preuve est de petite taille (généralement quelques dizaines d'octets seulement) et le temps de vérification est court (généralement quelques millisecondes seulement).
  • Non-interactif : Le prouveur ne doit envoyer la preuve au vérificateur qu'une seule fois, sans autre communication.
  • Paramètres de confiance : Le prouveur et le vérificateur doivent utiliser une chaîne de référence commune (CRS) générée par un tiers de confiance. Le SIR peut contenir des informations sensibles qui, en cas de fuite ou d'altération, peuvent menacer la sécurité du système.

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 :

  • Mise en place : Effectuée par un tiers de confiance, elle génère un SIR qui comprend une clé de preuve (pk) pour générer des preuves et une clé de vérification (vk) pour vérifier les preuves. Ce processus ne doit être exécuté qu'une seule fois et le SIR peut être réutilisé plusieurs fois.
  • Encodage du problème : Le problème de calcul f(x) = y est transformé en une forme QAP A(x)-B(x) = C(x)-Z(x), où A(x), B(x), C(x) sont des polynômes déterminés par la structure du circuit de f, Z(x) est un polynôme fixe, x est un point choisi au hasard et y est la sortie de f. Cette étape peut être réalisée par le prouveur ou le vérificateur, ou peut être effectuée à l'avance par une tierce partie.
  • Génération de preuves : Le prouveur utilise pk, x et l'entrée w de f pour générer une preuve π prouvant qu'il connaît un w qui satisfait f(w) = y, sans révéler la valeur spécifique de w. Ce processus implique des calculs polynomiaux, des opérations sur la courbe elliptique et des opérations sur la fonction de hachage, générant finalement un π composé de plusieurs points de la courbe elliptique et d'une valeur de hachage.
  • Vérification de la preuve : Effectuée par le vérificateur, elle utilise vk, x, y et π pour vérifier si le prouveur connaît effectivement un w qui satisfait à f(w) = y. Ce processus implique également des calculs polynomiaux, des opérations sur la courbe elliptique et des opérations sur la fonction de hachage, pour aboutir finalement à une valeur booléenne indiquant la validité de la preuve.

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.

Pourquoi avons-nous besoin de zk-SNARK ?

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 :

  • Protection de la vie privée : zk-SNARK permet à un prouveur de démontrer à un vérificateur qu'il connaît ou remplit certaines conditions sans révéler d'informations privées. Ceci est particulièrement utile dans les scénarios impliquant des données sensibles ou privées, comme l'authentification de l'identité, le vote anonyme et les transactions privées.
  • Évolutivité : zk-SNARK compresse les problèmes de calcul complexes en preuves petites et rapides, ce qui réduit la charge de calcul et les besoins de stockage des vérificateurs. Cela est bénéfique dans les scénarios qui nécessitent une vérification et un stockage efficaces de grandes quantités de données, tels que l'informatique en nuage, l'évolutivité de la blockchain et l'informatique vérifiable.
  • Sécurité : zk-SNARK est basé sur des problèmes mathématiques difficiles, tels que le problème du logarithme discret et le problème du mappage bilinéaire, qui offrent une grande sécurité. Dans l'hypothèse d'un calcul non quantique, à moins que le tiers de confiance ne fuie ou n'altère le SIR, il est impossible pour un prouveur de falsifier une preuve ou pour un vérificateur de falsifier un résultat de vérification.

Applications de zk-SNARK dans le monde réel

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.

Évolutivité de la blockchain

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.

  • ZK-rollup : Cette solution stocke toutes les données d'état sur la chaîne principale, mais utilise des preuves pour vérifier la validité des transitions d'état. Cela garantit la disponibilité et la sécurité des données de la couche 2, mais augmente la charge de stockage de la chaîne principale. Par exemple, zkSync stocke les données d'état sur la chaîne principale Ethereum et garantit la validité des transitions d'état grâce à des preuves à zéro connaissance. Parmi les projets similaires, citons Polygon zkEVM et Scroll.
  • Validium : Cette solution stocke toutes les données d'état sur Layer2 ou d'autres tiers de confiance, et utilise uniquement des preuves pour vérifier la validité des transitions d'état, en soumettant les preuves à la chaîne principale. Cela réduit la charge de stockage de la chaîne principale, mais peut diminuer la disponibilité et la sécurité des données de la couche 2. DeversiFi utilise la technologie Validium pour maintenir la vitesse et l'efficacité des transactions de la couche 2 tout en garantissant la confidentialité des données. Loopring propose un mode Validium pour alléger la pression de stockage sur la chaîne principale.

Fonds de réserve dans les échanges

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 :

  • Authentification de l'identité : zk-SNARK permet aux utilisateurs de prouver à des tiers qu'ils possèdent certains attributs d'identité ou certaines qualifications sans révéler d'informations personnelles, telles que l'âge, la nationalité, l'éducation, etc. Ceci est utile dans les scénarios qui nécessitent une authentification ou une autorisation de l'identité, tels que les achats en ligne, l'éducation en ligne, les signatures numériques, etc.
  • Vote électronique : zk-SNARK permet aux utilisateurs de prouver à des tiers leur participation à certaines activités de vote et leur conformité à des protocoles ou règles spécifiques, sans révéler le contenu ou les métadonnées du vote. Cela est utile dans les scénarios qui exigent la protection de la confidentialité et de la sécurité des votes, tels que les élections démocratiques, la gouvernance communautaire, la prise de décision publique, etc.

Limites et défis techniques

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.

  • Paramètres de confiance : zk-SNARK nécessite un SIR généré par un tiers de confiance, qui peut contenir des informations sensibles. En cas de fuite ou d'altération, il pourrait compromettre la sécurité du système. Pour résoudre ce problème, certains projets ont adopté l'approche du calcul multipartite (MPC) pour générer le SIR, où plusieurs participants contribuent conjointement au processus de génération et détruisent leurs informations secrètes. Cependant, cette approche reste confrontée à des défis tels que l'intégrité des participants, les coûts de communication et les difficultés de coordination.
  • Universalité : Actuellement, zk-SNARK ne peut être appliqué qu'à des problèmes de calcul spécifiques, tels que QAP ou R1CS, et ne peut être appliqué à des problèmes de calcul arbitraires. Pour remédier à cette limitation, certains projets ont exploré l'utilisation de circuits généraux (GC) ou de preuves récursives générales (GRS) pour étendre l'applicabilité de zk-SNARK. Toutefois, cette approche s'accompagne de compromis tels que l'augmentation de la taille de la preuve, la diminution de l'efficacité et l'augmentation de la complexité.
  • Vérifiabilité : Si zk-SNARK garantit que le prouveur ne divulgue aucune information privée, il ne garantit pas que le prouveur ne trichera pas ou ne trompera pas le vérificateur. Pour résoudre ce problème, certains projets ont introduit des fonctions aléatoires vérifiables (VRF) ou des fonctions de retard vérifiables (VDF) afin d'améliorer l'intégrité du prouveur. Toutefois, cette approche augmente également la complexité et les frais généraux du système.

En résumé, il existe plusieurs approches pour remédier aux limites inhérentes à zk-SNARK.

Scénarios d'application future

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 :

  • Contrats intelligents de confidentialité : zk-SNARK permet aux utilisateurs de prouver à un tiers qu'ils ont exécuté certains contrats intelligents et obtenu le résultat correct sans révéler la logique ou l'état du contrat. Ceci est particulièrement utile dans les scénarios impliquant des secrets commerciaux ou des règles sensibles, tels que la gestion de la chaîne d'approvisionnement, les demandes d'assurance, la protection des droits d'auteur, etc.1.
  • Calcul préservant la vie privée : zk-SNARK permet aux utilisateurs de prouver à un tiers qu'ils ont effectué certaines tâches de calcul et obtenu les bons résultats sans révéler aucune donnée d'entrée ou de sortie. Cela s'applique aux scénarios impliquant des données sensibles ou privées, comme le diagnostic médical, l'analyse de données, l'apprentissage automatique, etc.
  • Communication préservant la vie privée : zk-SNARK permet aux utilisateurs de prouver à un tiers qu'ils se sont engagés dans certaines activités de communication et qu'ils ont respecté certains protocoles ou règles sans révéler le contenu ou les métadonnées de la communication. Cela est utile dans les scénarios où la confidentialité ou la sécurité des communications doit être protégée, comme la messagerie instantanée, les réseaux sociaux, le courrier électronique, etc.

Conclusion

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.

Auteur : Wayne
Traduction effectuée par : Sonia
Examinateur(s): KOWEI、Piccolo、Elisa、Ashley He、Joyce
* Les informations ne sont pas destinées à être et ne constituent pas des conseils financiers ou toute autre recommandation de toute sorte offerte ou approuvée par Gate.io.
* Cet article ne peut être reproduit, transmis ou copié sans faire référence à Gate.io. Toute contravention constitue une violation de la loi sur le droit d'auteur et peut faire l'objet d'une action en justice.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!