Un échange public entre le CTO de Polygon, Mudit Gupta, et le fondateur de Zcash, Zooko Wilcox, a relancé les questions de savoir si les systèmes de crypto-monnaie axés sur la confidentialité peuvent garantir que leur approvisionnement monétaire reste intact. Le différend se concentre sur une vulnérabilité de contrefaçon de 2019 dans le pool de transactions privées de Zcash et si les mécanismes d'audit du réseau peuvent prouver de manière définitive qu'aucune création illégitime de pièces n'a eu lieu.
À savoir :
- Le CTO de Polygon a mis en doute la capacité de Zcash à vérifier son plafond de 21 millions de pièces en raison d'un bug de frappe infinie découvert en mars 2019 et corrigé sept mois plus tard.
- Le fondateur de Zcash soutient que les mécanismes comptables de "tourniquet" rendent la contrefaçon indétectée impossible en suivant toute la valeur entrant et sortant des pools privés.
- Le désaccord technique met en lumière la tension entre la confidentialité des transactions et l'auditabilité de l'approvisionnement dans la conception des crypto-monnaies.
L'affrontement public
Gupta a initié le débat sur X avec une affirmation directe sur l'opacité de Zcash. « Personne ne sait combien de jetons Zcash existent réellement », a-t-il écrit. « Les actifs privés comme Zcash sont difficiles à auditer. En mars 2019, un bug de frappe infinie a été détecté dans les actifs privés de Zcash. Il a été corrigé en octobre 2019 mais il n'existe aucun moyen garanti de dire si le bug a jamais été exploité. »
Plus tard, il a modéré sa position, affirmant qu'une analyse heuristique suggère que la vulnérabilité n'a probablement pas été exploitée.
« Sur la base d'une heuristique, il est peu probable que le bug ait été exploité, donc aucune raison de s'alarmer », a ajouté Gupta.
Il a caractérisé ses commentaires comme identifiant une catégorie de risque inhérent plutôt que d'alléguer une exploitation réelle. « Je souligne simplement un vecteur d'attaque avec Zcash et de similaires pools privés », a-t-il clarifié.
Wilcox a rejeté la caractérisation comme inexacte. Il a dirigé Gupta vers des audits de blockchain accessibles au public qui surveillent la base monétaire. « Ils montrent l'intégrité de la base monétaire de Zcash », a écrit Wilcox, ajoutant qu'« une analyse game-theoretic simple montre en outre qu'il n'y a pas de contrefaçon. »
Le fondateur de Zcash a offert une expérience de pensée impliquant le pool Sprout déprécié.
« Supposons que quelqu'un a contrefait des ZEC dans le pool Sprout avant le 28 octobre 2018 », a-t-il écrit. « Alors il y a une 'course à la sortie' entre le contrefacteur et ses victimes. Quiconque retire son ZEC du pool Sprout en premier garde tout l'argent. Conclusion : il n'y a pas eu de contrefaçon. »
Wilcox a ajouté que même si une contrefaçon avait eu lieu, l'approvisionnement total resterait limité. « Même s'il y avait eu contrefaçon... il n'y aurait toujours que 16 355 911 ZEC en existence, et toujours seulement 21 M jamais », a-t-il écrit. « Merci, tourniquets ! »
L'histoire technique
La vulnérabilité a affecté Sprout, la mise en œuvre originale du pool privé de Zcash. L'Electric Coin Company et la Zcash Foundation ont découvert la faille en privé en 2018 et l'ont divulguée publiquement le 5 février 2019. La mise à niveau Sapling, qui s'est activée le 28 octobre 2018, avait déjà supprimé le code vulnérable avant la divulgation publique.
Zcash a mis en œuvre la comptabilité des tourniquets pour répondre à l'exploitation potentielle. Le mécanisme fonctionne en enregistrant toutes les transferts de valeur à la frontière entre les pools transparent et privé. Parce que les transactions d'entrée et de sortie révèlent les montants à ces points de transition, le réseau peut calculer un solde de pool attendu. Toute tentative de retirer plus de valeur que celle entrée devient détectable.
L'Electric Coin Company a déclaré lors de la divulgation qu'elle n'avait trouvé aucune preuve de contrefaçon. L'organisation a maintenu cette position tout en décrivant les tourniquets comme une sauvegarde pour protéger l'intégrité monétaire même dans des scénarios d'exploitation hypothétiques.
L'analogie de Wilcox de la "course aux sorties" illustre la théorie des jeux.
Un attaquant qui créait des pièces frauduleuses à l'intérieur de Sprout entrerait en compétition avec des détenteurs légitimes pour retirer avant que les contraintes de tourniquet empêchent d'autres sorties. L'absence de vidanges de pool inexpliquées ou de réconciliations négatives suggère que la contrefaçon n'a pas eu lieu à grande échelle.
La réponse de Gupta s'est concentrée sur les limites épistémologiques plutôt que sur l'attaque des intentions de conception de Zcash. « Peut-être que j'aurais dû être plus clair », a-t-il écrit. « En raison de la possibilité de bugs, il n'y a aucune garantie que les pools privés contiennent la même quantité de Zcash circulant à l'intérieur d'eux que le Zcash transparent qui est entré. Par conséquent, vous ne pouvez pas être sûr à 100 % de l'approvisionnement total réel. »
Il a reconnu que le risque pratique reste minimal. « La probabilité qu'un bug de ce type soit exploité est essentiellement nulle », a déclaré Gupta.
Comprendre la mécanique
Le modèle économique de Zcash reflète la structure de Bitcoin. Le protocole établit un plafond d'approvisionnement fixe de 21 millions de pièces distribuées par un calendrier d'émission basé sur le halving. Ce plafond apparaît dans toute la documentation officielle.
Les protocoles de connaissance nulle permettent à Zcash d'obscurcir les montants des transactions individuelles et les identités des participants à l'intérieur des pools privés. Cependant, ces caractéristiques de confidentialité créent un défi d'audit que les blockchains transparentes ne rencontrent pas. Le protocole doit équilibrer le masquage des transactions spécifiques tout en maintenant un approvisionnement global vérifiable.
Les tourniquets fonctionnent comme des points de contrôle entre les portions transparentes et privées du réseau. Lorsque les pièces passent d'adresses transparentes à des pools privés, la blockchain enregistre le montant du dépôt. Lorsque les pièces sortent vers des adresses transparentes, le montant du retrait devient visible. La différence cumulative entre les dépôts enregistrés et les retraits établit un solde maximum possible pour le pool privé.
Cette méthode de comptabilité ne peut pas révéler si la contrefaçon s'est produite à l'intérieur d'un pool caché pendant une période de temps spécifique. Elle peut cependant détecter si plus de valeur tente de sortir que ce que les dépôts enregistrés autoriseraient. La distinction met en lumière la tension principale dans le débat.
Réflexions finales
L'échange illustre des questions fondamentales sur la vérifiabilité dans les systèmes de crypto-monnaie préservant la confidentialité. Bien que les mécanismes de tourniquet de Zcash fournissent des preuves probabilistiques solides contre la contrefaçon indétectée, le débat révèle des normes différentes pour ce qui constitue une preuve définitive dans des environnements cryptographiques adverses. Le ZEC s'échangeait à 325 $ au moment de la publication.

