Écrit par : angelilu, Foresight News
Le 25 juin 2026 à 6h18 du matin, une proposition de gouvernance numéro 67 est apparue sur la page de vote du DAO Tornado Cash.

Le titre était rédigé de manière formelle : « Établissement d'une norme de frais de 0,5 % et d'un mécanisme de déflation dynamique de 90 % ». Le texte, volumineux, affirmait vouloir mettre à niveau le registre des relais vers l'architecture « V5 Strategy A », brûler définitivement 90 % des frais perçus par le protocole et distribuer 10 % aux stakers, et incluait une démonstration d'un modèle économique de « cycle vertueux de richesse ».
Le proposant a également demandé à recevoir 50 TORN du trésor, pour compenser les frais de gaz avancés lors du déploiement du contrat — ce détail donnait à l'ensemble de la proposition l'air d'avoir été rédigée par un contributeur communautaire sérieux et responsable, qui met la main à la poche.
Mais le code du contrat de cette proposition n'avait été vérifié nulle part. C'est-à-dire que la logique d'exécution de la proposition (Calldata) n'avait pas fait l'objet d'une vérification du code source sur les explorateurs de blocs (comme Etherscan). Sans cette vérification, la communauté ne voyait qu'un amas de code machine, impossible à examiner directement. Les propositions normales de Tornado Cash dans le passé avaient toujours inclus cette étape, celle-ci l'a sauté.
Sergey Shemyakov, chercheur chez L2BEAT, a été le premier à le remarquer. Environ 8 heures après la mise en ligne de la proposition, il a tagué le chercheur en sécurité Pascal Caversaccio en disant : « La logique de cette proposition est anormalement complexe, peux-tu l'examiner indépendamment pour moi ? »

Pascal Caversaccio, chercheur à la Security Alliance, a rapidement donné sa conclusion.
Le véritable objectif de la proposition : changer discrètement l'adresse administrateur du protocole
Caversaccio a utilisé un outil de décompilation pour restaurer le bytecode du contrat de proposition et a conclu qu'elle était malveillante.
Le code contenait une fonction nommée « governance (gouverneur) » qui n'avait qu'une seule fonctionnalité : renvoyer une adresse, indiquant au protocole « qui est l'administrateur ». Et l'adresse codée en dur dans cette fonction était le portefeuille de l'attaquant lui-même.

Dans l'architecture de Tornado Cash, les différentes parties du protocole appellent cette fonction pour confirmer à qui appartient l'autorité suprême. Une fois la proposition adoptée et exécutée, l'adresse pointant initialement vers le contrat de gouvernance communautaire serait silencieusement remplacée par cette adresse d'attaquant.
L'adresse légitime de gouvernance est 0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce ;
L'adresse falsifiée de l'attaquant est 0x5efda50f22d34f272c7077689d6abc42f15e285f.
Les 15 premiers caractères des deux adresses sont identiques, la différence n'apparaissant qu'à partir du 16ème caractère. Difficile à repérer à l'œil nu pour un non-initié.
Si cette proposition avait été adoptée, la conséquence aurait été la suivante : l'adresse « administrateur suprême » reconnue par le protocole aurait été silencieusement changée pour celle de l'attaquant. Ce dernier aurait alors pu utiliser cette identité pour retirer les quelque 23 millions de dollars en jetons TORN actuellement verrouillés dans le contrat de gouvernance — argent mis en jeu par les membres de la communauté pour participer aux votes. En outre, l'attaquant aurait pu forcer la remise à zéro des soldes de tous les relais (les prestataires qui aident les utilisateurs à relayer les transactions) au sein du protocole, paralysant ainsi l'ensemble du système.
Qui est l'attaquant, d'où vient l'argent
L'adresse du portefeuille du créateur de la proposition est 0xd4eca8c9242b9f9faa3cf19a78defc21dc97a925.
En retraçant la source des fonds de cette adresse, Caversaccio a découvert qu'elle avait reçu un transfert seulement 4 jours avant la soumission de la proposition. L'expéditeur était Railgun — un autre protocole de mixage de confidentialité on-chain, et un concurrent direct de Tornado Cash. Un transfert via Railgun signifie que la source des fonds est obscurcie, impossible à retracer jusqu'à une identité réelle.

Après la découverte par la communauté, quel est l'état du vote
À ce jour, le résultat du vote pour cette proposition est : 0 vote pour, 27 163 TORN contre, soit 100 %. Le vote se clôture le 30 juin.
Les règles de gouvernance de Tornado Cash exigent qu'au moins 100 000 TORN participent au vote pour atteindre le quorum. Actuellement, seulement 27 % ont été atteints. À moins qu'une vague massive de votes favorables anormaux n'apparaisse dans les 4 prochains jours, poussant le quorum et inversant le résultat, cette proposition sera caduque et non exécutée. Mais l'affaire a surtout une valeur d'avertissement.
C'est déjà la deuxième fois que Tornado Cash fait face à ce type d'attaque. En mai 2023, un attaquant avait obtenu le contrôle de la gouvernance avec 1,2 million de votes grâce à une proposition cachant une fonction d'autodestruction, alors que l'ensemble des votes légitimes du DAO n'était que de 70 000. Cet attaquant avait alors retiré environ 2,17 millions de dollars en TORN, utilisant Tornado Cash lui-même pour le blanchiment, avant de soumettre une proposition de « restauration de la gouvernance », repartant avec un bénéfice net d'environ 900 000 dollars. Depuis, personne n'a fondamentalement réparé cette structure de gouvernance.
Attaques de gouvernance DAO, comment se protéger pour l'utilisateur lambda
Les attaques de gouvernance sont désormais un risque courant dans le Web3, pas une exception propre à un protocole particulier. En avril 2022, Beanstalk a été attaqué par un acteur utilisant un flash loan pour emprunter temporairement 1 milliard de dollars de pouvoir de vote, adoptant une proposition, transférant 182 millions de dollars, et remboursant le prêt dans la même transaction, le tout en moins d'une minute. En février de la même année, Build Finance DAO s'est fait voler le contrôle par un attaquant via la création de faux jetons de gouvernance, vidant un trésor de 11 millions de dollars.
Les formes d'attaque évoluent : de l'emprunt flash pour prendre le contrôle des votes, aux fonctions d'autodestruction cachées, jusqu'à ce remplacement de caractères d'adresse cette fois. Mais la logique sous-jacente reste la même — le pouvoir dans un DAO vient des jetons, et les jetons peuvent être empruntés, falsifiés, obscurcis. Tout mécanisme de gouvernance qui peut être manipulé par du code peut être attaqué.
Pour les utilisateurs ordinaires détenant des jetons de gouvernance, plusieurs voies sont concrètement utilisables. Premièrement, suivre les alertes en temps réel des chercheurs en sécurité, cette attaque ayant été signalée en premier par le chercheur de L2BEAT. Deuxièmement, voter probablement contre toute proposition pointant vers un contrat non vérifié. Troisièmement, si vous détenez des jetons de gouvernance d'un protocole mais ne comptez pas participer activement, déléguer votre pouvoir de vote à des membres actifs de la communauté est plus sûr que de laisser les jetons dormir dans votre portefeuille. Les jetons silencieux ne font que rendre plus difficile l'atteinte du quorum.
Pour les développeurs de protocoles, une ligne de défense plus fondamentale est d'introduire un délai d'exécution (timelock) au niveau de la gouvernance — une proposition adoptée ne s'exécute pas immédiatement, laissant une fenêtre de 48 à 72 heures pour que la communauté et les chercheurs en sécurité aient la possibilité de l'examiner et de déclencher un arrêt d'urgence. Des protocoles comme Compound ou Aave ont depuis longtemps standardisé ce mécanisme. Tornado Cash ne l'a toujours pas fait, ce qui relève aussi d'un choix extrême en matière de conformité et de résistance à la censure.





