我們將提供一個關於大多數信息傳遞協議、橋接和互操作性項目的完整概述。

原文:Horatius At The Bridge(The Weekly Depths)

作者:rain&coffee

編譯: Yangz,DeFi 之道

封面:由 Maze AI 生成

早期羅馬的一個著名傳說描述了 Horatius Cocles 幾乎單槍匹馬地保衛了一座橋,以對抗伊特魯里亞的侵略者。

圖片來源:由 Maze AI 生成

在過去的幾個月裡,我們看到代幣橋成為越來越複雜的攻擊的目標。於是,一些人開始談論橋接的實際安全問題。因此,我們想對區塊鏈橋接的安全和信任假設做一個全面概述。我們將提供一個關於大多數信息傳遞協議、橋接和互操作性項目的完整概述。此外,我們還將看看跨鏈消息協議和橋接的經濟性,因為如果協議的代幣能讓你對其進行控制,這也是極為關鍵的。

首先,讓我們確定一下,在橋接相關協議上發生的漏洞方面,問題到底有多嚴重。

通過上面兩張圖片,我們可以清楚地看到,隨著存在的鏈的數量增加,橋接的漏洞已經成為了一個巨大問題。除非我們優先考慮安全問題,否則這只會成為一個更加系統化的風險,而我們作為用戶需要站在協議責任的最前沿——歸根結底,這是我們的資金。所以,這也是我們撰寫本文的原因——關注互操作性領域中的信任假設和安全性。

同樣,由於行業變得越來越多鏈、應用鍊和模塊化,我們也看到大量新的區塊鍊和層的湧入。為了適應用戶和流動性,需要有互操作性。因此,隨著越來越多的區塊鏈開始建立自己的生態系統,橋接,特別是代幣橋的重要性和受歡迎程度變得越來越高。將流動性從一個鏈轉移到另一個鍊是有需求的。因此,也就有了代幣橋的流行,雖然這不是橋接的唯一用途。這裡我們特指一般的信息傳遞協議,例如 IBC,它通過其信息傳遞系統和標準實現了無數的用例。

下圖是一些關於許多資產在不同的鏈上被橋接的優秀概述(來源 CryptoFlows.info – 其創造者也是其他偉大的網站的創建者,如 L2 Fees, CryptoFees)。

這清楚地表明了對橋接的需求,並強調了為什麼當涉及到跨鏈消息協議和橋接時,我們推動安全是如此的重要——因為它們處理著巨大的價值,無論是在數量上還是在許多情況下由多簽智能合約控制的託管。

在大多數橋接應用和跨鏈信息傳輸協議中,有一系列有助於其功效的行動。這些可以從以下幾點中看到。雖然,它們取決於有關的特定橋接/信息傳遞協議。

  • 欺詐觀察者/監測:狀態監測器,如輕型客戶端、驗證器或預言機。
  • 中繼器:負責信息傳遞/中繼,如中繼器(通常只是一個信使,而不是共識參與者),將信息從源頭帶到目標鏈上,該鏈在鏈外運行。
  • 共識:監視鏈的行動者之間的協議,這可以是可信的第三方 valset 的形式,如 Axelar 或共識節點的鏈外網絡,甚至是一個多簽。
  • 簽名:橋接者對信息進行加密簽名,這可以是驗證者簽署加密簽名,如 IBC,或通過 ZKP(如 Plonky2)與 Polymer,證明源鏈上的驗證者簽名。
橋接活動者及一般框架

你可以把這些協議分為四大類型:

託管橋(通常是特定資產,但你甚至可以說交易所是託管橋):提供以託管(通過第三方)或非託管(智能合約)方式進行抵押的封裝資產。這類協議的一個例子是 wBTC,有一個像 BitGo 這樣的中心化商家,然後鑄造一個同等的 ERC-20 代幣(以太坊上的 wBTC)。我們將在後面討論這種類型的解決方案的信任假設和風險,但僅憑這個解釋,其中一些應該很清楚了。

專用多簽鏈:這些通常是兩個鏈之間的雙向橋接,如 Harmony Bridge、Avalanche Bridge 和 Rainbow Bridge,都是通過以太坊上的智能合約將各自的鏈連接到以太坊。用戶通常向協議發送一項資產,在那裡作為抵押品,並在目標鏈上發行一個橋接封裝代幣,由源鏈合約中鎖定的抵押品支持。這些通常由一組驗證人或甚至只是一個多籤來保護。而我們也已經看到了這些解決方案是如何被證明容易產生風險的— 即 Ronin 橋和 Harmony 橋黑客事件。

特定應用:一個應用程序提供對幾個鏈的訪問,但只用於該特定的應用程序,例如,Thorchain,它也運行自己的鏈,有單獨的驗證器組。這些協議的信任假設往往在於一個單一的驗證器組,它控制和處理整個網絡的所有消息和交易,連接到不同鏈上的不同智能合約/地址。

通用跨鏈信息傳遞:跨鏈消息傳遞協議,允許在有設定指令的鏈上進行通用的消息傳遞,如 IBC。這些通常依賴於驗證器集。這裡的信任在於被連接的兩個鏈的驗證器集。有了 XCM,信任就在於中繼鏈(Polkadot)。此外,像 Polymer 和 LayerZero 這類信息傳遞協議也適用,它們是不可知的。

跨鏈信息傳遞協議通常與流動性層一起使用,因為它們通常只處理鏈之間基於其規範的通信和標準。一個很好的例子是 Superform,它同時使用 LayerZero 和 Socket(作為流動性層)。你也可以把基於 Cosmos 的獨立鏈視為 IBC 的流動性中心。

上述橋接類型的操作簡化架構

接下來的部分將有助於涵蓋跨鏈協議的兩個重要部分,即涉及的智能合約風險和需要考慮的額外信任假設。

智能合約風險

首先要涵蓋的最明顯的安全風險之一是智能合約的風險。智能合約被用於大多數跨鏈橋,這些橋接沒有原生的通用信息傳輸協議,因此,它們的安全是至關重要的。以下,讓我們來探討一下這裡需要解決的一些風險。總的來說,避免這些風險的最有效方法是完全省略智能合約的使用,而是依靠相關鏈的安全性。

1.   調用合約的正確語句

  • 哪些函數在執行之前依賴於預定義的條件
  • 斷言條件,以檢查所有函數執行中需要保持真實的東西,如橋接流動性合約的餘額
  • 如果所需條件沒有得到滿足,可以觸發還原語句,比如之前討論的那些。

2.   形式化驗證和嚴格的測試

  • 合約的形式化驗證對於確保上述智能合約在設定條件下的正確性非常重要。數學運算是否正常?它是否按照我需要它遵守的規範工作?
  • 對於所做的每一次更新或改變,測試合約的所有函數。
  • 測試隨機性,以確保如果違反了安全屬性,這些函數是成立的。
  • 有各種測試方法可以使用,如— 單元測試、靜態和動態分析等等。如果你想討論你能做什麼,請與像 Runtime Verification 這樣的人取得聯繫。像往常一樣,記得審計你的合約,但要注意,審計並不代表不會出錯,它只是另一種將信任降到最低的方式。賞金也是另一個可以利用的好東西,且有各種方法來實現這些— 比如 Sherlock 和 ImmuneFi。

3. 可升級性與不可升級性

  • 你的合約應該是不可改變的和不可升級的嗎?這顯然可以確保 “惡意行為者 “不能造成問題。然而,它降低了創新的能力。一個新的合約和向其遷移的過程是需要的,而這需要經過我們之前討論過的許多檢查點。此外,不可升級的另一個缺點是,如果合約有缺陷,那麼其無法解決,只是活到被人利用為止。雖然不可升級的好處是,在合約堅定不移的情況下,它限制了漏洞,但如果對可升級的合約進行更新而沒有適當的安全措施,就會導致故障— 如之前所見。
  • 然而,如果你選擇了可升級性,那麼在大多數情況下會是正確的選擇,因為有各種方法可以確保你堅持最小化信任和最大化安全:

為失敗做準備— 如果發生漏洞,需要進行哪些升級,我可以製定緊急措施嗎?

利用代理模式— 將狀態(信息)和邏輯(執行)分割在不同的合約之間。這意味著你可以升級智能合約的邏輯(用一個新的智能合約),而不搞亂狀態本身。

4.   緊急停止

  • 設置可以訪問緊急停止功能的實體,它可以關閉對智能合約內函數的可訪問性。這應該只在非常重要的情況下使用,比如需要它來阻止一個漏洞。然而,這確實把權力放在了少數人的手中,但它有時可以幫助保護合約中的函數,以防止漏洞發生。這是一個很好的方法和想法,可以和下一點一起實施。

5.   監控(觀察者)

  • 主動監測智能合約的功能和執行是極其重要的,以確保有效性和正確跟踪。你也可以利用各種監控工具來獲得某些觸發器或函數的警報,這對合約的有效性和安全性非常重要。

一個補充的方法是設置觀察者激勵(如 Optimistic Rollups),有激勵的觀察者會抓住欺詐活動並報告它。然而,這需要以一種能夠產生實際效果的方式來實施,畢竟還有比設置觀察者更緊迫的事情。

6.   治理

  • 如果你的智能合約的控制權是去中心化的,並交給你的協議代幣持有者,那麼治理系統的安全性就需要有確定性。
  • 需要考慮的是,大型代幣持有者能夠升級合約並改變對他們有利的功能,這可能會導致惡意的利用,造成失敗和資金損失— 這在以前已經出現過。
  1. 一個可以考慮的好方法是 Optimistic Approval,這是一個增加時間鎖和否決程序的方法,允許調整激勵機制,限制某些行為者的權力,並有助於避免惡意的提議。
  2. 這也與使用時間鎖來防止智能合約執行對系統不可或缺的功能有關,直到一定的時間過去,這可以讓緊急功能在需要時介入。
  3. TWAP 投票也可以用來減少快速治理投票的接管。
  • 一個去中心化的治理系統可以非常有用,讓社區成員對協議的未來有發言權。然而,它確實增加了風險和信任假設。

7.   訪問控制

  • 合約的具體函數需要解決誰可以調用它們的問題。是否應該允許所有 EoA 調用函數?函數應該是公共的還是私人的?是否應該只在智能合約內調用函數?有些函數應該只由某些行為者訪問,例如可升級性,或鑄造代幣。
  • 誰是所有者,他們能夠執行什麼函數— 是只屬於一個所有者,還是一個多身份的人?通常,不同的角色可以訪問部分函數,以限制中心化。無論如何,你應該專注於消除單點故障,並儘量減少信任— 專注於最小化,因為你永遠無法消除信任。

8.   重入

  • 序列號、時間戳或加密證明,以確保對合約調用的有效識別,以避免重複調用。

9.   預言機操縱(合併預言機)

  • 對於依賴價格反饋或來自預言機的類似信息的智能合約來說,另一件重要的事情是要有安全的方法來識別操縱,並從外部角度限制可能出現的情況。關於這一點,有一篇很好的研究論文可供閱讀,即 《綜合價格饋送》,它闡述了在使用預言機時確保安全和最小化信任的方法。

從上面的內容可以看出,當涉及到智能合約的風險時,有很多的權衡因素。我們希望通過上面的清單,顯示出所涉及的大部分風險,以供用戶和開發者評估。

還應注意的是,即使一些跨鏈信息傳遞協議不依賴於 “智能合約” 本身,它們仍然依賴於代碼和協議設計,需要廣泛的審計和測試。這應該是不言而喻的,但還是需要注意。此外,它們也應該按照討論的許多相同的想法來更新。最近的一個非智能合約錯誤導致的漏洞的例子是 BNB 漏洞,這是一個舊的 IBC 規範中過時的代碼因沒有保持更新造成的。

信任假設

另一個要涵蓋的重要部分是正在使用的特定協議中的信任假設。這對於像 wBTC 這樣由中心化託管者處理的情況來說,是非常重要的。即使是在為其特定的 L2 充當橋接智能合約的 rollup 合約的情況下,這也是相關的。通常情況下,它們是由多籤或類似的控制,在許多情況下甚至可以升級。在某些情況下,信任假設很小,但在另一些情況下,它們相當大。然而,需要注意的是,在任何橋接/信息傳遞協議中,在某種程度上都有信任假設,而且總是會存在的,即使是像 IBC 這樣的無智能合約的信息傳遞協議。在這些情況下,你要信任連接鏈的驗證器集,或者在其他情況下,如果有一個受信任的第三方來操作橋接協議,你就會主要信任該驗證器集,比如 Axelar 和 Polkadot。在這些情況下,你也會經常依賴於智能合約,至少在 Axelar 的情況下是如此的,它們會託管被橋接到 Axelar 的資金。

信任假設永遠存在

有一些方法可以解決這些信任假設,例如依靠 ZKPs 來驗證鏈上區塊頭的正確性。然而,仍然會有信任假設的存在,即區塊頭來自源鏈(和它的 valset)是正確的。因此,說不涉及信任假設是完全錯誤的。此外,你還要依賴於鏈上驗證器合約是正確的,因此,開源合約應該始終是首選,並接受測試和正式驗證。這樣做的目的是為了防止依賴外部信任假設,畢竟這些假設越少越好。雖然我們永遠不會達到無信任,但我們可以相對接近並達到實際的無信任,也就是信任只存在於一個有足夠加密經濟協議的去中心化網絡中。所謂一致,是指攻擊的成本將遠遠超過收益。在這裡,同樣重要的是要考慮到,為了自己的利益,確保網絡的長期健康符合大多數網絡參與者的利益。這讓我們想到了 “-” 和 “+”EV 的說法,以及 Moloch 的作用,和我們作為一個社區,在鏈上和鏈下共同協調,對抗非理性行為者的能力。

前面所討論的橋接類型與 SC 和 TA 風險的關係圖

信任的差異

信任上的差異是至關重要的。各個區塊鏈的信任系統各不相同,將數據從一個區塊鏈轉移到另一個具有更大或更小的加密經濟安全性的區塊鏈上,可能會導致惡意行為的發生。

多簽錢包需要來自不同方面的多個簽名才能授權交易,這使得單個實體更難破壞系統的安全性。另一方面,去中心化的治理允許用戶社區的集體決策,使單一實體更難獲得對系統的控制。然而,每個多籤的設置都會與下一個不同,提供不同數量的安全和信任假設。去中心化治理的情況也是如此。代幣持有者是否有足夠的去中心化,他們是否有一個有利於安全的治理實施— 例如,Optimistic Approval?有幾個因素是需要考慮的,而且往往因協議而異。

重入和流動性

我們稍早涉及的另一個關鍵是 “重放/重入攻擊”。在重放攻擊中,攻擊者將一個區塊鏈上先前記錄的交易廣播到另一個區塊鏈上,有可能會讓他們多次花費相同的資金或資產。避免這種情況的明顯方法顯然是使用輕客戶端來加密證明上述交易已經在每個鏈上完成。然而,這在每個鏈上都是不可能的。最近發生的這種類型的漏洞攻擊的最明顯的例子是 Nomad。另一個方法選擇是使用序列號或時間戳,以確保每筆交易有一個獨特的標識符,不能重複使用。對於這種方法,隨機性很重要。

此外,還需要考慮的一件事是某一特定資產的流動性在哪裡。例如,它是否在一個源鏈的流動性合約中?它是否像某些美元穩定幣一樣,流動性實際上是在鏈外?有很多的信任假設需要考慮。我們應該以最小化信任假設為目標,但我們永遠不可能完全消除它們。

現在我們已經建立了一些重要的事情,當你在橋接你的寶藏資產,只是想查詢數據或分享狀態時,需要注意。以下,讓我們了解為什麼橋接資產和狀態是至關重要的。

數據移動和狀態共享是實現跨鏈的真正可組合性的下一個步驟。它允許應用程序擴展到鏈的邊界之外,並以鏈不可知的方式建立協議。有了這個,A 鏈上的模塊、賬戶或智能合約可以調用或讀取 B 鏈上的智能合約、賬戶或模塊的狀態。一個很好的例子是通過 IBC 內的 ICQ 模塊發生。相應地,確保被橋接到不同鏈上的資產的安全性是至關重要的,因為我們和許多人都預見到了一個希望有許多鏈共存的未來。

跨鏈信息傳遞協議的一般分析

本節將對現有的每一個跨鏈橋接和消息傳遞協議進行指導。它將涵蓋它們的各種安全措施以及它們的信任假設所在。如果我們錯過了某個協議,那麼我們表示歉意。但是,這一部分應該還是涵蓋了現有的絕大多數協議,甚至還會涉及到特定的橋接合約,如 L2 橋接合約。

我們已經在以前的文章中深入探討了 IBC 的工作原理,比如這篇這篇。如果你有興趣閱讀這些文章,那麼我建議你這麼做。不過需要強調的是,其中的主要信任假設在於打開通道的鏈的驗證器組。沒有智能合約的風險,而是對驗證器集和它們的狀態的信任。

正如我們在 Polymer 文章中所涉及的,IBC 有各種衍生品。在這裡,我們指的是以某種方式利用 IBC 的跨鏈信息傳遞協議。第一節將涵蓋此類協議,也就是 Polymer 和 Composable,我們已經對 Polymer 做了全面的深入研究,所以我們會縮短這一部分,因為你現在應該已經非常熟悉了。同樣重要的是要注意,我們是 Polymer 和 Composable 的投資者。

Polymer

  • IBC 路由協議,與其說是橋接,不如說是一個通用的跨鏈信息傳輸協議
  • 輕客戶端或智能合約作為輕客戶端驗證區塊頭(來自驗證者的簽名)。
  • 通過驗證器集的驗證器簽名進行加密證明— 即在非 Cosmos 鏈上的 ZKP,通過遞歸(plonky2)和鏈上驗證即 zkIBC 實現。
  • 智能合約中的 IBC 邏輯
  • 可以提供異步橋接,依賴於連接鏈的驗證器集。
  • 能夠實現數據共享和查詢。不僅僅是一個資產橋。
  • 在源鏈上同步提交(驗證者簽名),一旦在目標鏈上檢查區塊頭,就有最終結果。
  • 加密經濟安全是與 IBC 相連的鏈的利益,對於非 IBC 的鏈,信任假設在於部署的智能合約。

Composable

  • XCVM 的運作方式類似於 Polymer 的運作方式。我們指的是部署本地跨鏈協議的能力,即狀態的共享、查詢能力等。
  • Centauri 是他們的傳輸層,是促進實際通信的東西。這是基於 IBC 的,也允許狀態共享。它基本上允許從 IBC 鏈通過其並行鏈進行橋接,並行鏈連接到其各自的中繼鏈。
  • 與 IBC 一樣用輕型客戶端操作,以及 IBC 的鏽蝕實現,以支持 Polkadot 生態系統(Substrate)。輕客戶端或智能合約/Pallets 作為輕客戶端驗證區塊頭(驗證者的簽名)。
  • 在這種情況下,信任假設從兩個單一的 valsets 轉移到有關中繼鏈(Polkadot 或 Kusama)的 valset,該鏈操作被橋接的並行鏈的狀態。這是通過一個 IBC pallet(類似於以太坊上 Solidity 的 Polymer IBC 合約)來實現其並行鏈上所需的 IBC 框架。
  • 觀察者節點在鏈被攻擊的情況下驗證區塊的有效性。
  • 對於有原生輕客戶端支持的鏈,其過程與 IBC 的原生工作方式非常相似。

下一節將解釋 XCMP 是如何運作的,它是 Polkadot 生態系統的本地跨鏈信息傳輸協議。這也是對 Composable 的自然跟進,因為它們確實源自該生態系統。

XCM (P)

  • 並行鏈做了一個單一的信任假設,因為它們都依賴於 Polkadot 的共識,所以它們信任主中繼鏈。Kusama 和它的並行鏈也一樣。
  • 因此 XCMP 依靠中繼鍊和並行鏈驗證器來驗證從並行鏈發出的消息,這個過程由中繼鏈上的一個區塊來最終完成。
  • 建立如與 IBC 的渠道。然而每次提交都需要到中繼鏈上,因此需要監控中繼鏈上的狀態,以確認消息已經達成共識。因此,並行鏈區塊頭需要進入中繼鏈區塊以確認消息的傳遞。
  • 在這種情況下,中繼鏈有點像受信任的第三方(TTP)一樣運作— 所以它和中繼鏈的 valset 一樣安全,即你的信任假設。
  • 並行鏈通過中繼鏈(Polkadot)通過共享安全獲得其安全性。
  • 這意味著 Polkadot 網絡的總賭注是 XCMP 的信任假設和加密經濟安全。

IBC

  • 需要對方鏈上的輕客戶端對兩個鏈之間的共識狀態進行加密驗證
  • 需要中繼器在兩條鏈上的輕客戶端之間中繼信息。中繼器是有效性的需要— 能夠在節點之間交換信息,使節點成功達成共識。
  • 中繼器不向每個鏈上的輕客戶轉發信息。相反,中繼器提交給每個鏈的消息的確切接收者是該鏈上的 IBC 模塊。輕客戶端是 IBC 模塊的一個小的子組件。
  • IBC 輕客戶端只在初始化步驟(信任根,當客戶端被創建時)信任一個特定的區塊頭。在該步驟中,客戶端確實信任提供該區塊頭的節點是誠實的。在這一步之後,他們不再有誠實的基於特定完整節點的信任假設。
  • 信任假設在於連接的區塊鏈的兩個驗證器組內
  • 加密經濟安全是有關鏈的關鍵所在

為了觀察 Cosmos 路線,讓我們看看 Gravity 和 Axelar,它們都通過智能合約在非 CosmosSDK/Tendermint 鏈上運行自己的橋接,並進入自己的鏈上,作為可信的第三方和共識網絡發揮作用。這些都是相對簡單的解決方案,但它們確實使 Interchain 生態系統能夠連接到更廣泛的區塊鏈生態系統。

Gravity

  • 運行一個 Cosmos 鏈作為共識網絡,以確保在 Cosmos 生態系統中可使用的 ICS 資產的安全並進行加密。
  • 驗證者需要運行一個完整的 ETH 節點
  • 通過中繼網絡連接(在這種情況下,它不像 IBC 那樣是無信任的),這增加了一個信任假設,因為他們控制著他們的 Cosmos SDK 區,因此如前所述,他們需要運行自己的 Eth 節點。
  • 與 Gravity 連接的流動性是在 Ethereum 的智能合約中。
  • 不可升級合約,只有輕微的邏輯升級是可能的。
  • 信任假設在於 Gravity 橋的 valset,智能合約的安全風險和有利益衝突的中繼器網絡。

Axelar

  • 與 Gravity 類似,它依賴於 Axelar 鏈的驗證者,在 Axelar 上的鏈上運行節點/輕客戶端。
  • 與 Gravity 同樣類似的是,它對交易也進行批處理。
  • 也依賴於智能合約,需要移植到新上鍊的目標語言上。Axelar 目前比 Gravity 支持更多的鏈,而 Gravity 只支持 Ethereum。這些智能合約並不是流動性的智能合約,而是一個可以調用其他合約的智能合約。這意味著他們在理論上的操作就像一個網關或一個輕型節點,其中傳遞的消息符合 Axelar 提供的邏輯。橋接,如 Satellite,可以使用基礎設施來建立一個實際的流動性橋接並橋接資產。
  • 允許一般的消息跨鏈傳遞,並以應用為目標,將 Axelar 作為消息傳遞協議,就像 IBC 以及 Polymer 和 Composable 所針對的那樣。
  • 允許應用程序使用他們的基礎設施。類似於 LayerZero 不是橋接,但 Stargate 是。這是一個可靠的比較,然而,請記住,Axelar 經營著自己的共識網絡,即它的 Cosmos SDK 鏈,它的驗證者也為連接的系統運行節點。
  • 目前,受信任的驗證者有 60 個(儘管對於其中的一個子集或有時全部的子集,不是所有的驗證者都在連接的鏈上運行節點)。所以顯然也要考慮到智能合約的風險,同時,如果你使用通過他們的基礎設施連接的橋,他們也是智能合約。

接下來,我們將看一下 LayerZero,它確實在一般的跨鏈消息協議世界中掀起了風暴,並看到了巨大的吸引力。需要再次指出的是,L0 不是橋接,而是一個消息傳輸協議,你可以用它來建立橋接,或者用來調用跨鏈智能合約。

LayerZero‌

  • 兩個實體— 預言機和中繼器。
  • 預言機將區塊頭轉發給目標鏈,而中繼器將源鏈的交易證明與預言機轉發的信息進行對比,證明交易/消息是有效的。
  • 應用程序可以靈活地使用 LayerZero 默認的預言機和中繼器,或者創建和運行自己的。它們被用作跨鏈的信息傳遞協議,而不是一個實際的代幣橋。但是你可以用它建立橋接,比如 Stargate 和其他的橋,用它們來傳遞消息。
  • Endpoint,是他們的 Axelar 的 Gateways 版本,或者 Polymer 的 IBC 邏輯智能合約。他們基本上像 IBC 中的輕客戶端一樣處理驗證。
  • 這確實意味著你和 Axelar 一樣,依賴於 LayerZero 的基礎設施,然後是連接到 LayerZero 的智能合約。
  • 如果這兩個人中有一個不誠實,交易就會失敗。然而,如果兩個人都不誠實(如果你依賴中心化的解決方案或應用程序自己的解決方案,這可能是一個問題),就有可能被利用。因此,這裡使用的去中心化預言機網絡是至關重要的,也有多種選擇,並可能使用綜合預言機— 如果需要的話,可參考相關部分。
  • 不依賴於可信的第三方鏈,而是依賴於一個模塊化的架構,可以有不同程度的安全和信任。
  • 與正在使用的預言機/中繼器解決方案以及自然智能合約風險一樣安全。
  • 不提供或依賴任何加密經濟安全的說法。然而,它確實依賴於所用網絡的加密經濟安全,包括預言機使用的的經濟安全。中繼器的安全,如是否是多籤等等。此外,它也有對所使用的智能合約的信任假設。

接下來,讓我們看看 “Optimistic Bridges”,這裡我特別指的是 Nomad 和他們的一些合作夥伴。這顯然有一些內涵,但請記住,這個漏洞並不是橋接機制的結果,而是網絡的安全性未能覆蓋的一個智能合約的漏洞。

Optimistic Bridges

  • 交易/數據發佈到一個合約函數,就像之前提到的 Endpoints/Gateways。
  • 橋接代理簽署 Merkle 根的數據是正確的,並發布它。然後任何中繼器都可以將其發佈到想要的目標鏈上。這個代理必須綁定代幣,如果發生欺詐,代幣會被罰沒。
  • 在數據發布後,一個防欺詐的窗口就會開啟,任何鏈上的觀察者(因為他們得到了代理的債券而受到激勵)可以證明源鏈上的欺詐,債券便會被罰沒。然而,目前,這類鏈上罰沒是不可能的,所以它必鬚髮生在鏈下網絡,且通常是半手動的。
  • 如果在時間範圍內沒有發送欺詐證明,那麼數據在目標鏈上被認為是最終的,可以在目標鏈上調用合約。
  • 這種技術有一個低信任假設,然而,它在很大程度上依賴於智能合約和觀察者的工作。如果有任何智能合約被利用,觀察者就無法做任何事情。
  • 他們只需要一個誠實的觀察者,因為只有單方需要正確驗證更新。
  • 這確實意味著綁定的可罰沒質押需要不是非常高,因為你依靠的是只有一方是誠實的這一事實。
  • 需要去中心化的代理,否則,一個人就可以停止系統的運行。
  • 需要對觀察者徵稅以防止 DoS,然而,這意味著如果從來沒有任何欺詐行為,你也不會得到任何東西,這需要不同的激勵方案,除非你只是依靠橋接的活動者來運行它們,但這也導致了中心化,因為觀察者/活動者和協議都會運行一切。
  • 加密經濟安全取決於所使用的具體網絡。它可能是觀察者或代理人的加密經濟安全,這些觀察者或代理人有綁定的代幣才被允許參與。對於限制他們的影響有各種方法,如之前討論的那樣。
Optimistic Bridges 的構架

接下來讓我們來介紹一下多方計算(MPC)的橋樑,其中一些也依賴於自己的可信第三方外部驗證的共識網絡,如區塊鏈。這種解決方案的兩個例子是 Qredo 和 Chainflip。Synapse 也與他們的無領導 MPC valset 的工作有些類似。

有著外部驗證者的多方計算(MPC)

  • MPC 是一個閾值簽名方案,它允許幾個節點在一個單一的密鑰下創建簽名,這使得串通和接管一個賬戶變得更加困難。
  • 外部驗證者指的是,該協議正在運行一個帶有驗證者節點的網絡或鏈,驗證簽名並調用和控制 MPC 錢包想要橋接的鏈上的網關智能合約函數。這也可以被稱為中間鏈的方法。
  • 許多 MPC 解決方案還運行各種硬件安全。
  • 如果一個未經授權的嘗試被用來訪問賬戶,存儲在該節點內的密鑰就會被破壞,社會工程是唯一的訪問方式(我們以前看到過成功的例子)
  • 這也意味著這些橋接通常只限於少數人使用。這通常集中在機構使用。
  • 在該橋接網關合約的信任假設從使用的協議中正確設置。各種智能合約的安全風險。社會工程在這裡也是一個有效的擔憂。
  • 中間鏈經常被用來記錄用戶的資產所有權。
  • 為了獲得最佳的安全假設,網關應該由一個去中心化的多節點/節點網絡控制。
  • 在這些情況下,中間鏈往往是系統的加密經濟安全,因為它允許記錄和改變誰擁有資產,因此它是可信的第三方。
  • 請記住,隨著使用的簽名者數量的增加,系統的延遲會增加,如下圖所示:
  • 各種解決方案最終看起來有點像下圖所示:

前面的兩個解決方案也可以在一定程度上被看作是特定應用的橋接,這也是我們前面暗指的一種鏈。另一個符合這種分組的鏈,是人們通常認為的 Rune,也被稱為 THORChain。

Rune ‌ (THORChain)

  • THORChain 本質上是作為一個外部驗證者,實際上是在連接的鏈上操作無領導的金庫。這也意味著它是整個網絡的加密經濟安全,因為它在橋接的鏈之間充當了一個中間人。這也是需要做出的信任假設之一。
  • 一個狀態鏈協調資產和交換邏輯,同時委託交易輸出
  • 這與每個鏈上的 “端點 “相連,以處理特定的交易
  • 每個簽名者都需要在連接的鏈上運行一個完整的節點
  • 每個鏈的客戶端是相對輕量級的,只包含在特定鏈上調用合約所需的邏輯。主要的邏輯在對 THORChain 本身進行操作的觀察者客戶端中。其架構大致如下圖所示:

為了完成我們的分析,讓我們看看一種通常不被稱為橋接,而是 L2 rollup 合約的橋接類型。這些是以太坊上的合約,L2 與之交互,資產在這裡被鎖定,然後在上述 rollup 上” 鑄幣 “。在這個時間點上,這些合約持有數十億的資產。因此,它們的有效性是非常重要的。以下,讓我們來看看它們是如何運作的,以及它們提供了什麼類型的安全。

Rollup 橋接合約

  • 其功能類似於橋接,即資產被鎖定在 L1 智能合約中,然後在 L2 上可用。
  • Rollup 狀態和證明在 L2 合約上被驗證,給予加密安全,這在一定程度上來自底層區塊鏈。如果需要有效性證明,則在 L1 上的驗證器合約中發送和驗證。
  • 大多數 rollup 的智能合約都有可升級性,而這顯然是一個需要考慮的風險。
  • 大多數 rollup 允許通過 L1 進行交易,或者在定序器失敗時強制退出 L1。
  • 本質上是一個信任最小化的橋接。然而,存在著重大的智能合約風險,以及圍繞誰控制這些的信任假設。
  • Arbitrum 和 Optimism 的” 橋接 “是這樣運作的:

現在我們已經涵蓋了目前用於跨鏈信息傳輸協議和橋接的絕大部分解決方案的類型。接下來,讓我們來看看有關協議安全的另一個非常重要的部分,即協議的經濟性。該部分特別有趣的是協議的加密經濟安全,即如果它有一個代幣,可以賦予治理權力或允許你接管協議本身的一個重要部分。

橋接經濟學

讓我們從一個假設開始— 假設有一個帶有治理代幣的橋接協議,允許對協議的升級進行投票,或者允許控制協議的核心函數。現在,如果鎖定在協議中的總價值遠遠超過了通過提案的法定人數,那麼攻擊協議的價值就很明顯。這個簡單的假設就是為什麼橋接經濟和治理功能對橋接極其重要的原因。在治理方面,緩解這種情況的一個方法是利用一個稍有細微差別的治理原則,稱為 Optimistic Approval,如前面所述。

加密經濟安全是區塊鏈橋和跨鏈消息協議的一個重要方面,需要一個精心設計和實施的激勵和抑制系統來確保系統的安全性和完整性。這就是為什麼那些不一定依賴可信第三方的加密經濟安全的系統效果最好的原因。在系統中,依靠橋接的加密經濟安全來確保各個鏈上的資產,顯然不如依靠鏈上的加密經濟安全本身更安全。

然而,目前,大多數橋接和跨鏈信息傳輸協議都依賴於可信第三方的經濟。顯然,這在該 valset 非常安全的情況下可能是相當理想的,但在其他情況下也可能會出現問題。此外,還有其他機制的用法,可以用來保證參與網絡的安全,比如可驗證延遲函數,它可以在依靠這種行為者的網絡中為參與的預言機增加隨機性。

其他需要考慮的經濟方面是經常使用加密經濟價值的網絡,如在 multisigs、valsets、mpc 甚至閾值中。這些往往依賴於誠實的多數假設,這意味著攻擊這些橋接的成本是佔領 51% 的網絡的成本。

受信任的第三方

在區塊鏈橋接中使用受信任的第三方既有優勢也有劣勢。一方面,這些第三方提供了一個集中的、受信任的協調點,這可以使不同網絡之間的資產和數據的轉移更容易管理和安全。在不同的網絡有不同的安全和共識模式,或者需要額外的監測和控制水平的情況下,這可能特別有用。

另一方面,使用受信任的第三方在系統中引入了一個潛在的故障點。如果第三方被破壞,有可能導致資產或數據的損失。此外,將權力集中在受信任的第三方,有可能破壞系統本身的去中心化和去信任。

速率限制

另一個與經濟相關的方面,也可以幫助限制攻擊造成的損害,那就是對橋接使用速率限制。速率限制的意思是限制每小時可橋接的美元總價值的概念,這樣就可以把緊急解決方案落實到位,以挽救橋接的其餘部分。

顯然,這在用戶體驗方面造成了問題,特別是對於非常受歡迎的橋接或大型橋接用戶來說,同時這也顯然增加了一些安全性。例如,你可以限制每小時可橋接的總金額為 1000 萬美元。那麼,絕大多數用戶/零售商不會注意到這一點,而且這將把漏洞中可能造成的損失限制在一個更小的數額。這在過去的漏洞中顯然是相當有用的。

那麼,速率限制應該是多少,有什麼神奇的數字嗎?這取決於所述橋的採用,也取決於被橋接的鏈。例如,在 Arbitrum<>ETH 橋上,需要被橋接的量可能很大,因為它很流行。而在遊戲專用的應用鍊或 rollup 的情況下,並不需要大量的價值傳遞,所以你寧願確保用戶的資金安全。在這種情況下,速率限制會有很大的意義。

當然,負面影響也是顯而易見的,即降低流量,將大玩家排除在外。然而,安全問題是表示比這些更重要?

一個解決方案可能是實施 “橋接車道的高速公路”。為不同的解決方案和人建立不同的橋接。這樣做的一個明顯的缺點是,這將帶來流動性和交易量的分散。對於一個遊戲專用的 rollup,限制較低的金額是有意義的,因為你不需要大資金交易,且你想在任何情況下確保用戶的資金安全。

其他一些需要記住的事情是:

  • DoS 攻擊,所以你需要對大交易量進行一定的收費。
  • 你想為增長進行優化,但這給增長帶來了一點阻礙。

正如本文所表明的那樣,一路走來都是權衡利弊。因此,當涉及到速率限制時,情況也是如此。然而,這是一個我們希望看到更多實驗的領域。在大多數情況下,沒有明確的最佳方案,但總的來說,在這個領域嘗試新的和大膽的東西是值得的。沒有任何最終設計是理想的,但安全和保障應該是任何協議的最大關切。可以這麼說,速率限制允許我們為少數人犧牲用戶體驗,並為多數人提供安全。

互操作性和可組合性

互操作性經常被用來解釋應用程序和鏈之間資產的無縫轉移,而可組合性則被用來描述這些特定應用程序之間共享基礎設施的想法,例如以最小的工作量在幾個鏈上部署一個應用程序。這就是之前描述的跨鏈信息傳遞協議所做的工作類型。

只有當鍊和應用之間的交易成本很低時,可組合性才真正可以持續,否則,它就失去了可組合性賦予你的主要價值。可組合性為終端用戶帶來了更多的選擇,並且能夠在各種生態系統和應用程序之間無縫地進行操作,同時消除了先前的障礙,如從頭開始構建生態系統。

當應用程序能夠與其他應用程序交互時,它們就是可組合的,如自動流動性頭寸、借貸等。

我們已經盡量客觀地提供了關於跨鏈互操作性的當前狀況的清晰概述,並希望它為作為讀者的你提供某種價值。如果你有任何不同意的地方,或者覺得被誤導了,那麼請在 Twitter 上聯繫作者 @0xrainandcoffee。

最後,感謝 Runtime Verification 對智能合約部分的投入,也感謝文章的其他讀者提供的幫助。

關於橋接中信任最小化的進一步閱讀,我強烈推薦閱讀來自 Celestia 的 Mustafa 的 Clusters

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。