加密駭客最愛的跨鏈橋真的不能碰嗎?一文解釋不同跨鏈橋分類與比較:過去、現在與未來

加密駭客最愛的跨鏈橋真的不能碰嗎?一文解釋不同跨鏈橋分類與比較:過去、現在與未來

(本文經授權轉載自 NIC Lin,原文標題為《跨鏈橋比較》,作者為 XY Finance 顧問)

本文將介紹跨鏈橋是什麼並將跨鏈橋進行分類與比較,搭配一些著名跨鏈橋攻擊事件進行分析。

什麼是跨鏈橋

跨鏈橋是一個在不同鏈之間負責傳遞「訊息」的橋,至於是什麼樣的訊息,接下來會介紹。跨鏈橋的例子包含 Multichain、Celer、XY、Nomad、Rainbow Bridge、Hop 等等。

鏈是不知道彼此的存在的

大家熟悉的跨鏈橋使用場景絕大多數都是將資產例如 進行跨鏈。但實際上「資產」是沒辦法跨鏈的,這是因為每一條鏈都是各自獨立的,它們不會知道彼此的存在、彼此的狀態。

至於 上的 ETH 或是 ETH 上的 是怎麼來的?那些都是跨鏈橋鑄造出來的,只要這些跨鏈橋是安全的,這些鑄造出來的幣就是安全的。

註:其他像是 ,有些是 和 Circle 到不同鏈上去鑄造出來的,剩下則一樣是由跨鏈橋所鑄造。

傳遞什麼「訊息」?

表面雖然是資產在跨鏈,但背後實際上就只是「訊息」在跨鏈而已。這些訊息像是「我在 A 鏈上把 X 資產鎖住/燒毀了」或「我在 B 鏈上把 Y 資產解鎖/鑄造出來了」,訊息的接收方就按照訊息內容來執行相對應的處理。

例如當 Alice 想透過一個跨鏈橋把 USDT 從 A 鏈「轉移」到 B 鏈,實際上背後發生的是:

  • 跨鏈橋在 A 鏈的合約把 USDT 從 Alice 身上轉過來,並送出一個訊息:「Alice 在我這鎖住了 10 USDT」
  • 訊息被帶至跨鏈橋在 B 鏈的合約,合約從自己身上轉 10 USDT 給 Alice 在 B 鏈上的地址
yic01
資產跨鏈實際上背後是單純的訊息傳遞,中間省略許多細節

「訊息」的傳遞是跨鏈橋的核心,現在最常見的資產跨鏈只是其中一種用途而已,像 的 V3 版本就是一個運行在多個網路之上的抵押借貸平台。

限制與挑戰

但跨鏈橋並沒有像上面那個例子這麼簡單。跨鏈橋的一個最根本的限制來自於「鏈不知道彼此存在」這個事實,因此它需要「相信某個人來傳遞訊息」。所以跨鏈橋的主要挑戰就在於「要怎麼驗證一個送來的訊息的有效性」。

註:這裡的「相信」訊息傳遞者並非指完全相信,後面的段落中會介紹到有些橋是不需要相信訊息傳遞者的。傳遞者可能是好人也可能是壞人,但對傳遞者(們)的特質會有一些其他的假設。

安全性

基本上一個跨鏈橋的安全性取決於:

  • 需要放多少信任在訊息傳遞者身上?對訊息傳遞者的行為有沒有一些假設?是否假設訊息傳遞者只能誠實地執行他的工作?
  • 如何驗證訊息的有效性?

接下來將介紹不同跨鏈橋的分類。

跨鏈橋的分類

跨鏈橋基本上可以分成四種:

  • Trusted Relayers
  • Optimistic Verification
  • Light client + Trustless relayers
  • HTLC

(如果對分類有其他想法或意見都歡迎留言或信件討論。)

1. Trusted Relayers

顧名思義,Trusted Relayers 就是信任訊息傳遞者。基本上相信訊息傳遞者後,也不需要再驗證訊息有效性了,只要是信任的訊息傳遞者帶來的訊息都相信是有效的。而自然地當有了信任及中心化的假設,架構就會簡單許多,而且成本會很低、使用體驗會很好。

Trusted Relayers 的技術沒什麼特別之處或亮點,就看這些訊息傳遞者的組成,可以是單個或多個(就像多簽);每一個訊息傳遞者背後也可以是多簽或是 MPC。

這裡必須要提到的一點是 Trusted Relayers 的安全假設是 Honest Majority,也就是過半數的訊息傳遞者必須是誠實的好人。如果超過一半的訊息傳遞者是壞人或被駭客入侵,則這個跨鏈橋的就不再安全。

另外要提到的是 Layer Zero 也是屬於 Trusted Relayers,即便在他們的定義裡訊息傳遞者的角色被分成「Oracle」及「Relayer」,但還是不改變整個橋的安全性仰賴這兩個角色不能都是壞人。不過 Layer Zero 相較於其他 Trusted Relayers 橋的優點是:每個 dApp 能自己客製化自己需要的安全性。如果你很需要安全性,你可以把「Oracle」及「Relayer」的數量設定的很高。另一個優點是:每個 dApp 的安全性彼此是獨立、不互相影響的。

例子:Multichain、Celer、、Wormhole、Ronin Bridge、XY

2. Optimistic Verification

和 Optimistic Rollup 的 Optimistic 一樣,都是先樂觀地接受傳遞過來的訊息,但會驗證訊息的有效性,如果發現是無效的則發起挑戰。優點是絕大多數的時間系統都會是正常運作(因為作惡會被挑戰並懲罰),訊息都是有效所以不需發起挑戰,所以成本非常低,因為不需要在鏈上去驗證訊息。缺點是必須要有一段挑戰期(Optimistic Window),讓負責驗證的人有足夠多時間驗證並發起挑戰。接下來會以 Nomad 為例,介紹 Optimistic Verification 的運作。

Nomad 裡有三個角色:Updater、Relayer 及 Watcher。

  • Updater 抵押擔保品,並負責為訊息簽名做擔保,例如「我以我的擔保品發誓 Alice 申請要從鏈 A 送 XXX 訊息到鏈 B」
  • Relayer 單純負責把訊息及 Updater 的簽名送到目標鏈(鏈 B)上
  • Watcher 負責監督 Updater,並在 Updater 作惡時反應

正常情況

Alice 觸發鏈 A 合約,要求送訊息到鏈 B
1 ZRRgOhwQvR2oDtzo4chCqg
Updater 對 Alice 的訊息簽名
1 pnYo0Gbi53FVGaPc3Hm2wA
Relayer 負責將訊息及 Updater 簽名送到鏈 B

等到挑戰期(Optimistic Window)結束後,訊息生效,完成訊息跨鏈。

Updater 作惡

1 uEg5eFsb0JXGuODAMjTCbg
Updater 對一個憑空捏造的訊息簽名,並請 Relayer 夥伴送到鏈 B
1 LdKCzTcCB5UvBhlE55L3nQ
Watcher 發現後,先到鏈 B 把訊息作廢,再把證據(Updater 簽名)送到鏈 A,沒收 Updater 擔保品

鏈 A 的合約可以很清楚驗證 Updater 所簽名的訊息到底存不存在,因為只有使用者親自送請求到合約,訊息才會真的存在。所以當 Updater 對一個不存在的訊息簽名,這個簽名就會變成作惡的 Updater 百口莫辯的證據,用來沒收 Updater 的擔保品。

證據只在訊息來源鏈(鏈 A)有效

目標鏈(鏈 B)永遠沒辦法知道鏈 A 上有誰要送什麼訊息過來,所以鏈 B 合約沒辦法知道 Updater 擔保的訊息到底是不是真的。

那鏈 B 能怎麼辦?答案是需要引入 Permissioned Watcher。Permissioned Watcher 有權利能作廢任何一個訊息,避免偽造的訊息造成任何破壞。但相反地它也可以作廢一個正常的訊息,也因此這個角色必須要是 Permissioned,他需要是一個被信任的角色。

如果有 Permissioned Watcher 亂搞,惡意作廢正常的訊息,則這時候只能仰賴另一層信任,可能是 Governance 或是一個多簽 Admin 之類的來介入,將惡意的 Watcher 剔除。

只需要假設至少有一個 Watcher 有在做事

和 Trusted Relayer 的安全假設非常不同,相對於 Trusted Relayer 需要假設有過半數誠實參與者,Optimistic Verification 只需要假設至少有一個 Watcher 是好人即可。這表示要攻破 Optimistic Verification,你需要攻破(例如駭入、賄賂、DoS)全部的 Watcher。

30 分鐘挑戰期

不同於 Optimistic Rollup 挑戰期多達七天,Optimistic Verification 的挑戰期只有 30 分鐘。這是因為 Optimistic Verification 的挑戰不需要挑戰者與被挑戰者之間來回交互,而是直接提交一個一次定生死的證據:「Updater 簽名的訊息存不存在?(yes/no)」。

3. Light client + Trustless relayers

這種跨鏈橋的方式是讓目標鏈成為來源鏈的輕節點,可以是鏈下運行一個輕節點,也可以是用鏈上合約模擬一個輕節點:合約裡記錄來源鏈每個區塊並驗證每個區塊的標頭檔( Header)。除了驗證標頭檔的內容是有效的之外,還需要驗證共識,也就是 PoW 的驗算或 PoS 的投票結果。PoW 的驗算還算簡單,但 PoS 的投票結果就複雜許多,尤其是像 Ethereum Beacon Chain 多達四十多萬的 Validator,要維護這些名單在合約或計票的成本都非常高。

另外每條鏈的區塊內容和共識機制都不一樣,因此要支援新的一條鏈並非簡單的工作,再加上驗證成本會比其他跨鏈橋高上許多,這些都是這種跨鏈橋的主要缺點。不過優點是它非常安全,它不需要相信負責帶區塊資訊來的 Relayer,它會自己驗證區塊和共識。

Light Client 合約驗證 Relayer 帶來的鏈 A 的區塊資訊及共識

註:雖然 Relayer 只是跑腿的,但還是需要假設有誠實的 Relayer 在線,確保正確的區塊資訊會被帶過來,避免造假的分叉鏈來破壞安全性。

驗證完區塊標頭檔後,剩下就是去驗證 (1) 交易存在於某個區塊,或是 (2) 某個 event 在某個區塊被 emit,或是 (3) 某個地址的 storage 是某個值。舉例:

(1) 像是驗證 BTC 上 Alice 轉帳給某個地址,或是在 OP_RETURN 附上某個訊息

(2) 像是驗證 ETH 上的 Bridge 合約確實 emit 了 CrossChainMessageRequested event(event 的 receipt 會存在 receipt tree,tree root 會記錄在標頭檔裡)

(3) 像是驗證 Optimism 上的 Bridge 合約的 storage 確實存在一筆資料是記錄了 Alice 申請的訊息跨鏈的請求

接著 Alice 向 Light Client 合約利用 (1)(2)(3) 的方法證明自己發起過跨鏈請求

驗證成功後就能相信來源鏈真的存在一筆訊息跨鏈的請求。

例子: IBC、Near Rainbow Bridge

註: IBC 是透過運行輕節點,而不是用合約的方式,在不同(也僅限於) Cosmos 鏈之間傳遞訊息。Near Rainbow Bridge 只能在 Ethereum、Near、Aurora 三條鏈之間傳遞。

除了建造複雜與驗證成本高之外,這種跨鏈橋還有一個缺點是:每條鏈的 Finality 時間不一樣,例如 BTC 來的資料可能要等六個區塊(一小時)、ETH 來的資料可能要等 12.8 分鐘等等,使用體驗會差很多。

4. HTLC

HTLC 代表的是 Hashed TimeLock Contract(接下來會假設讀者知道 HTLC 的運作方式)。

註:HTLC 不一定要用 Hash 的方式來做 commitment,可以用簽章來代替

HTLC 優點是非常安全,但缺點是使用體驗比其他跨鏈橋差很多,例如:

  • 需要花更多筆交易才能完成跨鏈
  • 使用者必須待在線上直到跨鏈完成
  • Free Option Problem,發起 HTLC 的人是被動方,對手方可以選擇配合或不配合(看哪個對他有利)。不過如果對手方是一個有名聲要顧的商家(稱作 Router)就不需要那麼擔心這個問題
  • 不同 Router 的服務品質會有差異,導致使用體驗不一致

例子:Connext、Celer V1

以上是四種跨鏈橋的介紹,接下來會分析每一種跨鏈橋發生過的攻擊事件。

攻擊事件分析

1. Trusted Relayers 跨鏈橋的攻擊事件

Multichain, 2021.07, ~8M loss
在他們的 MPC 套件庫中重用了該是隨機產生的隨機值,導致可以被還原。相關連結

PolyNetwork, 2021.08, ~600M loss
漏洞導致攻擊者能獲得存取協議資產的權限。相關 連結

Multichain, 2022.01, ~3M loss
漏洞導致攻擊者可以任意轉走受害者的 wrapped token(例如 WETH、WBNB 等)。相關 連結

Qubit, 2022.01, ~80M loss
智能合約漏洞以及合約升級過程的疏忽,導致攻擊者可以直接把協議裡的資產全部提走。相關連結

Wormhole, 2022.02, ~300M loss
智能合約漏洞讓攻擊者可以跳過權限檢查,無限鑄造出新的代幣。相關連結

Ronin Bridge, 2022.03, ~600M loss
多簽成員(九個裡的五個)的節點被攻陷。相關連結

Horizon Bridge, 2022.06, ~100M loss
多簽成員(五個裡的兩個)的被盜。相關連結

2. Optimistic Verification 跨鏈橋的攻擊事件

Nomad, 2022.08, ~190M loss
智能合約漏洞及合約升級過程的疏忽,導致任何人都可以偽造跨鏈訊息來轉走資產。相關連結

3. Light Client + Trustless Relayers 跨鏈橋的攻擊事件

Near Rainbow Bridge, 2022.05 & 2022.08, no fund lost
兩次嘗試偽造跨鏈訊息的攻擊都被 watchdog 服務擋下來。相關連結

4. HTLC 則沒有過攻擊事件

其實可以看出來攻擊事件都是發生在 Trusted Relayers 節點安全管理問題及合約出現問題,沒有針對 Optimistic Verification、Light Client 或 HTLC 跨鏈橋本身協議成功的攻擊事件。

跨鏈橋的比較

接著是不同種跨鏈橋技術在「成本(Cost)」、「使用者體驗(UX) 」及「安全性(Security)」三個方面的比較。以下會直接以圖片呈現

1. 成本(Cost)

1 pBkyo0JTQVOX9D KLkX PQ

  • Trusted Relayers:成本最低,因為不需什麼複雜的驗證,Relayer 帶來的資訊都直接相信
  • Optimistic Verification:只需要驗證 Merkle Proof
  • Light Client:要驗證最多東西,包含共識、區塊標頭檔及交易或狀態的證明
  • HTLC:驗證的東西很簡單,但會需要多筆交易(Lock/Unlock)才能完成

2. 使用者體驗(UX)

1 Rva885P yay6MCDsOed2dg

  • Trusted Relayers:體驗最好,Relayer 動作多快跨鏈就有多快,使用者也不需要做什麼事
  • Optimistic Verification:需要等待挑戰期(Optimistic Window),以及有可能遇到 Updater 下線或 Watcher 惡搞
  • Light Client:需要等待 Finality、不同鏈會有不一樣的體驗,且支援的鏈少
  • HTLC:需要多筆交易(Lock/Unlock)才能完成、使用者需要保持在線、Router 們的服務品質不一致

3. 安全性(Security)

1 KSsjeunwQhfgSMp5MRZoXw

  • Trusted Relayers:安全性最低、需要大多數多簽成員是誠實的假設,或是少部分成員被 DoS 打下線也會造成服務停擺
  • Optimistic Verification:只需要假設至少有一個 Watcher 是誠實的,但 Updater 被 DoS 打下線還是會造成服務停擺
  • Light Client:非常安全,必須要能攻擊那些鏈的共識才有可能造成傷害
  • HTLC:最安全,必須要攻破 hash function 才有可能造成傷害

Rollup Bridge 和跨鏈橋的不同

Rollup Bridge 指的是 Rollup 和其 L1 之間的原生橋,因為 L1 和Rollup 之間可以直接傳遞訊息,且訊息的有效性是被零知識證明或詐欺證明所保障的,所以比 L1 與 L1 之間的跨鏈橋還要安全許多。

不過 Rollup 原生橋會有一些延遲:ZK Rollup 要等待零知識證明產生並上鏈、Optimistic Rollup 要等待挑戰期結束。

註:延遲主要是發生在 Rollup -> L1 的訊息,L1 -> Rollup 的訊息都非常快速

如果不想等待則可以使用第三方提供的服務:你用原生橋的方式轉錢給第三方,第三方在 L1 先把錢墊付給你,他再慢慢等錢從原生橋過來。更多關於 Rollup Bridge 的介紹可以參考 imToken 的系列文。

使用跨鏈與提供流動性的安全性需求是不同的

如果你只是單純使用跨鏈服務,例如把錢從鏈 A 轉到鏈 B,則你不需要擔心太多,即便橋被駭,只要橋還有殘存流動性或後來有新注入的流動性,你的跨鏈請求就一定會被完成。

但如果你是想要提供流動性給跨鏈橋來賺跨鏈手續費的話,就要謹慎選擇跨鏈橋了。如果被盜的金額太大,項目方賠不出來,那你就一定會賠錢。可以選擇有額外安全機制的跨鏈橋,例如 Celer 和 XY 都有對跨鏈轉帳訂一個上限(例如單次或一段時間內最高累積只能轉 100M)。

其實就和使用 AMM 一樣,提供流動性一定會承受比單純 swap 更大的

最近的新技術或發展

ZK Light Client Bridge

前面有提到 Light Client 跨鏈橋雖然安全,但成本很高,好消息是零知識證明可以有效降低這個成本。但要注意的是零知識證明只能提高效率,並不能提高安全性。而且零知識證明更為複雜,要等到 ZK Light Client 支援足夠多的鏈還要很長一段時間。

有兩個新項目在實作 ZK Light Client

  • Succinct Labs
  • zkBridge

跨鏈的世界還是個尚未開發的 MEV 寶地

  • 跨鏈交易比單鏈轉帳創造出更多的 MEV 機會
  • 如果跨鏈交易再搭配去 DEX 做 swap 的話那 MEV 機會又更多

想了解更多資訊可以參考 Nomad 創辦人在 ETHAmsterdam 的 MEV Day 的演講及投影片。他推斷跨鏈 DEX 做不起來,因為價格會因為更多的 MEV 機會影響而導致沒有競爭力,要用跨鏈 DEX 還不如單純先把資產跨鏈再自己去 DEX swap。

(Special thanks to Kevin Mai-Hsuan Chia for reviewing and improving this post)

本文轉自網路,如有侵權請來信告知,本網站不代表任何投資建議,僅提供資訊,若用戶有任何投資相關行為皆與本站無關

本網站所載的任何資訊均不構成投資建議,投資有賺有賠,投資人應獨立判斷,審慎投資,自負風險

Related Posts