Aller au contenu

Bridge interchaînes

Guide axé sur la vérification des routes interchaînes pour les actifs et messages, des modèles de confiance, des états des messages, de la protection contre le rejeu, de la couverture, de la liquidité, des frais, des nouvelles tentatives et du rapprochement final.

Mis à jour

À des fins éducatives uniquement ; ne constitue ni un conseil en investissement ni une recommandation d’investissement. Les investissements peuvent entraîner des pertes.

Réponse directe

Un bridge interchaînes est un système qui fait en sorte qu’un transfert d’actifs ou un message observé dans un domaine d’exécution produise un résultat autorisé dans un autre. Des blockchains indépendantes n’accordent pas automatiquement leur confiance à l’état des autres. Une route nécessite donc un modèle de vérification, des règles d’exécution à destination et, pour les actifs, un modèle d’émission, de conservation ou de liquidité.

Ces dimensions doivent être séparées. Les actifs peuvent suivre un mécanisme de verrouillage et émission, de destruction et libération, de destruction et émission par l’émetteur ou de livraison par un fournisseur de liquidité. Les messages peuvent être acceptés au moyen d’un client léger ou d’une preuve de validité, d’une procédure de contestation optimiste, d’un seuil d’attestateurs ou de validateurs, ou d’un vérificateur propre à l’application. Chaque combinaison peut présenter des risques distincts de finalité, rejeu, mise à niveau, disponibilité et solvabilité. Une transaction source, une attestation, un solde à destination et le remboursement économique sont des états distincts.

1
Verrouiller ou brûler

Le contrat de chaîne source dépose ou détruit la représentation source.

Fonctionnement

  1. Figer l’instantané de la route : protocole et version, chainId ou domaine source et de destination, adresses de la passerelle, du routeur, du messager ou de l’adaptateur, paire de jetons, destinataire, montant, décimales, échéance, références des blocs et documentation officielle. Un nom, une icône ou l’étiquette d’un agrégateur ne prouvent pas l’identité.
  2. Classer deux dimensions indépendantes. Noter si le parcours de l’actif emploie le verrouillage et émission, la destruction et libération, la destruction et émission par l’émetteur ou la fourniture de liquidité, et si celui du message utilise des preuves de consensus, des clients légers, une vérification optimiste, des attestations, un seuil de validateurs ou un autre vérificateur.
  3. Cartographier les racines de confiance et de contrôle. Inclure la finalité source, la disponibilité des données, les hypothèses relatives à la preuve ou aux attestateurs, l’exécuteur à destination, la protection contre le rejeu, l’implémentation du proxy, l’administrateur ou conseil de sécurité, le délai de mise à niveau, la pause et les limites de débit. Être canonique, officiel, audité ou fondé sur des preuves ne constitue pas une conclusion complète sur le risque.
  4. Construire la machine à états du message propre à chaque direction : soumission, inclusion et finalité exigée sur la source ; identifiant, nonce ou séquence du message ; preuve ou attestation ; relais ; exécution à destination ; accusé de réception ; et toute nouvelle tentative, expiration, restitution ou réclamation. Les parcours de dépôt et de retrait peuvent être asymétriques.
  5. Construire les registres de l’actif et du message en unités brutes. Rapprocher les actifs séquestrés admissibles, l’offre vive de la représentation, les créances verrouillées mais pas encore émises, les créances détruites mais pas encore libérées, les destructions et émissions de l’émetteur, les identifiants de messages consommés et les autorisations restantes. Ne jamais compter les actifs séquestrés et leur représentation comme deux actifs indépendants.
  6. Construire un registre économique exécutable. Séparer le principal en jetons et les frais de protocole du gas source et de destination, des frais du relayeur ou fournisseur de liquidité, de la capacité cotée, de la sortie minimale, du slippage, de l’impact sur le prix et du coût d’attente. Une cotation n’est pas une exécution, et le gas payé dans un jeton natif n’est pas automatiquement déduit de la sortie du jeton transféré.
  7. Rapprocher la route à partir de preuves réelles : reçu et bloc final sur la source, état du message ou paquet, résultat du vérificateur, reçu et modifications d’état à destination, contrat exact du jeton reçu, solde, possibilité de remboursement et liquidité. Révoquer les autorisations excessives, conserver du gas pour la récupération et s’arrêter plutôt que répéter un transfert inexpliqué.

Exemples détaillés

  • Couverture avec créances en transit. Les actifs séquestrés admissibles sont de 10,000 units ; la représentation vive à destination est de 9,700 units ; les créances verrouillées mais pas encore émises sont de 200 units ; et celles détruites mais pas encore libérées de 100 units. Les créances économiques sont de 9,700 + 200 + 100 = 10,000 units, donc la couverture ajustée est de 10,000 / 10,000 = 100.0000000000%. Diviser uniquement par l’offre vive affiche à tort 10,000 / 9,700 = 103.0927835052%. La couverture ne prouve ni la sécurité du contrat ni la liquidité immédiate.
  • Sortie en jetons et coût économique. Un utilisateur envoie 5,000 USDC ; des frais de protocole de 5 USDC sont déduits, de sorte que la sortie en jetons à destination est de 4,995 USDC. Le gas source est de 0.003 ETH et celui de la réclamation à destination de 0.001 ETH ; au cours explicite de 2,000 USD/ETH, ces flux de trésorerie distincts coûtent $6 et $2. Le coût économique total est de $5 + $6 + $2 = $13 et la richesse nette reçue de $4,987, mais le solde à destination reste de 4,995 USDC.
  • Compromission du seuil et déficit de réserve. Un bridge hypothétique à attestateurs 3-of-5 détient $5,000,000 d’actifs séquestrés et 5,000,000 unités enveloppées légitimes. Si trois clés autorisées falsifient une émission sans couverture de 1,000,000-unit, l’offre passe à 6,000,000, le déficit est de $1,000,000 et la couverture au prorata de 5,000,000 / 6,000,000 = 83.3333333333%, soit $0.8333333333 de réserve par jeton. Il s’agit d’un résultat comptable, pas d’un prix de marché ou de récupération garanti.
  • Capacité d’une route de liquidité. La demande porte sur 100,000 units. La route A dispose d’une capacité de 60,000 et facture 0.20%, livrant 60,000 * (1 - 0.002) = 59,880 units. Une route B indépendante traite 40,000 à 0.35% plus 20 units, livrant 40,000 * (1 - 0.0035) - 20 = 39,840 units. La sortie totale est de 99,720 units ; le coût est de 280 units, soit 280 / 100,000 = 0.2800000000%. Chaque route possède ses propres hypothèses de sécurité et l’exécution partielle n’existe que si le protocole et les reçus réels la permettent.

Risques

  • Sélectionner une source, une destination, un chainId ou un domaine incorrects.
  • Utiliser une interface, un site de documentation ou un agrégateur de routes d’hameçonnage.
  • Envoyer par une passerelle, un routeur, un messager ou un adaptateur contrefait.
  • Accepter une mauvaise paire de jetons, un mauvais destinataire ou une représentation au même symbole.
  • Mal interpréter les décimales, les unités brutes ou le comportement des jetons avec frais de transfert ou rebase.
  • Conserver une approbation, un permis ou une autorisation d’opérateur excessifs.
  • Se fier à une transaction source avant une finalité suffisante ou après une réorganisation.
  • Faire confiance à des clés compromises de vérificateurs, validateurs, attestateurs ou membres du seuil.
  • Accepter un client léger, un vérificateur de preuves ou un mécanisme de contestation défectueux.
  • Permettre des défaillances de rejeu, double émission, séquence, ordre ou idempotence.
  • Considérer le succès sur la source comme une preuve d’exécution à destination.
  • Sous-financer le gas à destination pour l’exécution, une nouvelle tentative, une réclamation ou une restitution.
  • Dépendre de relayeurs, prouveurs, attestateurs ou exécuteurs indisponibles.
  • Perdre la disponibilité en raison de la censure du séquenceur ou de données indisponibles.
  • Manquer une mise à niveau, un changement d’administrateur, une pause, une limite de débit ou le contournement d’un timelock.
  • Ignorer l’insolvabilité des actifs séquestrés, les réserves mutualisées ou une dérive comptable en transit.
  • Supposer que les hooks de jetons non standard sont compatibles avec le bridge.
  • Dépasser la capacité de liquidité ou s’appuyer sur une cotation et un parcours de rééquilibrage obsolètes.
  • Subir une perte d’ancrage, du slippage, du MEV ou un parcours de remboursement inutilisable.
  • Mal comprendre les règles d’expiration, restitution, récupération, fiscalité, sanctions ou conservation.

Idées reçues

  • La même monnaie se déplace physiquement d’une blockchain à une autre.
  • Canonique, officiel, audité ou fondé sur des preuves signifie automatiquement sans risque.
  • Une transaction source réussie garantit le crédit à destination et le règlement final.
  • Une couverture un pour un garantit un remboursement immédiat un pour un et la liquidité de marché.
  • Un bridge rapide est simplement la même route de règlement exécutée plus vite.

Sujets connexes

Sources

Navigation

Rechercher dans le wiki...