本文將介紹跨鏈橋是什么并將跨鏈橋進(jìn)行分類與比較,搭配一些著名跨鏈橋攻擊事件進(jìn)行分析。
什么是跨鏈橋?
跨鏈橋是一個(gè)在不同鏈之間負(fù)責(zé)傳遞“訊息”的橋,至于是什么樣的訊息,接下來會(huì)介紹??珂湗虻睦影琈ultichain、Celer、XY、Nomad、Rainbow Bridge、Hop等等。
鏈?zhǔn)遣恢辣舜说拇嬖诘?/h4>
大家熟悉的跨鏈橋使用場景絕大多數(shù)都是將資產(chǎn)例如ETH、BTC 進(jìn)行跨鏈。但實(shí)際上“資產(chǎn)”是沒辦法跨鏈的,這是因?yàn)槊恳粭l鏈都是各自獨(dú)立的,它們不會(huì)知道彼此的存在、彼此的狀態(tài)。
至于Solana上的ETH或ETH上的BTC 是怎么來的?那些都是跨鏈橋鑄造出來的,只要這些跨鏈橋是安全的,這些鑄造出來的幣就是安全的。
注:其他像是USDT或USDC,有些是Tether 和Circle 到不同鏈上去鑄造出來的,剩下則一樣是由跨鏈橋所鑄造。
傳遞什么“訊息”?
表面雖然是資產(chǎn)在跨鏈,但背后實(shí)際上就只是“訊息”在跨鏈而已。這些訊息像是“我在A 鏈上把X資產(chǎn)鎖住/燒毀了”或“我在B 鏈上把Y資產(chǎn)解鎖/鑄造出來了”,訊息的接收方就按照訊息內(nèi)容來執(zhí)行相對應(yīng)的處理。
例如當(dāng)Alice想透過一個(gè)跨鏈橋把USDT從A 鏈“轉(zhuǎn)移”到B 鏈,實(shí)際上背后發(fā)生的是:
- 跨鏈橋在A 鏈的合約把USDT 從Alice 身上轉(zhuǎn)過來,并送出一個(gè)訊息:Alice 在我這鎖住了10 USDT。
- 訊息被帶至跨鏈橋在B 鏈的合約,合約從自己身上轉(zhuǎn)10 USDT給Alice在B鏈上的地址
資產(chǎn)跨鏈實(shí)際上背后是單純的訊息傳遞,中間省略許多細(xì)節(jié)
”訊息“的傳遞是跨鏈橋的核心,現(xiàn)在最常見的資產(chǎn)跨鏈只是其中一種用途而已,像Aave的V3版本就是一個(gè)運(yùn)行在多個(gè)網(wǎng)絡(luò)上的抵押借貸平臺。
限制與挑戰(zhàn)
但跨鏈橋并沒有像上面那個(gè)例子這么簡單。跨鏈橋的一個(gè)最根本的限制來自于”鏈不知道彼此存在“這個(gè)事實(shí),因此它需要”相信某個(gè)人來傳遞訊息”。所以跨鏈橋的主要挑戰(zhàn)就在于”要怎么驗(yàn)證一個(gè)送來的訊息的有效性”。
注:這里的”相信”訊息傳遞者并非指完全相信,后面的段落中會(huì)介紹到有些橋是不需要相信訊息傳遞者的。傳遞者可能是好人也可能是壞人,但對傳遞者們的特質(zhì)會(huì)有一些其他的假設(shè)。
安全性
基本上一個(gè)跨鏈橋的安全性取決于:
- 需要放多少信任在訊息傳遞者身上?對訊息傳遞者的行為有沒有一些假設(shè)?是否假設(shè)訊息傳遞者只能誠實(shí)地執(zhí)行他的工作?
- 如何驗(yàn)證訊息的有效性?
接下來將介紹不同跨鏈橋的分類。
跨鏈橋的分類
跨鏈橋基本上可以分成四種:
- Trusted Relayers
- Optimistic Verification
- Light client + Trustless relayers
- HTLC
(如果對分類有其他想法或意見都?xì)g迎留言或信件討論。)
1. Trusted Relayers
顧名思義,Trusted Relayers就是信任訊息傳遞者?;旧舷嘈庞嵪鬟f者后,也不需要再驗(yàn)證訊息有效性了,只要是信任的訊息傳遞者帶來的訊息都相信是有效的。而自然地當(dāng)有了信任及中心化的假設(shè),架構(gòu)就會(huì)簡單許多,而且成本會(huì)很低、使用體驗(yàn)會(huì)很好。
Trusted Relayers的技術(shù)沒什么特別之處或亮點(diǎn),就看這些訊息傳遞者的組成,可以是單個(gè)或多個(gè)(就像多簽);每一個(gè)訊息傳遞者背后也可以是多簽或是MPC。
這里必須要提到的一點(diǎn)是Trusted Relayers 的安全假設(shè)是Honest Majority,也就是過半數(shù)的訊息傳遞者必須是誠實(shí)的好人。如果超過一半的訊息傳遞者是壞人或被駭客入侵,則這個(gè)跨鏈橋的就不再安全。
另外要提到的是Layer Zero也是屬于Trusted Relayers,即便在他們的定義里訊息傳遞者的角色被分成”O(jiān)racle”及”Relayer”,但還是不改變整個(gè)橋的安全性仰賴這兩個(gè)角色不能都是壞人。不過Layer Zero 相較于其他Trusted Relayers 橋的優(yōu)點(diǎn)是:每個(gè)dApp 能自己客制化自己需要的安全性。如果你很需要安全性,你可以把”O(jiān)racle”及”Relayer”的數(shù)量設(shè)定的很高。另一個(gè)優(yōu)點(diǎn)是:每個(gè)dApp 的安全性彼此是獨(dú)立、不互相影響的。
例子:Multichain、Celer、LayerZero、Wormhole、Ronin Bridge、XY
2. Optimistic Verification
和Optimistic Rollup的Optimistic 一樣,都是先樂觀地接受傳遞過來的訊息,但會(huì)驗(yàn)證訊息的有效性,如果發(fā)現(xiàn)是無效的則發(fā)起挑戰(zhàn)。優(yōu)點(diǎn)是絕大多數(shù)的時(shí)間系統(tǒng)都會(huì)是正常運(yùn)作(因?yàn)樽鲪簳?huì)被挑戰(zhàn)并懲罰),訊息都是有效所以不需發(fā)起挑戰(zhàn),所以成本非常低,因?yàn)椴恍枰阪溕先ヲ?yàn)證訊息。缺點(diǎn)是必須要有一段挑戰(zhàn)期(Optimistic Window),讓負(fù)責(zé)驗(yàn)證的人有足夠多時(shí)間驗(yàn)證并發(fā)起挑戰(zhàn)。接下來會(huì)以Nomad為例,介紹Optimistic Verification 的運(yùn)作。
Nomad里有三個(gè)角色:Updater、Relayer及Watcher。
- Updater抵押擔(dān)保品,并負(fù)責(zé)為訊息簽名做擔(dān)保,例如:我以我的擔(dān)保品發(fā)誓Alice 申請要從鏈A送XXX訊息到鏈B;
- Relayer 單純負(fù)責(zé)把訊息及Updater 的簽名送到目標(biāo)鏈(鏈B)上;
- Watcher 負(fù)責(zé)監(jiān)督Updater,并在Updater 作惡時(shí)反應(yīng)
正常情況
Alice觸發(fā)鏈A合約,要求送訊息到鏈 B
Updater 對Alice 的訊息簽名
Relayer 負(fù)責(zé)將訊息及Updater 簽名送到鏈B
等到挑戰(zhàn)期(Optimistic Window)結(jié)束后,訊息生效,完成訊息跨鏈。
Updater 作惡
Updater 對一個(gè)憑空捏造的訊息簽名,并請Relayer 伙伴送到鏈 B
Watcher 發(fā)現(xiàn)后,先到鏈B 把訊息作廢,再把證據(jù)(Updater 簽名)送到鏈A,沒收Updater 擔(dān)保品
鏈A的合約可以很清楚驗(yàn)證Updater所簽名的訊息到底存不存在,因?yàn)橹挥惺褂谜哂H自送請求到合約,訊息才會(huì)真的存在。所以當(dāng)Updater 對一個(gè)不存在的訊息簽名,這個(gè)簽名就會(huì)變成作惡的Updater百口莫辯的證據(jù),用來沒收Updater的擔(dān)保品。
證據(jù)只在訊息來源鏈(鏈A)有效
目標(biāo)鏈(鏈B)永遠(yuǎn)沒辦法知道鏈A 上有誰要送什么訊息過來,所以鏈B 合約沒辦法知道Updater擔(dān)保的訊息到底是不是真的。
那鏈B 能怎么辦?答案是需要引Permissioned Watcher。Permissioned Watcher有權(quán)利能作廢任何一個(gè)訊息,避免偽造的訊息造成任何破壞。但相反地它也可以作廢一個(gè)正常的訊息,也因此這個(gè)角色必須要是Permissioned,他需要是一個(gè)被信任的角色。
如果有Permissioned Watcher亂搞,惡意作廢正常的訊息,則這時(shí)候只能仰賴另一層信任,可能是Governance 或是一個(gè)多簽Admin 之類的來介入,將惡意的Watcher 剔除。
只需要假設(shè)至少有一個(gè)Watcher有在做事
和Trusted Relayer的安全假設(shè)非常不同,相對于Trusted Relayer 需要假設(shè)有過半數(shù)誠實(shí)參與者,Optimistic Verification只需要假設(shè)至少有一個(gè)Watcher 是好人即可。這表示要攻破Optimistic Verification,你需要攻破(例如駭入、賄賂、DoS)全部的Watcher。
30分鐘挑戰(zhàn)期
不同于Optimistic Rollup挑戰(zhàn)期多達(dá)七天,Optimistic Verification的挑戰(zhàn)期只有30分鐘。這是因?yàn)镺ptimistic Verification的挑戰(zhàn)不需要挑戰(zhàn)者與被挑戰(zhàn)者之間來回交互,而是直接提交一個(gè)一次定生死的證據(jù):Updater 簽名的訊息存不存在?(yes/no)。
3. Light client + Trustless relayers
這種跨鏈橋的方式是讓目標(biāo)鏈成為來源鏈的輕節(jié)點(diǎn),可以是鏈下運(yùn)行一個(gè)輕節(jié)點(diǎn),也可以是用鏈上合約模擬一個(gè)輕節(jié)點(diǎn):合約里記錄來源鏈每個(gè)區(qū)塊并驗(yàn)證每個(gè)區(qū)塊的標(biāo)頭檔(Block Header)。除了驗(yàn)證標(biāo)頭檔的內(nèi)容是有效的之外,還需要驗(yàn)證共識,也就是PoW 的驗(yàn)算或PoS 的投票結(jié)果。PoW 的驗(yàn)算還算簡單,但PoS 的投票結(jié)果就復(fù)雜許多,尤其是像Ethereum Beacon Chain 多達(dá)四十多萬的Validator,要維護(hù)這些名單在合約或計(jì)票的成本都非常高。
另外每條鏈的區(qū)塊內(nèi)容和共識機(jī)制都不一樣,因此要支援新的一條鏈并非簡單的工作,再加上驗(yàn)證成本會(huì)比其他跨鏈橋高上許多,這些都是這種跨鏈橋的主要缺點(diǎn)。不過優(yōu)點(diǎn)是它非常安全,它不需要相信負(fù)責(zé)帶區(qū)塊資訊來的Relayer,它會(huì)自己驗(yàn)證區(qū)塊和共識。
Light Client 合約驗(yàn)證Relayer 帶來的鏈A 的區(qū)塊資訊及共識
注:雖然Relayer 只是跑腿的,但還是需要假設(shè)有誠實(shí)的Relayer 在線,確保正確的區(qū)塊資訊會(huì)被帶過來,避免造假的分叉鏈來破壞安全性。
驗(yàn)證完區(qū)塊標(biāo)頭檔后,剩下就是去驗(yàn)證(1) 交易存在于某個(gè)區(qū)塊,或是(2) 某個(gè)event 在某個(gè)區(qū)塊被emit,或是(3) 某個(gè)地址的storage 是某個(gè)值。舉例:
(1) 像是驗(yàn)證BTC 上Alice 轉(zhuǎn)帳給某個(gè)地址,或是在OP_RETURN 附上某個(gè)訊息
(2) 像是驗(yàn)證ETH 上的Bridge 合約確實(shí)emit 了CrossChainMessageRequested event(event 的receipt 會(huì)存在receipt tree,tree root 會(huì)記錄在標(biāo)頭檔里)
(3) 像是驗(yàn)證Optimism 上的Bridge 合約的storage 確實(shí)存在一筆資料是記錄了Alice 申請的訊息跨鏈的請求
接著Alice 向Light Client 合約利用(1)(2)(3) 的方法證明自己發(fā)起過跨鏈請求
驗(yàn)證成功后就能相信來源鏈真的存在一筆訊息跨鏈的請求。
例子:Cosmos IBC、Near Rainbow Bridge
注:Cosmos IBC 是透過運(yùn)行輕節(jié)點(diǎn),而不是用合約的方式,在不同(也僅限于) Cosmos 鏈之間傳遞訊息。Near Rainbow Bridge 只能在Ethereum、Near、Aurora 三條鏈之間傳遞。
除了建造復(fù)雜與驗(yàn)證成本高之外,這種跨鏈橋還有一個(gè)缺點(diǎn)是:每條鏈的Finality 時(shí)間不一樣,例如BTC 來的資料可能要等六個(gè)區(qū)塊(一小時(shí))、ETH 來的資料可能要等12.8 分鐘等等,使用體驗(yàn)會(huì)差很多。
4. HTLC
HTLC 代表的是Hashed TimeLock Contract(接下來會(huì)假設(shè)讀者知道HTLC 的運(yùn)作方式)。
注:HTLC 不一定要用Hash 的方式來做commitment,可以用簽章來代替
HTLC 優(yōu)點(diǎn)是非常安全,但缺點(diǎn)是使用體驗(yàn)比其他跨鏈橋差很多,例如:
- 需要花更多筆交易才能完成跨鏈
- 使用者必須待在線上直到跨鏈完成
- Free Option Problem,發(fā)起HTLC 的人是被動(dòng)方,對手方可以選擇配合或不配合(看哪個(gè)對他有利)。不過如果對手方是一個(gè)有名聲要顧的商家(稱作Router)就不需要那么擔(dān)心這個(gè)問題
- 不同Router 的服務(wù)品質(zhì)會(huì)有差異,導(dǎo)致使用體驗(yàn)不一致
例子:Connext、Celer V1
以上是四種跨鏈橋的介紹,接下來會(huì)分析每一種跨鏈橋發(fā)生過的攻擊事件。
攻擊事件分析
1. Trusted Relayers 跨鏈橋的攻擊事件
Multichain, 2021.07, ~8M loss
在他們的MPC 套件庫中重用了該是隨機(jī)產(chǎn)生的隨機(jī)值,導(dǎo)致私鑰可以被還原。相關(guān)連結(jié)
PolyNetwork, 2021.08, ~600M loss
智能合約漏洞導(dǎo)致攻擊者能獲得存取協(xié)議資產(chǎn)的權(quán)限。相關(guān) 連結(jié)
Multichain, 2022.01, ~3M loss
智能合約漏洞導(dǎo)致攻擊者可以任意轉(zhuǎn)走受害者的wrapped token(例如WETH、WBNB 等)。相關(guān) 連結(jié)
Qubit, 2022.01, ~80M loss
智能合約漏洞以及合約升級過程的疏忽,導(dǎo)致攻擊者可以直接把協(xié)議里的資產(chǎn)全部提走。相關(guān)連結(jié)
Wormhole, 2022.02, ~300M loss
智能合約漏洞讓攻擊者可以跳過權(quán)限檢查,無限鑄造出新的代幣。相關(guān)連結(jié)
Ronin Bridge, 2022.03, ~600M loss
多簽成員(九個(gè)里的五個(gè))的節(jié)點(diǎn)被攻陷。相關(guān)連結(jié)
Horizon Bridge, 2022.06, ~100M loss
多簽成員(五個(gè)里的兩個(gè))的私鑰被盜。相關(guān)連結(jié)
2. Optimistic Verification 跨鏈橋的攻擊事件
Nomad, 2022.08, ~190M loss
智能合約漏洞及合約升級過程的疏忽,導(dǎo)致任何人都可以偽造跨鏈訊息來轉(zhuǎn)走資產(chǎn)。相關(guān)連結(jié)
3. Light Client + Trustless Relayers 跨鏈橋的攻擊事件
Near Rainbow Bridge, 2022.05 & 2022.08, no fund lost
兩次嘗試偽造跨鏈訊息的攻擊都被watchdog 服務(wù)擋下來。相關(guān)連結(jié)
4. HTLC 則沒有過攻擊事件
其實(shí)可以看出來攻擊事件都是發(fā)生在Trusted Relayers 節(jié)點(diǎn)安全管理問題及合約出現(xiàn)問題,沒有針對Optimistic Verification、Light Client 或HTLC 跨鏈橋本身協(xié)議成功的攻擊事件。
跨鏈橋的比較
接著是不同種跨鏈橋技術(shù)在「成本(Cost)」、「使用者體驗(yàn)(UX) 」及「安全性(Security)」三個(gè)方面的比較。以下會(huì)直接以圖片呈現(xiàn)
1. 成本(Cost)
- Trusted Relayers:成本最低,因?yàn)椴恍枋裁磸?fù)雜的驗(yàn)證,Relayer 帶來的資訊都直接相信
- Optimistic Verification:只需要驗(yàn)證Merkle Proof
- Light Client:要驗(yàn)證最多東西,包含共識、區(qū)塊標(biāo)頭檔及交易或狀態(tài)的證明
- HTLC:驗(yàn)證的東西很簡單,但會(huì)需要多筆交易(Lock/Unlock)才能完成
2. 使用者體驗(yàn)(UX)
- Trusted Relayers:體驗(yàn)最好,Relayer 動(dòng)作多快跨鏈就有多快,使用者也不需要做什么事
- Optimistic Verification:需要等待挑戰(zhàn)期(Optimistic Window),以及有可能遇到Updater 下線或Watcher 惡搞
- Light Client:需要等待Finality、不同鏈會(huì)有不一樣的體驗(yàn),且支援的鏈少
- HTLC:需要多筆交易(Lock/Unlock)才能完成、使用者需要保持在線、Router 們的服務(wù)品質(zhì)不一致
3. 安全性(Security)
- Trusted Relayers:安全性最低、需要大多數(shù)多簽成員是誠實(shí)的假設(shè),或是少部分成員被DoS 打下線也會(huì)造成服務(wù)停擺
- Optimistic Verification:只需要假設(shè)至少有一個(gè)Watcher 是誠實(shí)的,但Updater 被DoS 打下線還是會(huì)造成服務(wù)停擺
- Light Client:非常安全,必須要能攻擊那些鏈的共識才有可能造成傷害
- HTLC:最安全,必須要攻破hash function 才有可能造成傷害
Rollup Bridge 和跨鏈橋的不同
Rollup Bridge 指的是Rollup 和其L1 之間的原生橋,因?yàn)長1 和Rollup 之間可以直接傳遞訊息,且訊息的有效性是被零知識證明或詐欺證明所保障的,所以比L1 與L1 之間的跨鏈橋還要安全許多。
不過Rollup 原生橋會(huì)有一些延遲:ZK Rollup 要等待零知識證明產(chǎn)生并上鏈、Optimistic Rollup 要等待挑戰(zhàn)期結(jié)束。
注:延遲主要是發(fā)生在Rollup -> L1 的訊息,L1 -> Rollup 的訊息都非常快速
如果不想等待則可以使用第三方提供的服務(wù):你用原生橋的方式轉(zhuǎn)錢給第三方,第三方在L1 先把錢墊付給你,他再慢慢等錢從原生橋過來。更多關(guān)于Rollup Bridge 的介紹可以參考imToken 的系列文。
使用跨鏈與提供流動(dòng)性的安全性需求是不同的
如果你只是單純使用跨鏈服務(wù),例如把錢從鏈A 轉(zhuǎn)到鏈B,則你不需要擔(dān)心太多,即便橋被駭,只要橋還有殘存流動(dòng)性或后來有新注入的流動(dòng)性,你的跨鏈請求就一定會(huì)被完成。
但如果你是想要提供流動(dòng)性給跨鏈橋來賺跨鏈?zhǔn)掷m(xù)費(fèi)的話,就要謹(jǐn)慎選擇跨鏈橋了。如果被盜的金額太大,項(xiàng)目方賠不出來,那你就一定會(huì)賠錢??梢赃x擇有額外安全機(jī)制的跨鏈橋,例如Celer 和XY 都有對跨鏈轉(zhuǎn)帳訂一個(gè)上限(例如單次或一段時(shí)間內(nèi)最高累積只能轉(zhuǎn)100M)。
其實(shí)就和使用AMM 一樣,提供流動(dòng)性一定會(huì)承受比單純swap 更大的風(fēng)險(xiǎn)。
最近的新技術(shù)或發(fā)展
ZK Light Client Bridge
前面有提到Light Client 跨鏈橋雖然安全,但成本很高,好消息是零知識證明可以有效降低這個(gè)成本。但要注意的是零知識證明只能提高效率,并不能提高安全性。而且零知識證明更為復(fù)雜,要等到ZK Light Client 支援足夠多的鏈還要很長一段時(shí)間。
有兩個(gè)新項(xiàng)目在實(shí)作ZK Light Client
- Succinct Labs
- zkBridge
跨鏈的世界還是個(gè)尚未開發(fā)的MEV 寶地
- 跨鏈交易比單鏈轉(zhuǎn)帳創(chuàng)造出更多的MEV 機(jī)會(huì)
- 如果跨鏈交易再搭配去DEX 做swap 的話那MEV 機(jī)會(huì)又更多
想了解更多資訊可以參考Nomad 創(chuàng)辦人在ETHAmsterdam 的MEV Day 的演講及投影片。他推斷跨鏈DEX 做不起來,因?yàn)閮r(jià)格會(huì)因?yàn)楦嗟腗EV 機(jī)會(huì)影響而導(dǎo)致沒有競爭力,要用跨鏈DEX 還不如單純先把資產(chǎn)跨鏈再自己去DEX swap。
(Special thanks to Kevin Mai-Hsuan Chia for reviewing and improving this post)文章來源:http://www.zghlxwxcb.cn/news/detail-774995.html
本文部分內(nèi)容摘自網(wǎng)絡(luò),由酷宇宙負(fù)責(zé)翻譯整理,其不代表酷宇宙的觀點(diǎn)和立場。如需詳細(xì)了解或加入社群,請聯(lián)系Crypoe酷宇宙進(jìn)行交流文章來源地址http://www.zghlxwxcb.cn/news/detail-774995.html
到了這里,關(guān)于跨鏈橋真的不能碰?一文詳解跨鏈橋的分類以及過去、現(xiàn)在與未來的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!