Sécurité

Les ponts entre chaînes : pourquoi ils continuent de casser

Les ponts inter-chaînes ont perdu plus de valeur en attaques que n'importe quelle autre catégorie d'infrastructure crypto, et ce n'est pas parce que ceux qui les construisent sont négligents. C'est à cause de ce qu'un pont est fondamentalement, et une fois cela clair, la série des défaillances cesse de ressembler à de la malchance.

· 10 min de lecture

Rien ne traverse, et c'est tout le problème

Le modèle mental que la plupart des gens portent est celui d'un actif qui voyage d'une chaîne à l'autre, comme un fichier passe d'un ordinateur à l'autre. Rien de tel ne se produit, et cela ne le peut pas : une blockchain est un système fermé qui ne connaît que son propre état, et elle n'a aucun mécanisme pour observer ce qui est vrai sur une autre chaîne. Il n'y a pas de câble entre elles et aucune réalité commune à laquelle en appeler.

Ce qui se produit réellement, c'est que l'actif est immobilisé sur la première chaîne et qu'un nouveau est créé sur la seconde, représentant une créance sur l'original immobilisé. Les deux moitiés ne sont reliées par rien d'autre qu'un système qui décide quand créer la créance, et cette décision est toute la question de sécurité. Tout ce que fait un pont se ramène à y répondre : qui a le droit de dire que des actifs ont été bloqués de l'autre côté, et qu'est-ce qui l'empêche de le dire faussement.

Un pont ne déplace pas de valeur. Il bloque de la valeur à un endroit et émet une promesse à un autre, et toutes les grandes défaillances ont été des attaques contre la promesse, pas contre le verrou.

Ce que vous détenez réellement de l'autre côté

Le jeton que vous recevez n'est pas l'actif que vous avez déposé. C'est un instrument distinct, émis par le pont, dont la valeur dépend entièrement du fait que l'actif déposé reste bloqué et récupérable. Si le verrou est compromis ou si le mécanisme d'émission est exploité, le jeton continue d'exister et de se traiter alors que ce qui l'adosse n'existe plus, ce qui est exactement l'enchaînement observé dans les plus gros incidents.

Cela a une conséquence qui piège les gens même après qu'ils ont compris le mécanisme. Détenir un actif ponté, c'est détenir une créance sur un pont précis, pas sur le sous-jacent. Deux versions du même actif sur la même chaîne, arrivées par des ponts différents, sont des instruments différents aux risques différents et souvent aux prix différents, et elles sont fréquemment affichées avec le même nom et le même logo.

La forme pratique de cela est de savoir quel pont a émis ce que vous détenez avant de le détenir, et de vérifier que l'actif que vous recevez est bien celui que l'écosystème où vous entrez utilise réellement. Être payé dans une version pontée que personne n'accepte est un problème de liquidité qui s'ajoute à un problème de conservation.

Les trois conceptions, classées par qui il faut croire

Les différences qui comptent ne portent pas sur la vitesse ni sur les frais. Elles portent sur qui est capable d'autoriser l'émission d'une créance, et sur le nombre de personnes qui devraient se tromper ou mentir en même temps.

Un groupe détient les clés

Un ensemble défini de parties observe le dépôt et signe l'émission, en général avec une exigence de seuil. C'est la conception la plus répandue et la plus facile à construire, et sa sécurité est exactement celle de cet ensemble : si le nombre de clés de signature du seuil est compromis, l'attaquant peut émettre des créances adossées à rien. Plusieurs des plus grosses pertes du secteur ont suivi précisément ce chemin, et le nombre de clés exigé était dans chaque cas assez petit pour être réuni.

La chaîne vérifie l'autre chaîne

Une conception à client léger place assez de la logique de consensus d'une chaîne dans un contrat sur l'autre pour qu'il puisse vérifier des preuves directement, sans comité impliqué. C'est le modèle le plus solide disponible, parce que l'hypothèse de confiance se réduit à la sécurité des deux chaînes elles-mêmes. Il est aussi difficile et coûteux à construire, ce qui explique qu'il en existe bien moins que le paysage commercial ne le laisse croire.

De la liquidité des deux côtés, et personne n'émet rien

Plutôt que de bloquer et d'émettre, certains systèmes gardent des réserves du même actif sur les deux chaînes et paient simplement depuis la réserve de destination quand un dépôt arrive à l'origine. Rien de nouveau n'est créé, ce qui supprime entièrement l'attaque par émission, et le risque se déplace vers l'équilibre des réserves et vers qui les fournit. C'est une forme de risque réellement différente plutôt qu'un risque plus petit.

Pourquoi les ponts concentrent les attaques

Un pont détient la totalité des actifs bloqués par tous les utilisateurs qui l'ont traversé, à un seul endroit, dans un contrat qui doit rester capable de les relâcher. Cela en fait la plus grosse réserve de valeur unique de la plupart des écosystèmes, gardée par du code plus récent et moins examiné que les chaînes de part et d'autre, et chargée du travail le plus complexe de toute la pile.

Ajoutez que ce travail est intrinsèquement adverse d'une manière que les contrats de trading ne sont pas. Un pont doit décider si un événement s'est produit sur un système qu'il ne peut pas voir, à partir de preuves fournies par des parties qui peuvent avoir intérêt à mentir dessus. C'est un problème plus dur que transférer un jeton, il a plus d'endroits où se tromper, et se tromper une fois est illimité plutôt qu'incrémental.

Le résultat n'est pas surprenant une fois énoncé : la plus haute valeur, le code le plus récent, le problème le plus dur, et une population d'attaquants qui n'a besoin de trouver qu'un seul défaut. La série de pertes de cette catégorie est ce que cette combinaison produit, et rien là-dedans n'est propre à une équipe en particulier.

Les quatre façons dont ils ont réellement échoué

Regrouper les incidents plutôt que les énumérer fait apparaître un petit nombre de mécanismes répétés.

Les clés de signature ont été obtenues

L'ensemble de clés au seuil qui autorise l'émission a été compromis, souvent par des moyens ordinaires plutôt que cryptographiques : une machine de développeur, un identifiant volé, une attaque d'ingénierie sociale sur une personne. Le pont a ensuite émis des créances qu'aucun dépôt n'adossait, et elles ont été vendues sur le marché avant que quiconque ne s'en aperçoive.

La preuve n'a pas réellement été vérifiée

Un défaut dans la logique de vérification a laissé passer un message falsifié ou rejoué comme valide. Ce sont les défaillances logicielles les plus pures de la catégorie, elles sont subtiles, et plusieurs d'entre elles ont survécu à des audits, parce que vérifier une preuve correctement est une chose difficile à réussir et difficile à relire.

L'initialisation est restée ouverte

Un contrat dont la fonction d'installation pouvait être appelée de nouveau, ou dont le rôle privilégié n'avait jamais été abandonné, a permis à un attaquant de prendre purement et simplement le contrôle du mécanisme. C'est une erreur de déploiement plutôt que de conception, et elle a causé de très grosses pertes.

Le chemin de mise à jour était l'attaque

Les ponts sont fréquemment évolutifs, ce qui est raisonnable vu la jeunesse du code, et un contrat évolutif a une autorité capable de remplacer sa logique. Compromettre cette autorité équivaut à compromettre tout ce que le contrat détient, sans avoir besoin de trouver le moindre défaut dans le code actuel.

Trois des quatre modes de défaillance portent sur qui a l'autorité plutôt que sur le code. Les attaques qui ont fonctionné n'ont en général pas eu besoin de casser le mécanisme, seulement de devenir la personne autorisée à l'actionner.

Les ponts canoniques, et pourquoi le mot compte

La plupart des chaînes désignent un pont comme canonique, c'est-à-dire construit et exploité par la même équipe que la chaîne, et les actifs qu'il émet sont ceux que l'écosystème traite comme natifs. Cette désignation mérite l'attention parce qu'elle concentre la liquidité : la version canonique d'un actif est celle qui se traite partout sur cette chaîne, et toute autre version est un instrument distinct aux marchés plus minces.

Elle n'est pas automatiquement plus sûre, et la traiter comme une note de sécurité est une erreur. Un pont canonique hérite des mêmes trois choix de conception que n'importe quel autre et peut tout aussi bien être un comité qui détient des clés. Ce qu'il apporte, c'est la réponse à une autre question, celle de savoir si l'actif que vous recevez sera accepté là où vous comptez l'utiliser, et cette question mérite d'être traitée séparément de celle de la sécurité.

Les alternatives qui ne sont pas des ponts

Une part substantielle du pontage se fait pour des raisons qui n'exigent pas de pont, et le remarquer est la réduction de risque la moins coûteuse disponible. Si les deux chaînes sont prises en charge par une plateforme que vous utilisez déjà, déposer sur l'une et retirer sur l'autre atteint le même résultat en passant par une entité que vous avez déjà acceptée comme contrepartie, ce qui est un risque que vous portiez de toute façon plutôt qu'un risque nouveau.

Là où l'actif existe nativement sur les deux chaînes parce que son émetteur l'y déploie, aucun pont n'est nécessaire non plus : l'émetteur peut détruire d'un côté et émettre de l'autre, et plusieurs actifs majeurs fonctionnent ainsi. Vérifier si cette route existe avant d'utiliser un pont prend une minute et supprime toute la catégorie de risque décrite plus haut.

Le cas restant, où un pont est réellement le seul chemin, est plus étroit que le volume qui les traverse ne le laisse croire. Une grande partie de ce volume est de l'habitude plutôt que de la nécessité, et l'habitude est coûteuse d'une manière qui n'apparaît que les jours où elle l'est.

Ce qu'il faut vérifier avant de traverser

Quatre questions, dont aucune n'exige de lire du code. De quelle conception s'agit-il, c'est-à-dire si l'émission est autorisée par un comité, par une preuve que la chaîne vérifie, ou par personne parce que la liquidité est des deux côtés. Si c'est un comité, combien de signatures sont exigées et ces parties sont-elles identifiables et indépendantes. Le contrat est-il évolutif, et si oui qui contrôle la mise à jour et ce contrôle est-il lui-même réparti. Et existe-t-il une route sans pont vers la même destination.

Puis l'habitude opérationnelle qui ne coûte rien : traversez le montant dont vous avez besoin plutôt que celui que vous détenez, et ne laissez pas de valeur sous forme pontée plus longtemps que la raison du pontage ne l'exige. Le temps d'exposition est la variable la plus sous votre contrôle, et l'essentiel de la valeur perdue dans cette catégorie dormait ou transitait plutôt qu'elle n'était activement utilisée au moment où elle a disparu.

Questions fréquentes

Mon actif se déplace-t-il réellement vers l'autre chaîne ?

Non. Il est bloqué sur la chaîne d'origine et un nouveau jeton représentant une créance sur lui est créé sur la chaîne de destination. Rien ne traverse, parce qu'une blockchain ne peut pas observer l'état d'une autre. Toute la sécurité d'un pont porte sur qui a le droit d'autoriser cette seconde étape.

Pourquoi les ponts sont-ils tellement plus attaqués que d'autres contrats ?

Ils détiennent la plus grosse réserve de valeur unique de la plupart des écosystèmes, leur code est plus récent et moins examiné que les chaînes autour, et ils accomplissent la tâche la plus dure de la pile : décider si quelque chose s'est produit sur un système qu'ils ne peuvent pas voir. Un attaquant n'a besoin de trouver qu'un défaut, et le gain est illimité.

Deux versions du même actif sur une chaîne sont-elles interchangeables ?

Fréquemment non. Si elles sont arrivées par des ponts différents, ce sont des instruments différents à l'adossement différent, aux risques différents et souvent aux prix différents, malgré un nom et un logo généralement partagés. Savoir quel pont a émis ce que vous détenez fait partie de savoir ce que vous détenez.

Qu'est-ce qu'un pont canonique et est-il plus sûr ?

C'est le pont désigné par l'équipe de la chaîne elle-même, et les actifs qu'il émet sont ceux que l'écosystème traite comme natifs. Cela répond à une question de liquidité plutôt que de sécurité : cela vous dit que l'actif sera accepté là où vous voulez l'utiliser. Sa sécurité dépend toujours des mêmes choix de conception que n'importe quel autre pont.

Quelle est la conception de pont la plus sûre ?

Celle où la chaîne de destination vérifie directement des preuves venant de la chaîne d'origine, parce que l'hypothèse de confiance se réduit à la sécurité des deux chaînes elles-mêmes plutôt qu'à un comité. C'est aussi la plus difficile et la plus coûteuse à construire, ce qui explique qu'il en existe bien moins que le vocabulaire ne le suggère.

Puis-je éviter complètement d'utiliser un pont ?

Souvent. Si une plateforme que vous utilisez déjà prend en charge les deux chaînes, déposer sur l'une et retirer sur l'autre atteint la même destination par une contrepartie que vous aviez déjà acceptée. Et là où un émetteur déploie le même actif nativement sur les deux chaînes, aucun pont n'intervient. Vérifier l'une ou l'autre route prend une minute.

Un audit signifie-t-il qu'un pont est sûr ?

Il réduit la probabilité de certaines classes de défauts et il n'a pas empêché plusieurs des plus gros incidents. La logique de vérification est assez subtile pour que des erreurs aient survécu à une relecture, et trois des quatre modes de défaillance courants portent sur qui détient l'autorité plutôt que sur le code qu'un audit examine.

Combien de temps laisser des actifs sous forme pontée ?

Aussi brièvement que la raison du pontage l'exige. Le temps d'exposition est la variable la plus sous votre contrôle, et une large part de la valeur perdue dans cette catégorie dormait ou transitait plutôt qu'elle n'était activement utilisée au moment où le mécanisme a lâché.

Ouvrir un compte Tous les articles