Cryptomonnaies : une faille critique corrigée, les zero-knowledge proofs secouées
Une anonymisation pas si anonyme – L’anonymat est un sujet phare de l’écosystème des cryptomonnaies. Les dernières années, bon nombre de projets se sont intéressés à la cryptographie zero-knowledge proof permettant de prouver une hypothèse sans avoir à en révéler les contenus. Celles-ci sont notamment utilisées par de nombreuses solutions de seconde couche. Malheureusement, plusieurs implémentations ont été révélées défectueuses, mettant une bonne partie de l’écosystème en danger.
Une vulnérabilité découverte sur les zero-knowledge proofs
Fondée en 2012, la société Trail of Bits est spécialisée dans la cybersécurité. Depuis sa création, elle a contribué à sécuriser certaines des organisations et certains des appareils les plus ciblés au monde.
Le 13 avril dernier, celle-ci a dévoilé une vulnérabilité critique affectant de nombreuses implémentations des très en vogue zero-knowledge proofs. Plus particulièrement, celle-ci impactait de mauvaises implémentations de la transformation de Fiat-Shamir appliquée aux systèmes de preuves.
Intitulée Frozen Heart, cette vulnérabilité permettait à un utilisateur malveillant de créer de fausses preuves zero-knowledge.
Le principe du Fiat-Shamir
Pour comprendre sa nature, il convient de revenir sur le fonctionnement de la transformation de Fiat-Shamir.
Comme expliqué dans le rapport, celle-ci se construit en trois étapes :
- Le prouveur génère une valeur aléatoire : l’engagement ;
- Le vérificateur répond avec une valeur aléatoire : le défi ;
- Le prouveur utilise alors l’engagement, le défi et ses données secrètes pour générer la preuve à connaissance zéro.
La preuve générée par le prouveur est considérée comme valide si celle-ci répond à l’un des critères suivants :
- Il dispose des données secrètes nécessaires pour satisfaire la relation, et il génère une preuve à connaissance zéro de la manière honnête ;
- Il ne dispose pas des données secrètes nécessaires, mais il devine des valeurs aléatoires et a de la chance.
La seconde option ne peut, en théorie, pas être réalisée. En effet, la probabilité de deviner les valeurs tend vers l’infini.
Malheureusement, la vulnérabilité Frozen Heart permettait à l’acteur malveillant de deviner ces valeurs et proposer une preuve construite de toute pièce.
Une méchante vulnérabilité crypto vite corrigée
En pratique, cette vulnérabilité impactait 7 implémentations des zero-knowledges, à savoir :
- ZenGo’s zk-paillier
- ING Bank’s zkrp (deleted)
- SECBIT Labs’ ckb-zkp
- Adjoint, Inc.’s bulletproofs
- Dusk Network’s plonk
- Iden3’s SnarkJS
- ConsenSys’ gnark
Comme nous pouvons le voir, plusieurs projets cryptos sont ainsi impactés. Nous retrouvons, le portefeuille ZenGo, le réseau Dusk Network, la solution d’identité décentralisée Iden3 ou encore la solution d’anonymisation développée par Consensys.
Évidemment, toutes ces entités ont été contactées afin qu’elle corrige la vulnérabilité en amont de la publication du rapport de Trail of Bits.
De leur côté, les solutions de seconde couche sur Ethereum, largement basées sur les zero-knowledge proofs continuent leur essor. Ainsi, celles-ci ont récemment dépassé la barre des 7 milliards de dollars de TVL.
Les protocoles DeFi sont passionnants, mais parfois périlleux. Si vous préférez privilégier la tranquillité d’esprit, faites le choix de plateformes crypto plus traditionnelles. Actuellement, profitez de jusqu’à 200€ en cryptomonnaies offerts lors de votre inscription sur la plateforme Swissborg (lien affilié, pour un dépôt minimum de 50€).