> ## 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.

# ブリッジ

> 担保資産がIntentionと外部チェーンの間をどう移動するのか、すなわち入金、異議申立期間を伴う二段階の出金、それを止められるロールです。

ブリッジは、ネットワークが自分で作ったのではない資産に触れる場所です。このアーキテクチャの他の部分はすべて、ブロックをリプレイすれば誰でも正しさを検証できる閉じたシステムです。ブリッジはそうなれません。その半分が、独自のバリデータ、独自のファイナリティ、独自の故障モードを持つ別のチェーンの上にあるからです。

この非対称性が設計を決めています。入金と出金は対称な操作ではなく、出金は技術的に必要な速度よりも意図的に遅くしてあります。

<h2 id="roles">
  ロール
</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">外部チェーン</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">ブリッジコントラクト</span><span className="dg-s">資産を保管 · 解放前に署名を検証</span><span className="dg-n">資金が実際に依存している部分</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">バリデータ</span><span className="dg-s">外部チェーンを観測し、見たものに署名</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">ファイナライザ</span><span className="dg-s">権限ではなく中継役。バリデータが署名していない出金は作れない</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">ガバナー</span><span className="dg-s">バリデータ集合とパラメータ。安全に自動化できないもの</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"89.0909%",width:"100.0000%"}}><div className="dg-n">出金が実行可能になるのは、十分な数のバリデータ署名が集約されてからです。コンセンサスと同じ信頼前提を、チェーンの境界をまたいで適用しています。</div></div>
    <div className="dg-lbl" style={{left:"45.8333%",top:"21.2121%",width:"12.2222%",whiteSpace:"normal"}}>入金イベント</div>
    <div className="dg-lbl" style={{left:"87.2222%",top:"36.9697%",width:"19.4444%",whiteSpace:"normal"}}>集約署名</div>
    <div className="dg-lbl" style={{left:"45.8333%",top:"45.4545%",width:"12.2222%",whiteSpace:"normal"}}>出金トランザクション</div>
  </div>
</div>

**バリデータ**は外部チェーンを観測し、見たものに署名します。出金が実行可能になるのは、十分な数のバリデータ署名が集約されてからです。コンセンサスと同じ信頼前提を、チェーンの境界をまたいで適用しています。

**ファイナライザ**は外部チェーン側にトランザクションを送信します。権限ではなく中継役です。*いつ*送信するかを選べますし、送信に失敗することもありますが、バリデータが署名していない出金を作り出すことはできません。

**ガバナー**は管理操作を行います。バリデータ集合の変更、パラメータの更新です。その権限は、安全に自動化できないものだけです。

**ブリッジコントラクト**は外部チェーン側で資産を保管し、何かを解放する前に署名を検証します。ユーザーの資金が実際に依存しているのは、この部分です。

<h2 id="deposits">
  入金
</h2>

入金は簡単な方向です。資金は外部コントラクトにロックされ、コントラクトが入金イベントを発行します。バリデータがそれを観測し、その入金の反映はIntention上のプロトコルネイティブなトランザクションになります。

その反映が通常のトランザクションである以上、[カーネル](/ja/protocol/architecture/kernel)が保証するものをすべて引き継ぎます。正規の順序で実行され、アカウントへの影響はそのトランザクションに帰属し、他のあらゆる状態変化と同じ出力の中に現れます。強制決済が迫ったポジションの証拠金を回復させる入金は、同じ実行ステップの中で[クリアリングハウス](/ja/protocol/architecture/clearinghouse)から見えます。あとの突合処理ではありません。

待ち時間は外部チェーンのファイナリティによるもので、Intention側のものではありません。入金は、送金元チェーンの確認数の要件が満たされた時点で反映されます。

<h2 id="withdrawals">
  出金
</h2>

出金は危険な方向であり、間に**異議申立期間**を挟む二つのフェーズで進みます。

<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">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">バリデータが署名し、コントラクトに登録</span><span className="dg-s">支払いは行われない</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">異議申立期間</span><span className="dg-s">設定された期間の経過が必要</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">確定</span><span className="dg-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">無効化</span><span className="dg-s">資金が動く前に取り消し</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">待たせる理由</span><span className="dg-s">壊滅的なブリッジ事故はどれも同じ構造です。攻撃者が出金を承認する能力を手に入れ、資金は同じブロックの中で消えます。異議申立期間は、瞬時で不可逆な損失を、監視と人間が動ける時間の窓に変えます。その代償として、正当な出金も待たされます。</span></div>
    <div className="dg-lbl" style={{left:"79.1667%",top:"10.3448%"}}>経過</div>
    <div className="dg-lbl" style={{left:"79.1667%",top:"54.4828%"}}>異議あり</div>
  </div>
</div>

リクエストはバリデータが署名し、外部コントラクトに登録されます。この時点では支払いは行われません。設定された期間がまず経過する必要があり、その間に出金は**無効化**できます。資金が動く前に取り消されるということです。

これは性能上の見落としではありません。壊滅的なブリッジ事故はどれも同じ構造をしています。攻撃者が出金を承認する能力を手に入れ、資金は同じブロックの中で消えます。異議申立期間は、瞬時で不可逆な損失を、人間と監視が動ける時間の窓に変えます。その代償として、正当な出金も待たされます。

出金はバッチ処理されます。一件ずつではなく、まとめて申請・確定されるということです。だから外部チェーンの手数料は、出金件数に比例して増えません。

失敗は明示されます。確定できない出金は、黙って何もしないのではなくエラーコード付きの失敗を出力します。そのため*滞留*と*拒否*の違いは、何も起きないことから推測するのではなく観測できます。

<h2 id="stopping-it">
  止める手段
</h2>

何かがおかしいときのための仕組みが二つあります。

**無効化**は、異議申立期間中の特定の出金を取り消します。狙いを定めた対応です。

**ロック**は大雑把なほうです。指定されたロールがブリッジをロックでき、実行に必要な当事者の数自体がパラメータになっています。これは「何かがおかしいが、それが何かはまだ分からない」ときの仕組みです。個々のトランザクションを裁定するのではなく、流れそのものを止めます。

<Warning>
  これらの制御があるからこそ異議申立期間が意味を持ちますが、同時にこれらは現実の信頼前提でもあります。ブリッジをロックできる当事者は、正当な出金を止めることもできます。これは意図的なトレードオフです。ブリッジは壊滅的かつ不可逆に壊れるものであり、止められることのほうが、決して止まらないと保証できることよりも価値があります。[リスク開示](/ja/protocol/security/risks)を参照してください。
</Warning>

<h2 id="validator-set-changes">
  バリデータ集合の変更
</h2>

外部コントラクトは、バリデータが誰なのかを知っている必要があります。つまりバリデータ集合の変更は、境界を越えて伝播しなければなりません。変更は提出された瞬間に有効になるのではなく、提案されたのち別のステップで確定されます。出金と同じ二段階の形であり、理由も同じです。

<h2 id="where-the-risk-actually-sits">
  リスクが実際にある場所
</h2>

ブリッジはユーザーが資金を失う場所なので、はっきり書いておきます。

* **Intention上では、ブリッジは特別なものではありません**。反映された入金は、通常の保証を持つ通常のトランザクションです。
* **外部チェーン上では、コントラクトと署名しきい値に依存します**。これはコンセンサスとは別のセキュリティモデルであり、[個別に監査されています](/ja/protocol/security/audits)。ブリッジは第三者レビューの対象となっているコンポーネントです。
* **その間では、バリデータが正しく観測すること**と、ファイナライザが送信することに依存します。どちらも出金をでっち上げることはできませんが、どちらも遅らせることはできます。

<Note>
  対応チェーン、対応資産、確認数の要件、異議申立期間の長さは、リリースごとに変わる運用パラメータです。正となる値は、送金するその時点で取引所の入金・出金ダイアログに表示されているものです。[入金](/ja/help/deposit)と[出金](/ja/help/withdraw)を参照してください。
</Note>

<h2 id="where-to-go-next">
  次に読む
</h2>

<CardGroup cols={2}>
  <Card title="資金を入金する" href="/ja/help/deposit">
    ユーザー側から見た入金の手順と、現在の対応チェーンおよび所要時間です。
  </Card>

  <Card title="取引以外の手数料" href="/ja/programs/other-fees">
    出金にいくらかかるのか、なぜ入金が無料なのかです。
  </Card>

  <Card title="クリアリングハウス" href="/ja/protocol/architecture/clearinghouse">
    入金が着金した瞬間に証拠金へ与える影響です。
  </Card>

  <Card title="リスク開示" href="/ja/protocol/security/risks">
    ブリッジの信頼前提をリスクとして明示します。
  </Card>
</CardGroup>
