> ## 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">Finalizer</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">Governor</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>

**驗證者**觀測外部鏈，並對看到的內容簽章。一筆提領要聚合到足夠多的驗證者簽章才可執行：這和共識是同一套信任假設，只是跨過了鏈的邊界。

**Finalizer**（定案方）在外部鏈一側提交交易。它是中繼，不是權威：可以自己決定**什麼時候**提交，也可能提交不成，但造不出一筆驗證者沒簽過章的提領。

**Governor**（治理方）執行管理類操作：驗證者集合變更、參數更新。它掌握的，正是那些沒辦法安全自動化的權限。

**跨鏈橋合約**在外部鏈一側持有託管資產，並在釋放任何東西之前驗證簽章。它是使用者資金真正依賴的那個部件。

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

存入是容易的那個方向。資金鎖進外部合約，合約發出一個存入事件；驗證者觀測到這個事件，入帳就在 Intention 上成為一筆協議原生的交易。

既然這筆入帳就是一筆普通交易，[核心](/zh-Hant/protocol/architecture/kernel)保證的一切它全部繼承：按規範順序執行，對帳戶造成的影響歸到自己名下，並且和其他任何狀態變更一樣出現在同一份輸出裡。某個部位快被強平，這時一筆存入補上保證金，[清算所](/zh-Hant/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>
  這些控制手段既讓爭議期真正有用，也真的就是信任假設。能鎖定跨鏈橋的一方，同樣能擋住正常的提領。這是刻意的取捨：跨鏈橋一旦失效就是災難性且不可逆的，而「能夠叫停」的價值高於「保證它永不暫停」。參見[風險揭露](/zh-Hant/protocol/security/risks)。
</Warning>

<h2 id="validator-set-changes">
  驗證者集合變更
</h2>

外部合約必須知道驗證者是誰，所以驗證者集合一有變更，就得跨過邊界傳過去。變更先提出，再用單獨一步定案，不是一提交就生效：和提領同樣的兩階段形態，理由也相同。

<h2 id="where-the-risk-actually-sits">
  風險到底在哪裡
</h2>

值得直說，因為跨鏈橋正是使用者虧錢的地方：

* **在 Intention 一側，跨鏈橋是普通的。** 一筆已入帳的存入就是一筆普通交易，帶著普通的保證。
* **在外部鏈一側，你依賴的是合約和簽章門檻。** 這是和共識不同的安全模型，也[單獨接受稽核](/zh-Hant/protocol/security/audits)：跨鏈橋正是接受第三方審查的那個元件。
* **在兩者之間，你依賴驗證者正確觀測**，以及 Finalizer 完成提交。兩者都偽造不出一筆提領；兩者都可以拖延一筆提領。

<Note>
  支援的鏈、資產、確認數要求，以及爭議期的長度，都是隨每次發布而變化的營運參數。權威數值以你轉帳當下、交易所存入和提領對話框裡顯示的為準；參見[存入](/zh-Hant/help/deposit)與[提領](/zh-Hant/help/withdraw)。
</Note>

<h2 id="where-to-go-next">
  後續閱讀
</h2>

<CardGroup cols={2}>
  <Card title="存入" href="/zh-Hant/help/deposit">
    面向使用者的存入路徑，含當前支援的鏈與時長。
  </Card>

  <Card title="非交易類費用" href="/zh-Hant/programs/other-fees">
    一筆提領要花多少錢，以及存入為什麼免費。
  </Card>

  <Card title="清算所" href="/zh-Hant/protocol/architecture/clearinghouse">
    一筆存入落地的那一刻，對保證金做了什麼。
  </Card>

  <Card title="風險揭露" href="/zh-Hant/protocol/security/risks">
    以風險形式陳述的跨鏈橋信任假設。
  </Card>
</CardGroup>
