Risques des ponts : validateurs, multisignature et rejeu

2026-08-24

Risques des ponts : validateurs, multisignature et rejeu

Un pont ne déplace rien. Il formule une affirmation sur une chaîne et convainc une seconde chaîne d'agir en conséquence, et chaque pont percé est cette seconde chaîne qui a cru une affirmation qu'elle aurait dû refuser. La bonne façon de classer les risques d'un pont est donc l'hypothèse de confiance et non le nom du produit : à quoi la chaîne de destination fait-elle confiance, et que faudrait-il pour lui faire croire quelque chose de faux. Cet article parcourt cinq sources structurelles, des ensembles externes de validateurs aux clés de mise à jour.

La question qui classe tous les ponts

La documentation développeur d'Ethereum ramène la sécurité d'un pont à une seule question : qui vérifie le système ? Les frais, la vitesse et le nombre de chaînes reliées se situent tous en aval de celle-ci.

La mécanique varie peu. Quelque chose se produit sur la chaîne source. Une partie atteste que cela s'est produit. Un contrat sur la chaîne de destination confronte cette attestation à une règle et, si elle passe, libère ou émet. Tout ce que veut un attaquant se trouve de l'autre côté de cette règle.

La documentation range les conceptions en deux familles. Les ponts de confiance sont vérifiés de l'extérieur : par une fédération dotée d'une multisignature, un système de calcul multipartite ou un réseau d'oracles. Les ponts sans confiance s'appuient sur les chaînes qu'ils relient et sur les validateurs de ces chaînes, sans ajouter d'hypothèse nouvelle. La première famille achète de la connectivité et de la vitesse et le paie en sécurité : un pont sécurisé par des validateurs externes est en général plus faible qu'un pont sécurisé nativement par les chaînes elles-mêmes.

Les montants en jeu rendent cet échange impitoyable. En août 2022, Chainalysis comptait 13 piratages distincts de ponts inter-chaînes pour environ 2 milliards de dollars, soit près de 69 % de tout ce qui avait été volé en crypto cette année-là jusque-là. Les ponts attirent les attaques parce qu'ils concentrent les garanties exactement à l'endroit où une seule règle est vérifiée.

C'est pourquoi les sections qui suivent sont classées par hypothèse et non par incident. Deux ponts aux noms différents et au même modèle de vérification échouent de la même manière, et connaître les noms ne dit rien de celui que vous vous apprêtez à utiliser.

Un ensemble externe de validateurs est un système que vous n'avez pas audité

La conception de confiance la plus courante place un ensemble de N parties entre les deux chaînes. Elles surveillent la chaîne source, signent une attestation indiquant qu'un événement a eu lieu, et le contrat de destination l'accepte si au moins M de ces signatures se vérifient. Le contrat n'a aucune autre opinion sur le réel.

La conséquence est brutale : qui contrôle M clés peut émettre. Prenez un ensemble de 9 avec un seuil de 5. Un attaquant détenant 5 clés n'a besoin ni d'un bug de contrat, ni d'une faiblesse dans l'une des deux chaînes, ni d'un contrôle supplémentaire. Pendant qu'il le vide, le pont fait exactement ce pour quoi il a été construit.

Regardez quelle sécurité vous achetez réellement. L'ensemble de validateurs est un système à part, avec ses opérateurs, ses machines et ses incitations, et il n'hérite de rien des chaînes qu'il relie. Un pont vérifié par un ensemble externe vaut ce que vaut cet ensemble, pas davantage, quelle que soit la taille des deux réseaux de part et d'autre.

Les questions qui comptent portent donc sur la composition. Qui sont ces N, et sont-ils seulement rendus publics ? S'agit-il d'organisations distinctes ou d'une seule organisation faisant tourner neuf machines ? Combien vaut M ? Les membres ont-ils quelque chose en jeu qu'on puisse leur retirer s'ils signent un message faux ? Et qui peut modifier la composition, car un ensemble qu'une seule clé peut réécrire est un pont à une signature déguisé en comité.

Un seuil ne compte que si les clés tombent indépendamment

M sur N est une affirmation sur l'indépendance, pas un calcul. Cinq sur neuf n'est sensiblement plus difficile qu'un sur un que si ces neuf clés peuvent tomber de neuf façons sans rapport entre elles.

Souvent, elles ne le peuvent pas. Des clés détenues au sein d'une même entreprise partagent un processus de recrutement, une image de poste, un VPN, un service de clés dans le cloud et une seule interface de signature. Si un unique message de hameçonnage atteint les neuf détenteurs, ou si un compte cloud en abrite cinq, N est un chiffre sur un tableau de bord et le vrai N est plus proche de 1.

Relever le seuil ne répare pas cela, et cela coûte quelque chose. Avec un M élevé, la perte de quelques clés laisse le pont incapable de signer quoi que ce soit : rien n'est volé, mais rien ne bouge non plus, et celui dont les actifs sont du mauvais côté attend. Tout seuil est un choix entre trop facile à voler et trop facile à geler.

La surface de signature mérite autant d'attention que la conservation. Les signataires approuvent des données qu'ils ne savent pour l'essentiel pas lire, de sorte que si l'interface affiche un récapitulatif avenant alors que les octets en dessous disent autre chose, des signataires honnêtes produisent une signature malveillante valide. La signature aveugle transforme un comité M sur N en tampon M sur N, et aucun seuil n'en protège.

Clients légers et vérification optimiste ne parient pas sur la même chose

Les conceptions à confiance minimisée retirent l'ensemble externe, mais elles ne retirent pas la confiance : elles la déplacent. Deux familles font l'essentiel du travail.

La vérification par client léger installe un client de la chaîne source à l'intérieur de la chaîne de destination. La destination conserve l'état de consensus de la source et vérifie que l'événement allégué est bien prouvé face à lui. Dans IBC, chaque côté d'une connexion utilise le client léger de l'autre chaîne pour vérifier les messages entrants, si bien que l'hypothèse se réduit au consensus de la chaîne source plus la justesse du code du client. La version récente d'IBC le dit explicitement : un client est simplement un modèle de vérification, et il peut tout aussi bien être un client léger, une multisignature ou un vérificateur de preuves. Ce n'est pas l'étiquette qui fait l'hypothèse, c'est le type de client.

La vérification optimiste prend le chemin inverse : accepter le message à titre provisoire et laisser à quiconque une fenêtre pour le prouver faux. L'hypothèse est qu'au moins un surveillant tourne, dispose de fonds et parvient à faire passer une transaction de contestation avant la fermeture de la fenêtre. Un surveillant hors ligne, à court de gaz ou censuré pendant toute la fenêtre équivaut à aucun surveillant.

Aucune des deux familles n'est gratuite, et les coûts sont structurels, non accidentels. Les clients légers coûtent du gaz et de l'ingénierie pour chaque paire de chaînes, et un bug dans le client est un bug dans la règle elle-même. Les conceptions optimistes se branchent à bas prix mais font patienter chaque utilisateur honnête pendant un délai choisi par le concepteur. La documentation d'Ethereum nomme les deux coûts directement : des limites de connectivité pour les ponts à client léger, de vitesse pour les optimistes.

Le rejeu, c'est un message valide compté deux fois

Un message de pont est une autorisation. Le rejeu est l'attaque dans laquelle une autorisation réellement émise est présentée de nouveau : une seconde fois au même endroit, ou une première fois là où elle n'aurait jamais dû s'appliquer. Rien n'est falsifié. Les mêmes octets valides sont simplement réutilisés.

L'histoire d'Ethereum contient la parade canonique. EIP-155 intègre le chain ID aux données hachées et signées, si bien qu'une signature produite pour une chaîne ne se vérifie pas sur une autre. Notez la façon dont c'est arrivé : l'ancien format à six éléments est resté valide, ce qui veut dire que cette protection relève d'un choix du signataire et non d'une garantie du format.

Pour les messages structurés que les ponts font réellement circuler, EIP-712 définit un séparateur de domaine. Il peut porter un nom, une version, le chain ID et l'adresse du contrat vérificateur, plus un salt en séparateur de dernier recours, et il précise qu'un portefeuille devrait refuser de signer lorsque le chain ID ne correspond pas à la chaîne sur laquelle l'utilisateur se trouve vraiment. Autre chaîne, autre contrat, autre version, autre message. Voilà ce que la séparation de domaine signifie en pratique : faire entrer la destination dans ce qui est signé.

La séparation de domaine n'empêche toujours pas le même message d'être livré deux fois à la même destination. EIP-712 le dit lui-même : la norme couvre la signature et ne comprend pas de protection contre le rejeu, aux applications donc de refuser le doublon ou de rendre l'action autorisée idempotente. Ce travail revient à un nonce, à un numéro de séquence ou à un registre des messages déjà consommés.

IBC montre le motif une fois assemblé. La livraison exactement une fois est une propriété annoncée du protocole : chaque paquet porte un numéro de séquence, la chaîne réceptrice écrit un accusé sous ce numéro, et un paquet dont l'accusé existe déjà est refusé. La spécification note qu'il s'agit du même problème de numéros de séquence que pour les messages signés, le client léger tenant le rôle du signataire. Vérifier sans dédoublonner, c'est un demi-pont.

Risques des ponts classés par hypothèse de confiance : ensembles externes de validateurs, seuils de multisignature, client léger et vérification optimiste, rejeu de messages et clés de mise à jour

Les clés de mise à jour dominent toutes les autres hypothèses

Tout ce qui précède décrit la règle qu'un pont applique aujourd'hui. La clé de mise à jour décide qui pourra remplacer cette règle demain.

La plupart des contrats de pont sont des proxys, et ERC-1967 normalise l'endroit où un proxy range son câblage : un emplacement de stockage pour l'adresse d'implémentation à laquelle il délègue, un autre pour l'adresse d'admin autorisée à changer cette implémentation. Une transaction de l'admin pointe le proxy vers du nouveau code, et le nouveau code peut définir la validité comme bon lui semble.

Cela fait de la clé de mise à jour un sur-ensemble de tous les autres risques de cette page. Un ensemble de validateurs à neuf clés, un client léger, une fenêtre de contestation : tout cela peut être remplacé par qui contrôle l'emplacement d'admin. Le plafond honnête de la sécurité d'un pont est le plus faible de son modèle de vérification et de son chemin de mise à jour.

La consolation, c'est que celui-ci se vérifie. La norme vous dit où regarder et demande que les changements de ces emplacements émettent des événements : Upgraded quand l'implémentation change, AdminChanged quand l'admin change. Lisez l'emplacement d'admin. Voyez s'il contient un simple compte externe, une multisignature ou un timelock, et s'il s'agit d'un timelock, quelle est la durée du délai et qui peut annuler.

Les pauses et les changements de paramètres méritent la même lecture. Le pouvoir d'arrêter un pont ou de relever un plafond de transfert est moindre que celui de réécrire les règles, mais c'est toujours une clé entre les mains de quelqu'un, et un pont que l'on peut mettre en pause peut l'être alors que votre transfert est à mi-chemin.

Conclusion

Le risque d'un pont se classe proprement dès qu'on demande qui vérifie. Un ensemble externe de validateurs est un système à part dont le seuil constitue le budget de sécurité, et ce seuil ne tient que si les clés derrière lui peuvent tomber indépendamment. Les clients légers déplacent l'hypothèse vers le consensus de la chaîne source et la justesse du code du client ; les conceptions optimistes la déplacent vers le fait qu'au moins un surveillant reste vivant et sans entrave pendant toute la fenêtre. La protection contre le rejeu est une exigence distincte : la destination doit faire partie de ce qui est signé, et chaque message a besoin d'une séquence ou d'un accusé. Au-dessus de tout cela se tient la clé de mise à jour, qui remplace le reste en une seule transaction. Ce sont ces cinq réponses, et non la marque affichée sur l'interface, que vous accordez comme confiance.

Articles associés

Autres articles Bitbase sur ce sujet :

- Déliaison et retraits du staking : récupérer ses jetons

- Décentralisation des validateurs : coefficient de Nakamoto, diversité des clients et concentration

- Économie des validateurs : commission, recettes de frais et seuil de rentabilité

Avertissement : Cet article est un contenu pédagogique de Bitbase Academy, fourni à titre d'information uniquement. Il ne constitue pas un conseil en investissement, en trading, en fiscalité ou en finance. Les cryptoactifs sont volatils ; évaluez votre propre risque. Rédigé en août 2026 ; référez-vous aux informations officielles les plus récentes.

Sources

[1] Ethereum.org, developer documentation, Bridges ethereum.org

[2] Chainalysis, Vulnerabilities in Cross-chain Bridge Protocols Emerge as Top Security Risk chainalysis.com

[3] EIP-155: Simple replay attack protection eips.ethereum.org

[4] EIP-712: Typed structured data hashing and signing eips.ethereum.org

[5] ERC-1967: Proxy Storage Slots eips.ethereum.org

[6] IBC-Go documentation, protocol overview docs.cosmos.network

[7] Inter-Blockchain Communication Protocol, ICS-004: Channel and Packet Semantics github.com

Articles connexes

Plus