zk-SNARK est un acronyme signifiant Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (argument succinct non interactif de connaissance à zéro connaissance). Cette preuve cryptographique permet à une partie de démontrer qu'elle détient certaines informations sans les révéler. Elle repose sur une clé secrète générée avant la transaction et est au cœur du protocole de la cryptomonnaie Zcash.
Pour les pionniers des cryptomonnaies, comme la communauté Bitcoin, la confidentialité était un objectif clé. Cependant, elle a souvent été reléguée au second plan au profit d'un système « sans confiance » assurant l'intégrité des transactions numériques.
Début 2010, les utilisateurs de Bitcoin pensaient leurs transactions anonymes, leurs identités hors ligne n'étant pas liées aux clés publiques. Pourtant, d'ici la fin de la décennie, analyses de données, piratages et enquêtes ont démontré la facilité de relier pseudonymes et identités réelles.
Face à ces limites, des développeurs ont créé des cryptomonnaies axées sur la confidentialité, dont Zcash, propulsé par zk-SNARK.
Un zk-SNARK exploite le concept de « preuve à connaissance zéro », inventé dans les années 1980. Il permet à deux parties de vérifier mutuellement la détention d'informations spécifiques sans les divulguer.
Contrairement aux preuves classiques – comme un mot de passe vérifié par un réseau qui en connaît le contenu –, une preuve à connaissance zéro prouve mathématiquement la validité sans révéler l'information. Cela renforce la confidentialité : sans stockage du secret, pas de risque de vol.
La mathématique sous-jacente des zk-SNARK est avancée, mais elle prouve non seulement l'existence d'une information, mais aussi sa connaissance par le prouveur. Chez Zcash, ces preuves se vérifient quasi instantanément, sans interaction entre prouveur et vérificateur.
Les zk-SNARK ne sont pas exempts de critiques. Accéder à la clé privée des paramètres initiaux permettrait de falsifier des preuves, contrefaisant des ZEC. Zcash mitige cela via un processus multi-parties élaboré.
Autre préoccupation : la « taxe des fondateurs » (20 % sur les blocs initiaux) pour rémunérer les développeurs, soupçonnée de permettre une création discrète de jetons, rendant l'offre exacte incertaine.
Depuis 2019, des améliorations visent à éliminer la configuration de confiance. L'équipe Suterusu propose zK-ConSNARK : sans confiance, compatible Bitcoin, avec une inflation minimale.
[]