聽Jump Crypto講解:LayerZero、Wormhole等跨鏈橋優劣
發表於 2022-08-13 12:01 作者: 區塊律動BlockBeats
原文標題:《Security Stack-Up: How Bridges Compare》
原文作者:Jonathan Claudius、Anirudh Suresh、Eric Wong、Akshath Sivaprasad,Jump Crypto
原文編譯:0x9F、0x214,BlockBeats
簡介
在物理和加密的世界中,橋梁都是爲了連接兩個被障礙物隔开的地方。物理橋梁連接被山谷、河流等自然屏障隔开的土地,而跨鏈橋協議則連接原本沒有辦法進行通信和同步的區塊鏈。每當橋梁遭受摧毀和攻擊,其重要性就得以彰顯。在物理世界中,歷史上有據可查的災難性橋梁坍塌事件足以表明它們是多么重要,以及設計或建造不當的橋梁是多么危險。
加密世界的跨鏈橋協議亦是如此。跨鏈橋在安全風險方面極易被盯上。從智能合約可能的漏洞和攻擊的規模角度來看,跨鏈橋呈現出一個二次方風險面:隨着橋接的區塊鏈數量增加,維持跨鏈橋運行所需的智能合約數量也呈二次方增長(至少在點對點模型中如此)。根據定制配置在不同運行時間編寫的更多智能合約也迅速增加了跨鏈橋風險。在輪輻模型中,一個與中心鏈/網絡相關的漏洞會導致不對稱的風險。
正如最近的 Nomad 攻擊事件所示,一個錯誤可能導致橋梁的大部分或全部資金損失。然而漏洞與跨鏈橋無關,可能只是源於一個操作上的失誤。在 Ronin 跨鏈橋的案例中,糟糕的操作安全措施讓網絡釣魚攻擊有機可乘,黑客獲得了對保障網絡安全的大部分驗證節點的控制權,從而能夠攜帶價值超過 5 億的資金逃之夭夭。2 月份發生的 Wormhole 攻擊事件同樣是由於驗證審查的缺失,讓攻擊者能夠創建一個虛假籤名,竊取超過 3.2 億美元。
如果不關注安全性,不可避免地會發生更多的疏忽,因而遭受攻擊和損失。對黑客而言,跨鏈橋規模巨大的 TVL 比普通協議更具吸引力。
上述的攻擊事件均與協議的橋接邏輯無關,而是與智能合約漏洞和操作疏忽有關。即使使用最精心編寫的代碼,經過最棒的安全審計,隨着連接的區塊鏈和啓用功能的數量增加,也必然會有被遺漏的漏洞。出於這個原因,跨鏈橋需要被配置爲不僅在正常情況下能夠安全工作,更重要的是能夠應對極端情況。
用戶在使用跨鏈橋時主要關注以下幾個特性:良好的用戶體驗、低滑點高效率和資產安全。其中,安全性是評估跨鏈橋的重中之重。
考慮到這一點,讓我們看看不同橋梁是如何疊加其安全性的。我們將從以下三個層面展开討論,比較不同跨鏈橋的安全性。
1. 信任假設
2. 代碼質保
3. 安全特性
前兩者將討論:跨鏈橋在信任層和源代碼這兩個層面上是否充分考慮了其脆弱性/漏洞的根源。最後一點涉及到,一個協議是否承認,不管多么仔細地編碼與審計,漏洞不可避免,並且能相應地建立了額外的保障措施,以盡可能減少用戶的潛在損失。
爲了保持完全透明,在深入討論之前,我們承認 Jump Crypto 確是 Wormhole 項目的運營監護人,並且是 Wormhole 的核心貢獻者之一,但我們在這篇文章中將盡可能客觀評估,我們歡迎和接受任何關於如何改進這篇文章的反饋,以展現跨鏈橋之間差異的詳細情況。
信任假設
從其核心構成,跨鏈橋可以被分解成 3 個組成部分:
1. 智能合約(Smart contract):發出/接收每條區塊鏈信息
2. 預言機(Oracle):驗證信息是否來自原始鏈
3. 中繼器(Relayer):將消息提交給目標鏈
在實踐中,跨鏈橋在預言機上實現共識(圍繞信息是否有效)這一方面可能存在很大差異,這也進一步影響中繼器。
在我們深入研究之前,這裏是對該領域一些最流行的橋接器所使用的共識機制的一個快速介紹。
Axelar
Axelar 在基於 Cosmos PoS 網絡上運行,驗證者由 Token 持有者選舉產生,並按比例獲得投票權,投票權重由委托權益加權計算得出。Axelar 網絡通過 (t,n) 閾值籤名方案來驗證跨鏈信息,其中籤名者的投票權,權重歸一化爲 n,n 必須大於 t,即協議閾值,才能籤署一個信息。Axelar 網絡目前最多有 50 個驗證者,並且必須獲得超過 66.67% 的多數投票才能籤署消息(這兩個變量都可以通過治理投票進行修改)。
理論上,驗證者的數量可以無限大,但在實踐中,因爲驗證者不需要爲每條區塊鏈運行節點,投票權會出現傾斜。在 Axelar 目前的驗證者名單中共有 47 個驗證者,但只有 20 個擁有實際有效的投票權。在某條特定區塊鏈上,這一數字更小。例如,如果我們只考慮驗證 Aurora 上的信息,只需要 8 個節點就可以成功發送一條消息,只需要 4 個節點審查這一消息。
LayerZero
LayerZero 是一個跨鏈互操作協議,它將區塊鏈之間的無需信任通信問題簡化爲預言機(Oracle)和中繼器(Relayer)這兩個實體之間的獨立性問題。預言機將區塊頭轉發給目標鏈,而中繼器將交易證明轉發給目標鏈,兩者共同證明消息是有效的,且信息確實提交到原始鏈上。用戶應用程序(UA)可以自由使用 LayerZero 的默認預言機和中繼器,也可以創建和運行自己的預言機和中繼器。
默認的預言機是一個 Chainlink 去中心化預言機網絡(DON),它在三個參與者(FTX、Polygon 和 Sequoia)之間使用閾值籤名方案(Threshold signature)。在撰寫本文時,由於 LayerZero 代碼庫的閉源性質,筆者對其執行情況缺乏了解。關於特定應用版本的預言機,LayerZero 自己的 Ackee 審計指出,對創建和運行自己的預言機和中繼器的應用來說,成功提交一個無效的交易證明和區塊頭並不困難。不過,這種模塊化確實提供了好處,如果未來出現任何漏洞,都將僅作用於那些使用受影響的預言機-中繼器對的應用程序。
LayerZero 的信任假設取決於兩個實體的行爲——只要預言機和中繼者彼此獨立運行,就不可能成功發送無效消息。但反過來而言,因爲這一系統要求預言機和中繼者均正常運行才得以驗證信息,兩者中任何一方都可以任意刪除信息數據。
Multichain
Multichain 是一個跨鏈信息傳遞協議,源自之前的 Anyswap。Multichain 使用安全多方計算(SMPC)來運行閾值籤名方案,創建公鑰並籤署鏈與鏈之間傳遞的消息。這些節點以無需信任的方式控制用戶账戶(EOA),錢包地址與拆分的私鑰一一對應。這些帳戶用於存儲資產並將資產轉移到目標鏈,目標鏈只需檢查發件人的地址是否可信,無需驗證消息本身。
Multichain 網絡目前由 24 個 SMPC 節點組成,由不同的機構運行,並且需要大多數節點(「大多數」的量化標准似乎並不公开)來共同驗證消息。因此,該協議的安全性依賴於 SMPC 節點的聲譽安全,它假設所有節點中誠實的節點佔半數以上。跨鏈發送數據需要 13 個籤名者,審查消息需要 12 個節點。
Nomad
Nomad 是一個以 EVM 爲重點的跨鏈信息傳遞協議,採用 optimistic 機制來驗證消息,其中消息被添加到 Merkle 樹中,並被哈希加密到一個新的根中,由更新者(Updater)發布到原始鏈上。更新者必須交納保證金,從而激勵他們發布有效的證明並盡量減少停機時間。然後,觀察者(Watcher)會有時間對新根進行爭議懷疑並提交欺詐證明。一旦超過時間範圍,這一 Merkle 根就被認爲是有效的,並被轉發到目標鏈進行發布,使得原始消息(因爲 Merkle 根只是消息的一個「化身代表」)被發布到目標鏈上。
這種 optimistic 模型只需要一個誠實的觀察者來驗證是否發布了一個無效的更新。這種安全模型的代價是,觀察者有大約 30 分鐘的時間來提交欺詐證明,這就使消息的傳輸也被延遲了 30 分鐘。因爲觀察者可以通過向目標合約發送虛假欺詐證明來阻止消息被處理,所以 Nomad 使用一組由應用程序指定、經過許可的觀察者。協議的安全性基於至少有一個誠實觀察者存在的可能性,以及因惡意行爲而削減更新者的經濟安全性。
Nomad 智能合約可以通過多籤治理模式進行升級,5 個籤名者中需要有 3 個來執行治理變更和處理恢復管理。
應指出的是,最近的 Nomad 黑客事件與其共識機制的安全性無關;它是一個不幸的合約配置錯誤,導致智能合約終端出現惡意行爲。
Wormhole
Wormhole 利用權威證明(PoA)守護者網絡作爲預言機,並利用無需許可的中繼器網絡來跨鏈傳輸消息。19 個守護者中的每一個都爲 Wormhole 支持的每一條鏈運行完整節點,並監聽每個鏈上 Wormhole 核心合約發出的消息。這些守護者驗證並籤署這些消息,然後在 P2P 網絡上互相傳遞。一旦一個消息收到 2/3 以上守護者(至少 13 個)的籤名,它就會被轉發到目標鏈上。這一設計的副產品是,它允許一個完全無需信任的中繼器網絡將消息發布目標鏈上,因爲這些信息是由守護者籤名的,所以消息內容既不可能被改變也不可能被審查,因爲任何人都可以運行一個中繼器來提交任何信息。
協議的安全保障來自於守護者的聲譽權威。在 Wormhole 案例中,這是一個由Web3 中 19 個最大的質押和基礎設施供應商組成的團體。籤署假消息需要 13 個守護者,審查消息需要 7 個守護者。此外,現有的守護者有能力投票移除或替換其他守護者。
代碼質保
代碼質保是指在鏈上部署代碼之前需要完成的工作。這可能涉及到以下幾個方面:
1. 審計:對已公开的核心功能和新功能進行多次、獨立的質量審計
2. 賞金:包括爲漏洞披露者們提供具有吸引力的獎勵,以及能夠爽快支付大額賞金的行業口碑
3. 測試:在每一次代碼更改上測試盡可能多的協議棧,從而在不斷增長的軟件生態中進行回歸測試
4. 部署安全:在公开環境下進行开發、合並代碼之前需要審查、合約字節碼驗證、升級之前進行模擬測試
下表總結了五個跨鏈橋協議在這四個方面的表現。
Axelar
Axelar 有多次公开且信譽良好的審計,並運行一個相當強大(盡管近幾個月活躍度下降)的測試套件:持續集成(CI)和持續交付(CD)運行、bash 構建腳本以及校驗和(checksum)驗證。Axelar 與 Immunefi 合作設立了漏洞賞金計劃,對嚴重漏洞披露者給予高達 100 萬美元的賞金,但其他級別的賞金額度相對較小。Axelar repo 有貢獻者定期提交代碼,Pull Request 需要至少 1 個審查者批准。
LayerZero
LayerZero 在代碼部署方面似乎有些不透明。雖然有來自頂級審核員的幾次公开審計,但卻缺乏公开的持續集成(CI)和持續交付(CD)流程。代碼似乎是一次性公开發布,不是一個敏捷的开發流程。進行的測試似乎相對過時,並僅限於 JavaScript 測試。Pull Request 看起來缺乏一個強制性的同行評審步驟。LayerZero 確實在 4 月份宣布了一個與 Immunefi 合作的 1500 萬美元漏洞賞金計劃。然而,迄今爲止還沒有公开發布相關項目,也沒有關於如何提交漏洞獲得賞金的說明。
Multichain
Multichain 進行了多次公开審計,並與 Immunefi 有一個高達 200 萬美元的賞金計劃。Multichain進行的測試看起來停滯不前,似乎僅限於一般的 ABI 和簡單的轉移測試。雖然有持續集成(CI)和持續交付(CD)運行以及有限的單元和集成測試,但部署過程看起來主要是手動的。Multichain 的 repo 有貢獻者定期提交代碼,但看起來只需要一方合並代碼(原始开發者能夠合並他們自己的代碼)。
Nomad
Nomad 最近接受了 Quantstamp 的公开審計,並有一個 Immunefi 的漏洞賞金計劃,賞金最高達 100 萬美元。Nomad 的測試套件包括一些圍繞利用 Foundry 進行路由和消息傳遞的測試,也和 Axelar 一樣有 bash 構建腳本來構建和驗證字節碼。Nomad 的 Repo 有貢獻者定期提交代碼,它的 Pull Request 需要至少兩方合並代碼(原始开發者加 1 個獨立審查者)。
Wormhole
Wormhole 的安全頁面突顯了他們已完成和正在進行的來自業界領先的審計公司的審計。Wormhole 在 Immunefi 上有一個 1000 萬美元的賞金計劃。自 2 月份遭受黑客攻擊以來,Wormhole 已支付了 1100 多萬美元以上的漏洞賞金,包括 5 月份支付給一個白帽黑客的 1000 萬美元。Wormhole 的 repo 使用混合單元和集成測試,有一個可擴展的持續集成(CI)和持續交付(CD)套件,並運行了一系列模擬測試,以驗證升級的向後兼容性和未來的升級能力。此外,Wormhole 通過積極的提交和貢獻者提交公开建設,讓透明的代碼審查和負責任的披露可以實現。Wormhole 的 Pull Request 需要至少三方合並代碼(原始开發者加 2 個獨立審查者)。
注意,協議的代碼質保方式在經歷了嚴重的安全事件後會有很大的改善。例如,在遭受黑客攻擊後,Wormhole 的代碼質保方式迅速得到改善。同樣,在本周的攻擊事件之後,Nomad 協議很可能會在不久的將來採用更多的代碼質保方式。顯然最好在事件發生之前就採用這些做法,可惜它們並不總在優先列表上。
安全功能
如上所述,跨鏈橋一旦發生安全問題,代價極其高昂。上面的代碼質保措施對跨鏈橋供應商的安全計劃至關重要。本節我們將仔細研究每個跨鏈橋正在开發或部署的協議內安全功能,以了解在核心信任假設和代碼質保根本不足的情況下,這些跨鏈橋是如何實現多層防御的。
Axelar
在白皮書中,Axelar 描述了一個由網絡分配的資金池,作爲治理控制的保障和備用機制,以便在 Axelar 中斷的情況下爲用戶提供恢復治理的指導。在這樣的危機中,由閾值合約(Axelar 驗證者管理)存放的「緊急解鎖鑰匙」將與輔助恢復用戶集共享。如果需要,這個隊列可能擴展到成千上萬的個人和機構,他們可以集體控制網絡以:
1. 爲可以轉入/轉出某一特定鏈的資金量設定速率限制
2. 決定鏈上原生資產的包裝形式的情況
這些功能看起來是專有的,目前還沒开源。此外,這些提議的功能不提供被動安全性來限制風險,而是在生死存亡關頭被激活。
LayerZero
LayerZero 的橋接模型包括交易應用程序選擇目標鏈上的中繼器的要求。因此,在這個模型中,協議內安全功能的關鍵之處在中繼器。
4 月份,LayerZero 團隊介紹了他們的協議內安全功能的方法,稱爲「穹頂(the dome)」和「預犯罪(pre-crime)」。關於穹頂功能的公开信息很少,但博客文章中提供了關於預犯罪是如何運作的线索。預犯罪模型基本上允許用戶應用程序(UA)定義一組特定的狀態,中繼器必須根據這些狀態進行驗證。如果這些狀態沒有得到驗證,中繼器就不會中繼交易。
注意,這些功能看起來是專有的,目前還沒开源。雖然概念上很強大,但很難獨立評估其有效性。
Multichain
Multichain 在最近的一篇文章中,披露了他們的一些安全措施,包括提及他們的橋接配置的一些安全功能:
1. 交易量限制和總交易額限制:這一功能允許交易量較大的區塊鏈被限制在一個特定的上限。另外,對於交易量較低的區塊鏈,則採用總交易額限制的方式。
2. 鏈上監控:這種模式涉及監控軟件和鏈上看門狗,以檢測異常行爲並觸發突發事件響應行爲。
3. 產品暫停:這一功能允許暫停所有產品,並在實施突發事件響應行爲時有效將所有產品暫停。
4. 安全基金:這實際上是一個保障基金,拿出所有跨鏈費用的 10% 補償用戶在特殊情況下的財產損失。
Nomad
Nomad 利用 optimistic verification model,即消息在原始鏈上籤名,並有一個內置的時間窗口會在目標鏈上強制執行。在某種程度上,我們可以觀察到這類似於「不早於這個時間打开這封信」。這段時間對於實施「自動斷路器」和在 Merkle 根被認爲有效之前停止轉移資產是有用的。這在 Nomad 文檔中已作爲一個概念出現,开發似乎正在進行中。
Wormhole
Wormhole 的消息傳遞模型是群播(multi-cast)的,即消息由守護者/預言機網絡從原始鏈進行公證,並且不信任將該消息帶到目標鏈的中繼器。這種模式基本上需要一個非常強大的預言機網絡,協議內安全功能有賴於此。
Wormhole 項目有三個主要的協議內安全功能正在开發中:監管、會計和緊急關閉。這些功能是在公开可見的情況下开發的,這讓我們能夠深入了解它們最終會如何運作。這些功能正在等待开發完成並被守護者採用。
1. 監管:這一功能在守護者/預言機中實現,允許守護者在一個時間窗口內監控來自任何受監管鏈的價值流動的名義金額。守護者可以爲每條鏈設定一個可接受的上限,一旦達到這個上限,就會阻止這條鏈超出的資產流動。
2. 會計:這一功能在守護者/預言機中實現,允許守護者維護他們自己的區塊鏈(又稱「wormchain」),它們可以作爲不同鏈之間的跨鏈账本。這個账本不僅可以讓守護者擔任鏈上的驗證者,還充當了一個會計插件。守護者可以拒絕原始鏈沒有足夠的資金(驗證獨立於智能合約邏輯之外)的跨鏈交易。
3. 關閉:這一功能在鏈上實施,允許守護者在意識到跨鏈橋存在的威脅後,達成共識暫時停止跨鏈橋上的資產流動。目前的實施方案允許通過擬議的實施方案中的鏈上函數調用來實現。
結語
在未來幾個月或幾年裏,我們相信安全將成爲跨鏈橋之間拉大差距的地方。那些優先考慮安全問題的跨鏈橋更可能度過危機,不這么做的跨鏈橋則很可能挺不過去。安全性可能曾經只是競爭優勢的一個來源,然而,現在它必須成爲每條跨鏈橋都應優先考慮的首要功能。我們希望所有跨鏈橋團結起來,共同提升跨鏈橋安全技術水平。
標題:聽Jump Crypto講解:LayerZero、Wormhole等跨鏈橋優劣
地址:https://www.coinsdeep.com/article/5767.html
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
上一篇