Points clés
Une preuve à divulgation nulle permet à une partie de prouver à une autre partie qu’une affirmation est vraie, sans révéler de données sous-jacentes.
Les zk-SNARKs sont un type de protocole de preuve à divulgation nulle (zero-knowledge proof) utilisé en crypto pour vérifier des informations, comme des soldes de compte, sans révéler de détails privés.
Binance utilise des zk-SNARKs combinés à des arbres de Merkle pour permettre aux utilisateurs de vérifier que leurs soldes sont inclus dans la preuve totale de réserves, sans divulguer les données propres à chaque compte.
Au-delà des réserves d’un échange, les preuves ZK sont de plus en plus utilisées dans les ZK-rollups, la vérification d’identité et les systèmes de vote à travers l’écosystème blockchain.
Introduction
Les utilisateurs de blockchain apprécient à la fois la transparence et la confidentialité. Dans de nombreuses situations, ces deux objectifs semblent entrer en conflit : prouver qu’une chose est vraie nécessite souvent de révéler les détails qui la sous-tendent. Les preuves à divulgation nulle offrent un moyen de résoudre cette tension.
En utilisant des protocoles de preuve à divulgation nulle comme les zk-SNARKs en combinaison avec des structures de données cryptographiques telles que les arbres de Merkle, il est possible de prouver la validité d’une information sans divulguer l’information elle-même. Cet article explique comment ces outils fonctionnent et comment Binance les applique à la Proof of Reserves.
Qu’est-ce qu’une preuve à divulgation nulle ?
Une preuve à divulgation nulle permet à une partie (le prouveur) de convaincre une autre partie (le vérificateur) qu’une affirmation est vraie, sans partager aucune information sur le contenu de cette affirmation. Le concept est apparu pour la première fois dans un article académique de 1985 et est depuis devenu un élément fondamental de la cryptographie appliquée.
Une analogie simple : imaginez que vous connaissiez la combinaison d’un coffre verrouillé. Vous pouvez le prouver à un ami en ouvrant le coffre et en lisant la note qu’il a laissée à l’intérieur, puis en le refermant. Votre ami est maintenant convaincu que vous connaissez la combinaison, sans que vous ayez jamais dit ce qu’elle est.
Pour une explication technique plus approfondie, consultez l’article de l’Academy intitulé « Qu’est-ce qu’une preuve à divulgation nulle et quel impact sur la blockchain ? ».
Pourquoi les preuves à divulgation nulle sont-elles utiles ?
Les preuves ZK sont utiles dans toute situation où vous devez prouver une affirmation sans exposer de données sensibles. Dans les systèmes traditionnels, prouver que vous possédez un actif ou que vous détenez certaines informations nécessite souvent de partager l’information sous-jacente, ce qui crée des risques pour la confidentialité et la sécurité.
En crypto, les cas d’usage courants incluent :
Prouver la possession d’une clé privée sans la révéler.
Permettre à un échange de vérifier l’ensemble de ses réserves utilisateurs sans divulguer les soldes individuels des comptes.
Permettre des transactions blockchain évolutives via des ZK-rollups sans publier chaque transaction on-chain.
Ces preuves utilisent des algorithmes qui prennent des données en entrée et renvoient soit true soit false, sans divulguer aucun détail sur les données elles-mêmes.
Propriétés techniques des preuves à divulgation nulle
Une preuve à divulgation nulle valide doit satisfaire trois propriétés :
Completude. Si l’affirmation est vraie, un vérificateur honnête sera convaincu par la preuve.
Solidité (soundness). Si l’affirmation est fausse, aucun prouveur ne peut convaincre le vérificateur qu’elle est vraie.
À divulgation nulle (zero-knowledge). Si l’affirmation est vraie, le vérificateur n’apprend rien au-delà du fait qu’elle est vraie.
Qu’est-ce qu’un zk-SNARK ?
Un zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) est un type de protocole de preuve à divulgation nulle. Il est conçu pour être succinct (taille de preuve réduite), non interactif (pas d’échanges entre le prouveur et le vérificateur) et cryptographiquement solide.
Avec un zk-SNARK, un prouveur peut démontrer qu’il détient une valeur secrète, ou que le calcul a été effectué correctement, sans révéler quoi que ce soit sur les entrées. Dans le contexte d’une plateforme d’échange de crypto, cela signifie prouver que la somme de tous les soldes des utilisateurs correspond aux réserves revendiquées, sans afficher le solde de chaque utilisateur.
L’étape de vérification est extrêmement rapide par rapport au temps nécessaire pour générer la preuve elle-même. Cela rend les zk-SNARKs pratiques pour des applications à grande échelle, comme l’audit d’un échange ou la scalabilité d’une blockchain.
Qu’est-ce qu’un arbre de Merkle ?
Un arbre de Merkle est une structure de données cryptographique qui organise efficacement de grandes quantités de données. Chaque élément de données est converti en empreinte (hash), puis ces empreintes sont combinées deux par deux jusqu’à obtenir une empreinte racine unique. Toute modification d’une valeur d’entrée change l’empreinte racine, ce qui rend la falsification facile à détecter.
Fonctions de hachage
Les arbres de Merkle reposent sur des fonctions de hachage pour fonctionner. Le hachage prend une entrée de n’importe quelle longueur et produit une sortie de longueur fixe. La même entrée produit toujours la même sortie. Même un tout petit changement de l’entrée produit une sortie complètement différente.
Par exemple, faire passer 100 livres dans la fonction de hachage SHA-256 produit une chaîne unique de 64 caractères. Modifiez un seul caractère dans ces livres, et la sortie change entièrement. Cette propriété facilite la vérification de l’intégrité des données sans avoir à comparer tout le contenu original.
Arbres de Merkle dans la cryptomonnaie
Dans une blockchain, chaque transaction est hachée pour produire un nœud feuille unique. Les paires de nœuds feuilles sont combinées puis hachées à nouveau pour former des nœuds de branche. Ce processus se poursuit jusqu’à ce qu’une seule racine de Merkle soit produite. Cette racine résume cryptographiquement toutes les transactions d’un bloc.
Pour les échanges, les arbres de Merkle offrent un moyen d’organiser les soldes des clients afin qu’ils puissent être audités sans exposer chaque compte individuel.
Les limites de l’utilisation des arbres de Merkle seuls
Un échange de crypto pourrait construire un arbre de Merkle à partir de l’ensemble des soldes des comptes clients pour prendre en charge une Preuve de réserves (Proof of Reserves, PoR). Toutefois, sans protections supplémentaires, cette approche présente des faiblesses.
Sans couche ZK, un échange pourrait potentiellement exclure certains comptes de l’arbre ou insérer de faux comptes avec des soldes négatifs pour réduire la responsabilité totale apparente. Un utilisateur qui ne consulte que son propre nœud feuille n’aurait aucun moyen de le détecter sans voir tous les autres comptes.
Utiliser un auditeur tiers de confiance est une solution possible, mais cela exige de faire confiance à la fois à l’auditeur et aux données auxquelles il a eu accès.
Comment les zk-SNARKs et les arbres de Merkle fonctionnent ensemble
Combiner les zk-SNARKs avec des arbres de Merkle supprime le besoin de confiance envers un tiers. L’échange construit un arbre de Merkle de l’ensemble des soldes des utilisateurs, puis génère une preuve zk-SNARK qui garantit mathématiquement :
Chaque solde d’utilisateur est inclus dans l’arbre de Merkle (aucun compte n’est omis).
Aucun utilisateur n’a un solde net négatif (aucune donnée falsifiée).
La racine de Merkle est valide et inchangée.
Les utilisateurs peuvent vérifier que leur propre solde a contribué à la racine de Merkle. Ils peuvent aussi vérifier la preuve zk-SNARK pour confirmer que l’arbre a été construit correctement, sans voir le solde des autres.
Comment Binance applique ce système
Binance définit les contraintes de ce qu’elle veut prouver sous la forme d’un circuit programmable. Pour chaque nœud feuille correspondant au solde d’un utilisateur dans l’arbre de Merkle, le circuit vérifie trois conditions :
Les actifs de l’utilisateur sont inclus dans le calcul du solde net total.
Le solde net total de l’utilisateur est supérieur ou égal à zéro.
La racine de Merkle est valide après incorporation des données de cet utilisateur.
Binance génère ensuite une preuve zk-SNARK pour l’ensemble de l’arbre de Merkle. À chaque publication d’une preuve de réserves, Binance publie la preuve de Merkle de chaque utilisateur et la preuve zk-SNARK avec ses entrées publiques. Toute personne peut vérifier les deux indépendamment en utilisant un code open-source disponible publiquement.
Cette approche fournit une assurance mathématique plutôt que de s’appuyer uniquement sur la confiance envers l’auditeur.
Des applications plus larges au-delà de la preuve de réserves
La technologie des preuves ZK s’est largement étendue au-delà de l’audit des échanges. Les ZK-rollups sont aujourd’hui l’une des principales approches de mise à l’échelle de niveau 2 sur Ethereum : ils traitent les transactions hors chaîne et soumettent des preuves ZK à la chaîne principale pour confirmer la validité. Cela peut augmenter le débit tout en maintenant la sécurité.
Au-delà de la scalabilité, les preuves ZK sont explorées pour la vérification d’identité (prouver que vous répondez à une exigence d’âge ou de juridiction sans révéler votre identité complète), des systèmes de vote privés, et l’exécution confidentielle de contrats intelligents. La technologie en est encore à un stade de maturation, mais ses applications potentielles à travers la finance, la gouvernance et l’identité numérique sont considérables.
FAQ
Qu’est-ce qu’une preuve à divulgation nulle (zero-knowledge proof) en termes simples ?
Une preuve à divulgation nulle vous permet de prouver que vous savez quelque chose, ou qu’une affirmation est vraie, sans révéler l’information sous-jacente. C’est comme prouver que vous connaissez la combinaison d’un coffre en l’ouvrant, sans jamais dire quelle est cette combinaison.
Pourquoi Binance utilise-t-elle des zk-SNARKs pour la Proof of Reserves ?
Binance utilise des zk-SNARKs pour prouver que les soldes des clients sont entièrement adossés, sans exposer les détails de chaque compte. La preuve ZK fournit une vérification mathématique que tous les comptes sont inclus et qu’il n’existe aucun solde négatif, sans obliger les utilisateurs à faire confiance à un auditeur.
Quelle est la différence entre les zk-SNARKs et les ZK-rollups ?
Les zk-SNARKs sont un type de protocole de preuve à divulgation nulle. Les ZK-rollups sont une solution de mise à l’échelle de niveau 2 qui utilise des zk-SNARKs (ou des preuves similaires) pour regrouper de nombreuses transactions et soumettre une seule preuve de validité à la blockchain principale. Les zk-SNARKs sont l’outil cryptographique sous-jacent ; les ZK-rollups sont une application de cet outil.
Les utilisateurs peuvent-ils vérifier indépendamment la Proof of Reserves de Binance ?
Oui. Binance publie la preuve de Merkle de chaque utilisateur et la preuve zk-SNARK avec ses entrées publiques. Les utilisateurs peuvent vérifier que leur solde a été inclus dans l’arbre de Merkle et que la preuve zk-SNARK confirme que l’arbre a été construit correctement, en utilisant le code open-source publié par Binance.
Les preuves à divulgation nulle sont-elles uniquement utilisées pour les réserves d’échange ?
Non. Les preuves ZK ont un large éventail d’applications. Dans une blockchain, elles sont utilisées dans les ZK-rollups pour la mise à l’échelle des transactions, les systèmes d’identité et l’exécution confidentielle de contrats. En dehors de la crypto, elles sont étudiées pour des votes respectueux de la vie privée, la vérification d’âge et la validation de justificatifs sans divulgation de données.
Dernières réflexions
En combinant des zk-SNARKs et des arbres de Merkle, les échanges peuvent fournir une preuve cryptographique des réserves sans compromettre les données des utilisateurs. Au-delà de l’audit des réserves, la technologie ZK s’intègre dans la scalabilité de la blockchain, les systèmes d’identité et la gouvernance décentralisée.
Pour aller plus loin
Qu’est-ce qu’une preuve à divulgation nulle et quel impact sur la blockchain ?
Explication des zk-SNARKs et des zk-STARKs
Que sont les ZK-Rollups ?
Qu’est-ce qu’une Proof of Reserves et comment ça marche sur Binance
Arbres de Merkle et racines de Merkle expliqués
Avertissement : ce contenu vous est présenté uniquement à des fins d’information générale et d’éducation, en mode « tel quel », sans aucune déclaration ni garantie de quelque nature que ce soit. Il ne doit pas être interprété comme un conseil financier, juridique ou autre conseil professionnel, ni comme une recommandation d’achat d’un produit ou d’un service spécifique. Vous devriez demander votre propre avis à des conseillers professionnels appropriés. Lorsque le contenu est fourni par un contributeur tiers, veuillez noter que les points de vue exprimés appartiennent à ce contributeur tiers et ne reflètent pas nécessairement ceux de Binance Academy. Les prix des actifs numériques peuvent être volatils. La valeur de votre investissement peut baisser ou augmenter et vous ne récupérerez peut-être pas le montant investi. Vous êtes seul responsable de vos décisions d’investissement et Binance Academy n’est responsable d’aucune perte que vous pourriez subir. Pour plus d’informations, consultez nos Conditions d’utilisation, l’Avertissement relatif aux risques et les Conditions de Binance Academy.
