> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Bridge

> Comment le collatéral circule entre Intention et les chaînes externes — dépôts, retraits en deux phases avec période de contestation, et les rôles capables de tout arrêter.

Le bridge (pont inter-chaînes) est l’endroit où le réseau touche des actifs qu’il n’a pas créés. Tout le reste de cette architecture est un système clos dont chacun peut vérifier la correction en rejouant les blocs. Un bridge ne peut pas l’être, parce que la moitié d’un bridge se trouve sur une autre chaîne, avec ses propres validateurs, sa propre finalité — le moment où un bloc devient irréversible — et ses propres modes de défaillance.

Cette asymétrie gouverne la conception. Dépôts et retraits ne sont pas des opérations symétriques, et les retraits sont délibérément plus lents qu’ils n’auraient techniquement besoin de l’être.

<h2 id="roles">
  Les rôles
</h2>

<div className="dg" data-dg="bridge-roles">
  <div className="dg-c" style={{aspectRatio:"720 / 330"}}>
    <svg className="dg-w" viewBox="0 0 720 330" aria-hidden="true">
      <path className="dg-wire dg--blue" d="M 289.00 86.00 L 364.60 86.00" />

      <path className="dg-head dg--blue" d="M 371.00 86.00 L 364.60 90.40 L 364.60 81.60 Z" />

      <path className="dg-wire dg--blue" d="M 540.00 112.00 L 540.00 125.60" />

      <path className="dg-head dg--blue" d="M 540.00 132.00 L 535.60 125.60 L 544.40 125.60 Z" />

      <path className="dg-wire dg--sky" d="M 371.00 166.00 L 295.40 166.00" />

      <path className="dg-head dg--sky" d="M 289.00 166.00 L 295.40 161.60 L 295.40 170.40 Z" />

      <path className="dg-wire dg--yellow dg-dash" d="M 371.00 246.00 L 330.00 246.00 L 330.00 196.00 L 295.40 196.00" />

      <path className="dg-head dg--yellow" d="M 289.00 196.00 L 295.40 191.60 L 295.40 200.40 Z" />
    </svg>

    <div className="dg-band" style={{left:"0.0000%",top:"7.8788%",width:"41.6667%",height:"63.6364%"}}><span className="dg-cap">Chaîne externe</span></div>
    <div className="dg-band" style={{left:"50.0000%",top:"7.8788%",width:"50.0000%",height:"78.7879%"}}><span className="dg-cap">Intention</span></div>
    <div className="dg-b dg--orange" style={{left:"2.2222%",top:"18.1818%",width:"37.2222%",height:"45.4545%"}}><span className="dg-t">Contrat de bridge</span><span className="dg-s">assure la garde · vérifie les signatures avant toute libération</span><span className="dg-n">la pièce dont dépendent réellement les fonds</span></div>
    <div className="dg-b dg--blue" style={{left:"52.2222%",top:"14.5455%",width:"45.5556%",height:"18.1818%"}}><span className="dg-t">Validateurs</span><span className="dg-s">observent la chaîne externe et signent ce qu’ils voient</span></div>
    <div className="dg-b dg--sky" style={{left:"52.2222%",top:"41.2121%",width:"45.5556%",height:"18.1818%"}}><span className="dg-t">Finaliseur</span><span className="dg-s">un relais, pas une autorité — il ne peut pas créer un retrait non signé</span></div>
    <div className="dg-b dg--yellow" style={{left:"52.2222%",top:"65.4545%",width:"45.5556%",height:"18.1818%"}}><span className="dg-t">Gouverneur</span><span className="dg-s">ensemble des validateurs et paramètres — non automatisables</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"89.0909%",width:"100.0000%"}}><div className="dg-n">Un retrait n’est exécutable qu’avec assez de signatures de validateurs — la même hypothèse de confiance que le consensus, portée au-delà d’une frontière de chaîne.</div></div>
    <div className="dg-lbl" style={{left:"45.8333%",top:"21.2121%",width:"12.2222%",whiteSpace:"normal"}}>événements de dépôt</div>
    <div className="dg-lbl" style={{left:"87.2222%",top:"36.9697%",width:"19.4444%",whiteSpace:"normal"}}>signatures agrégées</div>
    <div className="dg-lbl" style={{left:"45.8333%",top:"45.4545%",width:"12.2222%",whiteSpace:"normal"}}>transactions de retrait</div>
  </div>
</div>

**Les validateurs** observent la chaîne externe et signent ce qu’ils voient. Un retrait ne devient exécutable qu’une fois réuni un nombre suffisant de signatures de validateurs — la même hypothèse de confiance que pour le consensus, appliquée de part et d’autre d’une frontière de chaîne.

**Le finaliseur** soumet les transactions du côté externe. C’est un relais, pas une autorité : il peut choisir *quand* soumettre, et peut ne pas soumettre du tout, mais il ne peut pas créer un retrait que les validateurs n’ont pas signé.

**Le gouverneur** effectue les opérations administratives — changements de l’ensemble des validateurs, mises à jour de paramètres. Ses pouvoirs sont ceux qu’on ne peut pas automatiser sans danger.

**Le contrat de bridge** assure la garde du côté externe et vérifie les signatures avant de libérer quoi que ce soit. C’est la pièce dont dépendent réellement les fonds d’un utilisateur.

<h2 id="deposits">
  Dépôts
</h2>

Le dépôt est le sens facile. Les fonds sont verrouillés dans le contrat externe, qui émet un événement de dépôt ; les validateurs l’observent, et le crédit devient une transaction native du protocole sur Intention.

Comme ce crédit est une transaction ordinaire, il hérite de tout ce que garantit le [noyau](/fr/protocol/architecture/kernel). Il s’exécute dans la séquence canonique, son effet sur le compte lui est attribué, et il est visible dans la même sortie que n’importe quel autre changement d’état. Un dépôt qui rétablit la marge d’une position proche de la liquidation est visible par la [chambre de compensation](/fr/protocol/architecture/clearinghouse) dans la même étape d’exécution — et non lors d’un rapprochement ultérieur.

L’attente porte sur la finalité de la chaîne externe, pas sur Intention. Un dépôt est crédité une fois atteint le nombre de confirmations exigé par la chaîne d’origine.

<h2 id="withdrawals">
  Retraits
</h2>

Le retrait est le sens dangereux, et il se déroule en deux phases séparées par une **période de contestation**.

<div className="dg" data-dg="bridge-withdrawal">
  <div className="dg-c" style={{aspectRatio:"720 / 290"}}>
    <svg className="dg-w" viewBox="0 0 720 290" aria-hidden="true">
      <path className="dg-wire dg--blue" d="M 154.00 91.00 L 179.60 91.00" />

      <path className="dg-head dg--blue" d="M 186.00 91.00 L 179.60 95.40 L 179.60 86.60 Z" />

      <path className="dg-wire dg--sky" d="M 354.00 91.00 L 379.60 91.00" />

      <path className="dg-head dg--sky" d="M 386.00 91.00 L 379.60 95.40 L 379.60 86.60 Z" />

      <path className="dg-wire dg--green" d="M 554.00 91.00 L 582.40 49.29" />

      <path className="dg-head dg--green" d="M 586.00 44.00 L 586.04 51.77 L 578.76 46.81 Z" />

      <path className="dg-wire dg--orange" d="M 554.00 91.00 L 582.78 140.47" />

      <path className="dg-head dg--orange" d="M 586.00 146.00 L 578.98 142.68 L 586.58 138.26 Z" />
    </svg>

    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"15.1724%",width:"20.8333%",height:"32.4138%"}}><span className="dg-t">Demandé sur Intention</span></div>
    <div className="dg-b dg--sky" style={{left:"26.3889%",top:"15.1724%",width:"22.2222%",height:"32.4138%"}}><span className="dg-t">Signé par les validateurs, enregistré au contrat</span><span className="dg-s">il ne verse rien</span></div>
    <div className="dg-b dg--yellow" style={{left:"54.1667%",top:"15.1724%",width:"22.2222%",height:"32.4138%"}}><span className="dg-t">Contestation</span><span className="dg-s">la période configurée doit s’écouler</span></div>
    <div className="dg-b dg--green" style={{left:"81.9444%",top:"5.5172%",width:"18.0556%",height:"19.3103%"}}><span className="dg-t">Finalisé</span><span className="dg-s">fonds libérés</span></div>
    <div className="dg-b dg--orange" style={{left:"81.9444%",top:"40.6897%",width:"18.0556%",height:"19.3103%"}}><span className="dg-t">Invalidé</span><span className="dg-s">annulé avant que rien ne bouge</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"0.0000%",top:"67.5862%",width:"100.0000%",height:"26.2069%"}}><span className="dg-t">Pourquoi attendre</span><span className="dg-s">Toute défaillance catastrophique de bridge a la même structure : un attaquant obtient le pouvoir d’autoriser un retrait, et les fonds partent dans le même bloc. Une période de contestation transforme une perte instantanée et irréversible en une fenêtre où supervision et humains peuvent agir. Le prix : les retraits légitimes attendent aussi.</span></div>
    <div className="dg-lbl" style={{left:"79.1667%",top:"10.3448%"}}>écoulée</div>
    <div className="dg-lbl" style={{left:"79.1667%",top:"54.4828%"}}>contestée</div>
  </div>
</div>

Une demande est signée par les validateurs et enregistrée sur le contrat externe. Elle ne verse rien. Une période configurée doit d’abord s’écouler, pendant laquelle le retrait peut être **invalidé** — annulé avant qu’aucun fonds ne bouge.

Ce n’est pas une négligence de performance. Toutes les défaillances catastrophiques de bridge ont la même structure : un attaquant obtient la capacité d’autoriser un retrait, et les fonds disparaissent dans le même bloc. Une période de contestation transforme une perte instantanée et irréversible en une fenêtre pendant laquelle des humains et une supervision peuvent agir. Le prix à payer, c’est que les retraits légitimes attendent eux aussi.

Les retraits sont traités par lots — demandés et finalisés par groupes plutôt qu’une transaction chacun — ce qui explique que les frais sur la chaîne externe n’augmentent pas linéairement avec le nombre de retraits.

Les échecs sont explicites. Un retrait qui ne peut pas être finalisé émet un échec assorti d’un code d’erreur plutôt que de ne rien faire en silence, si bien que la différence entre *bloqué* et *rejeté* s’observe au lieu de se déduire d’une absence.

<h2 id="stopping-it">
  L’arrêter
</h2>

Deux mécanismes existent pour le cas où quelque chose ne va pas.

**L’invalidation** annule un retrait précis à l’intérieur de sa période de contestation. C’est la réponse ciblée.

**Le verrouillage** est la réponse brutale : un rôle désigné peut verrouiller le bridge, et le nombre de parties devant agir est lui-même un paramètre. C’est le mécanisme du « quelque chose ne va pas et nous ne savons pas encore quoi » — il arrête le flux au lieu de trancher transaction par transaction.

<Warning>
  Ces contrôles sont ce qui rend la période de contestation utile, et ce sont aussi de véritables hypothèses de confiance. Une partie capable de verrouiller le bridge est capable d’arrêter des retraits légitimes. C’est un compromis délibéré : les bridges défaillent de façon catastrophique et irréversible, et pouvoir en arrêter un vaut mieux que pouvoir garantir qu’il ne s’interrompra jamais. Voir [Avertissements sur les risques](/fr/protocol/security/risks).
</Warning>

<h2 id="validator-set-changes">
  Changements de l’ensemble des validateurs
</h2>

Le contrat externe doit savoir qui sont les validateurs, ce qui implique que les changements de l’ensemble des validateurs doivent traverser la frontière. Ils sont proposés puis finalisés dans une étape distincte, au lieu de prendre effet à l’instant où ils sont soumis — la même forme en deux phases que les retraits, et pour la même raison.

<h2 id="where-the-risk-actually-sits">
  Où se situe réellement le risque
</h2>

Cela mérite d’être dit sans détour, parce que c’est sur les bridges que les utilisateurs perdent de l’argent :

* **Sur Intention, le bridge est ordinaire.** Un dépôt crédité est une transaction normale, avec des garanties normales.
* **Sur la chaîne externe, vous dépendez du contrat et du seuil de signatures.** C’est un modèle de sécurité différent de celui du consensus, et il est [audité séparément](/fr/protocol/security/audits) — le bridge est le composant soumis à une revue par un tiers.
* **Entre les deux, vous dépendez des validateurs pour observer correctement** et du finaliseur pour soumettre. Ni l’un ni l’autre ne peut fabriquer un retrait ; l’un comme l’autre peut le retarder.

<Note>
  Les chaînes et actifs pris en charge, le nombre de confirmations exigé et la durée de la période de contestation sont des paramètres opérationnels qui changent à chaque version. Les valeurs faisant autorité sont celles qu’affichent les fenêtres de dépôt et de retrait de la plateforme au moment où vous transférez — voir [Dépôt](/fr/help/deposit) et [Retrait](/fr/help/withdraw).
</Note>

<h2 id="where-to-go-next">
  Pour aller plus loin
</h2>

<CardGroup cols={2}>
  <Card title="Déposer des fonds" href="/fr/help/deposit">
    Le chemin d’entrée côté utilisateur, avec les chaînes et les délais actuels.
  </Card>

  <Card title="Frais hors trading" href="/fr/programs/other-fees">
    Ce que coûte un retrait, et pourquoi les dépôts sont gratuits.
  </Card>

  <Card title="Chambre de compensation" href="/fr/protocol/architecture/clearinghouse">
    Ce qu’un dépôt fait à la marge à l’instant où il arrive.
  </Card>

  <Card title="Avertissements sur les risques" href="/fr/protocol/security/risks">
    Les hypothèses de confiance du bridge, énoncées comme des risques.
  </Card>
</CardGroup>
