BlockPulseNews
Définition

zk-SNARK : définition

Un zk-SNARK est un type de preuve à divulgation nulle de connaissance qui est très courte et rapide à vérifier, sans échange entre les parties. Beaucoup de constructions exigent une configuration initiale de confiance, unique ou universelle, mais pas toutes.

Thème : Confidentialité

zk-SNARK : comment ça marche ?

L'acronyme signifie Zero-Knowledge Succinct Non-interactive Argument of Knowledge. Succinct signifie que la preuve est petite et vérifiable rapidement, quelle que soit la complexité du calcul prouvé. Non-interactive signifie que le prouveur produit une preuve en une seule fois, sans dialogue avec le vérificateur. Argument of Knowledge signifie que le prouveur démontre qu'il connaît une information, par exemple une clé ou des données, sans la révéler si la propriété zero-knowledge est utilisée.

Les zk-SNARK ont été popularisés par Zcash pour les transactions confidentielles, puis largement adoptés par les ZK-rollups pour prouver la validité de lots de transactions. Des systèmes comme Groth16 demandent une cérémonie de configuration propre à chaque circuit, d'autres comme PLONK utilisent une configuration universelle réutilisable. Leur sécurité repose sur des hypothèses mathématiques, notamment liées aux courbes elliptiques, qui ne sont pas considérées comme résistantes aux futurs ordinateurs quantiques.

Un exemple concret

Imaginons qu'Alice veuille prouver à un contrat qu'elle fait partie d'une liste de membres autorisés, sans révéler laquelle de ses adresses y figure. Elle génère un zk-SNARK sur son ordinateur. Le contrat vérifie cette preuve de quelques centaines d'octets en une seule opération et lui accorde l'accès sans connaître son identité.

Les risques à connaître

Si les secrets générés lors d'une configuration de confiance n'ont pas été détruits, quelqu'un pourrait fabriquer de fausses preuves. Une erreur dans le circuit peut aussi rendre valide une preuve incorrecte. La génération de preuves est coûteuse en calcul.

À ne pas confondre avec

  • zk-STARK : Un zk-STARK n'a pas besoin de configuration de confiance et repose sur des fonctions de hachage, au prix de preuves nettement plus volumineuses.
  • Preuve à connaissance nulle : Bulletproofs : Les Bulletproofs sont une autre famille de preuves sans configuration de confiance, plus lentes à vérifier, et utilisées par exemple pour masquer des montants.

Questions fréquentes sur zk-SNARK

Qu'est-ce qu'une trusted setup dans un zk-SNARK ?

C'est une cérémonie qui génère les paramètres publics du système. Si les secrets temporaires utilisés ne sont pas détruits par au moins un participant, de fausses preuves deviennent possibles.

Tous les zk-SNARK rendent-ils les données confidentielles ?

Non. La propriété zero-knowledge est optionnelle dans la pratique ; de nombreux rollups utilisent des SNARK surtout pour leur compacité, avec des données publiques.

Dans le même thème : Confidentialité

Tous les termes du thème Confidentialité →

À lire

L'actualité : Confidentialité

Les derniers articles de BlockPulseNews sur ce sujet.

Approfondir avec l'Académie : Confidentialité & Traçabilité Un module gratuit, en leçons courtes et quiz, pour maîtriser ce thème pas à pas.
Découvrir le module

Les autres termes en Z

← Tout le lexique crypto de A à Z