Les protocoles DeFi · 6 min · démo interactive
Les bridges : pourquoi ils se font pirater
Un bridge ne déplace aucun jeton : il en bloque d'un côté et en promet de l'autre. Toute sa sécurité tient à celui qui valide cette promesse.
L’idée en une phrase
Un bridge est un contrat qui verrouille tes jetons sur une chaîne et en crée une copie sur une autre, en échange de la promesse de te les rendre.
Deux blockchains ne se parlent pas. Ethereum ne sait pas lire l'état d'une autre chaîne, et un jeton ne peut pas sortir de son registre. Le mot « pont » est donc trompeur : rien ne traverse. Ce que tu détiens à l'arrivée est une reconnaissance de dette écrite par un contrat, et sa valeur dépend entièrement du coffre resté au départ.
La démo
Jetons d'origine verrouillés par le contrat.
5 signatures sur 9 requises, 0 clés volées.
Reconnaissances de dette, remboursables depuis le coffre.
Sans JavaScript, suis ce scénario : le coffre contient 1 000 jetons, couverts par 1 000 jetons enveloppés, et il faut 5 signatures sur 9. Avec 4 clés volées, un retrait forgé est refusé. Avec 5, il passe : le coffre tombe à 0, les 1 000 jetons enveloppés existent toujours et ne valent plus rien. Une seule clé de plus a suffi. Les quantités sont fictives et les signatures simulées.
Pourquoi ça compte
Tu veux utiliser sur une autre chaîne des jetons que tu détiens sur Ethereum. Tu les envoies dans le contrat du bridge. Quelques minutes plus tard, un jeton enveloppé apparaît à ton adresse d'arrivée. Tout semble avoir marché, et pourtant tu viens de changer de risque : tes jetons d'origine dorment dans un contrat partagé avec tous les autres utilisateurs.
Le contrat doit alors répondre à une question difficile : « un retrait légitime a-t-il eu lieu sur l'autre chaîne ? » Il ne peut pas le voir lui-même. Il doit croire un message, et un attaquant qui sait fabriquer ce message vide le coffre en une transaction. Un coffre énorme derrière une seule vérification : c'est la cible idéale. Plusieurs des plus gros vols de la DeFi ont visé cette vérification, comme le montrent le cas de Ronin, où des clés ont été volées, et celui de Nomad, où un contrat acceptait de faux messages.
Le code
Voici la règle centrale, sous forme de petit contrat. Change clesVolees ou seuil, puis relance : le retrait forgé doit passer ou échouer selon ces valeurs. Les signatures sont de simples noms ici, pour rester lisible.
Clique sur Lancer pour exécuter ce code dans ton navigateur.
Ce qui se passe vraiment
Commence par l'usage normal. « Déposer 100 » verrouille des jetons dans le coffre et frappe 100 jetons enveloppés. « Retirer 100 » fait l'inverse : on brûle d'abord sur B, puis le coffre libère sur A. C'est le schéma lock-and-mint. Observe la statistique de couverture : elle reste à 100 %. C'est l'invariant du bridge : il doit toujours y avoir au moins un jeton au coffre pour chaque jeton enveloppé.
Passe maintenant à l'attaque. Le bloc du milieu montre la vraie frontière. Pour libérer des fonds, le coffre attend assez de signatures de validateurs, sur ce modèle dit multisig, et rien d'autre. Laisse 0 clé volée et clique sur « Forger un retrait » : refusé. Les validateurs honnêtes ne signent pas un retrait qui n'a pas de brûlage en face.
Monte le curseur à 5 clés volées, puis recommence. Le contrat vérifie des signatures valides : il ne peut pas savoir qu'elles ont été volées. Il paie. Le coffre se vide, alors que les jetons enveloppés restent en circulation, et la couverture tombe à 0 %. Clique ensuite sur « Retirer 100 » : ton retrait échoue. La perte ne frappe pas seulement le bridge, mais tous ceux qui détiennent le jeton enveloppé, même s'ils n'ont jamais touché au contrat. Déplace aussi le curseur des signatures : plus le seuil est bas, moins il faut de clés. Et s'il est très haut, quelques validateurs en panne suffisent à bloquer les retraits.
Le bouton « Rejouer » teste une autre protection. Chaque message porte un numéro, consommé une fois pour toutes. Rejoué, il est refusé. Sans cette mémoire, un seul retrait valide pourrait servir indéfiniment.
Le bouton de bug montre le troisième cas : les clés sont intactes, mais le contrat ne vérifie plus correctement. Toute la sécurité cryptographique disparaît, car le code ne la consulte plus. Il suffit d'une erreur, et plus besoin de voler quoi que ce soit.
La démo simplifie : les signatures sont simulées, chaque validateur est honnête tant que sa clé n'est pas volée, et la chaîne B est réduite à un compteur.
Dans la vraie vie
Plusieurs familles de bridges
Le lock-and-mint de la démo est le modèle classique. D'autres réduisent ou déplacent le risque :
- Burn-and-mint. L'émetteur natif d'un jeton le brûle sur une chaîne et le recrée sur l'autre. Pas de coffre à vider, mais une confiance totale dans cet émetteur.
- Pools de liquidité. Des fournisseurs tiennent des réserves sur chaque chaîne et échangent ta position. Tu reçois un jeton natif, mais les pools restent des cibles et leur liquidité a des limites.
- Clients légers et preuves. La chaîne d'arrivée vérifie elle-même les en-têtes de la chaîne de départ ou une preuve cryptographique. Moins de confiance dans des personnes, plus de complexité dans le code.
- Bridge officiel d'un rollup. Un layer 2 publie ses données sur la couche 1 et un contrat y valide son état. Ce pont hérite de cette sécurité, au prix du délai de retrait sur un optimistic.
Au fond, un bridge est aussi solide que sa partie la plus faible : ses signataires, son code, sa procédure de mise à jour. Quand tu utilises un jeton enveloppé, regarde qui peut signer pour le coffre et qui peut changer le contrat. Cela concerne aussi les protocoles de prêt qui l'acceptent en collatéral : sa valeur repose sur le même coffre, et l'oracle ne signalera pas toujours le problème à temps.
Ce qui peut mal tourner
- Vol de clés de validateurs. Un seuil bas ou des clés regroupées dans les mains d'une même organisation rendent le vol possible par simple ingénierie sociale. Harmony Horizon, en 2022, reposait sur deux signatures sur cinq. Le cas de Ronin est détaillé à part.
- Bug de vérification. En février 2022, un attaquant a contourné la vérification des signatures de Wormhole côté Solana et frappé environ 120 000 wETH sans dépôt. Le cas de Nomad appartient à la même famille d'erreur.
- Mise à jour non contrôlée. Une clé d'administration peut remplacer le contrat. Sans délai ni audit, une mise à jour fautive ou malveillante suffit à ouvrir le coffre.
- Jetons enveloppés sans couverture. Après une attaque, le jeton enveloppé peut décrocher fortement, car plus rien ne le soutient. Sa valeur à l'écran ne garantit rien.
- Attente sans fin. Si les validateurs s'arrêtent, le bridge s'arrête. Tes fonds ne sont pas perdus mais bloqués, et aucune garantie ne dit pour combien de temps.
- Faux sites de bridge. Une page copiée te fait signer une approbation ou envoyer des jetons directement à l'attaquant.
Teste-toi
Contenu éducatif. Pas un conseil en investissement. Les crypto-actifs comportent un risque de perte en capital. Pour la démarche éditoriale, voir à propos. Mise à jour : 31 octobre 2026.