Rubriques tendance
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Les deux premières exploitations connues contre des circuits ZK en direct viennent de se produire, et ce n'étaient pas des bugs sous-contrôlés subtils.
Ce sont des vérificateurs Groth16 déployés sans avoir complété la cérémonie de configuration de confiance. L'un a été sauvé par un chapeau blanc pour environ 1,5 million de dollars, l'autre a été drainé pour 5 ETH.
🧵
Les deux protocoles ont utilisé Circom + snarkjs, la pile la plus courante pour les déploiements Groth16.
Le bug ? Ils ont sauté la Phase 2 de la configuration de confiance : l'étape de contribution spécifique au circuit.
Sans cela, les paramètres γ et δ de la clé de vérification sont tous deux définis sur la même valeur : les générateurs G2.
Pourquoi γ = δ casse tout ?
Vérifications de Groth16 :
e(-A, B) · e(α, β) · e(vk_x, γ) · e(C, δ) = 1
Lorsque γ = δ, un attaquant peut définir C = -vk_x pour annuler les deux termes, puis définir A = α, B = β pour annuler le reste. L'équation devient 1 · 1 = 1. Aucun témoin n'est nécessaire.
Le Foom Protocol (~1,4 M$) était une dApp de loterie sur Base et Ethereum. Un sauvetage par un whitehat @duha_real et un autre whitehat indépendant a drainé les contrats avant qu'un acteur malveillant ne puisse le faire, en utilisant des preuves forgées pour extraire 99,97–99,99 % des tokens.
Le Veil Protocol (~5K $) était un fork de Tornado Cash sur Base. Un attaquant a vidé l'ensemble de la piscine en une seule transaction, 29 retraits falsifiés utilisant des nullificateurs factices comme 0xdead0000, extrayant le solde total de 2,9 ETH de la piscine.
Ceci est snarkjs fonctionnant comme prévu. Lorsque vous exécutez la configuration groth16, cela initialise γ et δ au générateur G2 comme un espace réservé. Vous êtes censé exécuter zkey contribute pour randomiser δ. Si vous sautez cette étape, votre vérificateur acceptera n'importe quelle preuve.
La partie effrayante : ce n'était pas une faille cryptographique profonde ou un bug subtil dans le circuit. C'était une erreur de déploiement : un ordre CLI manquant. Et cela est resté en production avec de vrais fonds en jeu.
points à retenir :
- Toujours revoir les scripts de déploiement, pas seulement le code du circuit
- Vérifiez vos clés de vérification : si vk_gamma_2 == vk_delta_2, vos preuves sont falsifiables
- Nous avons travaillé avec @DedaubSecurity pour scanner les chaînes EVM à la recherche d'autres contrats affectés, aucun contrat de grande valeur trouvé, mais certains existent
4,16K
Meilleurs
Classement
Favoris
