今天,我們深入研究底層橋的安全性並涵蓋以下內容:
1. 當用戶使用橋時會發生什麼
2. 我們所說的安全性是什麼意思
3. 我們會看到哪些類別的橋
4. 橋的安全性比較
5. 可擴展性——你可以搭橋的地方
在本指南中,我們將以Alice作為示例:
Alice在Arbitrum上有0.5ETH,並希望在Polygon PoS上使用這些代幣。為此,Alice必須使用橋。對她來說,大多數橋看起來都一樣。她將她的MetaMask連接到UI橋。然後她選擇了Arbitrum作為源鏈,PolygonPoS作為目標鏈,以及她想要橋接的代幣。設置好所需金額後,她可以提交一筆交易,等待在Polygon PoS的錢包中收到她的代幣。 Alice想要她的代幣能在一定程度上快速而安全地轉移。當然,Alice不想在此轉移過程中損失她的代幣。
1.用戶在橋接代幣時應該知道什麼
在後台,區塊鏈橋是協議——一組規則及其執行。規則定義了保護和釋放用戶在橋上持有資產的責任。有些協議比其他協議更安全。
橋將擴展解決方案與以太坊Layer-1聯繫起來,並連接不同的區塊鏈。橋負責在(Layer-1)區塊鏈上持有資產,而類似的資產則在另一個(和外部)服務端上釋放。它規定了誰擁有資金的託管權,以及在解鎖資產之前必須滿足的條件。簡而言之,只要像以太坊這樣的Layer-1區塊鏈連接到任何其他系統時,就會涉及到橋。從這個意義上說,橋是任何擴展解決方案的基礎。此外,橋的安全性決定了鏈下系統使用的安全性。想像一下,通過一個高度脆弱的橋連接兩個安全系統會是什麼樣。
在任何情況下,從源區塊鏈[Arbitrum for Alice]的角度來看,橋是一個智能合約,在某些情況下是一個多重簽名錢包,它持有用戶的資金,並規定瞭如何提取這些資金的條件。橋的另一邊[Polygon PoS for Alice],在目標系統或區塊鏈上,是另一個為用戶創建或解鎖相同資金金額的智能合約。這樣,用戶就可以在其他系統上使用這些資金。
區塊鏈橋不能真的在區塊鏈之間移動代幣。事實上,區塊鏈橋由兩個持有代幣的智能合約和一組定義誰可以訪問這些代幣的規則組成。在不同區塊鏈上的這兩個智能合約之間,有一個帶有加密簽名的信息流。這些信息是目標鏈上的智能合約創建或發行新代幣的指令,從而觸發交易接收者的支付。因此,橋必須確保這些信息的有效性。
在任何情況下,橋都需要能中繼信息的外部方。這些外部方觀察每條鏈上的智能合約,創建或獲取信息並將其轉發到其他鏈上。
橋的技術挑戰在於區塊鏈的本質。區塊鏈被設計成一致且可驗證。所以事實上,區塊鏈只能知道和信任區塊鏈本身產生的信息。任何外部信息——以及橋接代幣的概念——都很難獨立驗證,因為區塊鏈無法了解外部世界或其他區塊鏈。大多數橋使用高明的手段來確保轉發的消息是有效的,如果是這樣,Alice可以收到她的代幣。
重要的是,如果橋通過鑄造將新的和不安全的代幣引入目標鏈,那麼這些資產就取決於橋的安全性,而不僅僅是鏈本身的安全性。這可能會危害鏈的安全性。
2.我們所說的安全是什麼意思?
安全就是沒有風險。在我們的用例中,我們將風險理解為橋轉發無效信息的風險。這包括不轉發有效消息,比如有效的提款請求。用經濟術語來說,如果橋沒有受到經濟攻擊,破壞橋所的資金少於破壞其連接的底層區塊鏈所需的資金,那麼它就是安全的。
換句話說,從Alice的角度來看,橋的安全性被定義為這個愉快的用例的可能性——在目標鏈上收到承諾她的代幣。這種可能性越大,我們就認為橋越安全。這就和這個用例會不愉快的不可能性一樣——在安全的橋中,Alice不太可能發生不好的事情。
我們比較了不同橋的設計,看它們如何防止這種不良後果。下面是Alice嘗試橋接她的代幣時可能發生的情況:
1. Alice可能會被審查——她的有效信息可能會被審查。她的交易可能會被拒絕,因為橋運營商將她的賬戶列入禁止名單。在那種情況下,她無法橋接,在最壞的情況下,她無法撤回她的代幣。
2. Alice在目標鏈上收到的代幣可能比約定的要少或根本沒有——她的有效信息可能被篡改。因此,在我們的示例中,可以向Alice承諾在Polygon PoS上獲得0.495wETH,但她只能得到0.1或根本沒有。在這種情況下,橋沒有中繼有效信息,而是在此過程中更改了信息。
公平地說,當涉及到橋的安全性時,還有許多需要考慮的因素,超出了這篇博文的範圍。更多信息,請參見此處。
在構建橋時,需要考慮每一層的風險:
-
橋連接的區塊鍊和共識層的安全性和最終性。
-
橋應該能夠處理鏈重組和不同形式的最終性。
-
智能合約本身就承擔著非常具體的風險——我們可以想到的可升級性或黑客可以利用的漏洞。
-
鏈下基礎設施需要在最先進的網絡安全設計中進行維護和設計。
但如前所述,這些考慮超出了本博文中的協議設計分析。
因此,現在我們可以分解橋的安全性問題,即不同的橋設計如何防止Alice的這兩種不良後果。因為現在有超過100個橋,我們可以看一下橋的類別,這些類別因其協議設計而不同。
3.我們能看到了哪些類別的橋?
1、Rollup可以看作是高度安全的橋。信息和結果狀態的有效性可以在Layer-1上證明。他們在Layer-1執行一個輕客戶端,檢查來自Layer-2的State Root的有效性。這樣一來,Rollup在所有橋中的信任假設是最少的。只有在有數學或加密經濟證明正確的情況下,橋才會釋放資金。這個證明發生在Layer-1上,這樣一來,這些橋就繼承了Layer-1區塊鏈的安全性。
示例:StarkGate、Arbitrum 橋、Optimism橋
2、然後,我們有了樂觀橋(Optimistic bridges)。這些橋樂觀地假設一條中繼消息或一捆中繼消息是正確的,直到證明有消息是錯的。然而,目標鏈無法檢查信息的實際有效性,但它們相信至少有一個誠實的觀察者——他可以檢查有效性並證明源鏈上的欺詐行為。有人發送一條消息,觀察者可以檢查其有效性並在有欺詐行為時介入。因為總是有可能會有一個誠實的觀察者,他在暗中觀察橋,以防止任何欺詐行為,所以攻擊者永遠無法確保成功,從而使任何攻擊都是不划算的。然而,樂觀橋的安全性確實需要依賴一組無需許可的觀察者。如果這組觀察者被許可,理論上,所有觀察者都可能被賄賂而串通起來。
例子:Nomad/Connext,Across,NEAR 彩虹橋
接下來的兩個類別信任一組驗證器——如果驗證器聲明其有效性,則橋必須信任他們。這組驗證器可以與源鏈的所有驗證器一樣大,也可以與項目團隊能夠自行組裝的任何東西一樣小。
3、下一個類別包括執行 “共識”輕客戶端的橋。共識檢查輕客戶端不如Rollup安全,因為它們無法驗證區塊是否正確——它們相信源區塊鏈的礦工/驗證者已就某種狀態達成一致。基本上,它們只檢查一個區塊是否正確簽名,和在PoW的機制下檢查難度。這意味著輕客戶端橋假定源鏈的一組驗證器沒有串通。如果礦工/驗證者受到威脅,橋可以接受無效區塊。但是,如果橋接受了這個區塊,則可以使用Merkle證明來查看源鏈上發生了一些事情。
示例:Cosmos IBC
4、最後,我們有一些橋,它們依賴於一組外部驗證器來證明信息的有效性。它可能是多重簽名、具有PoS共識的動態驗證器集、MPC(模型預測控制)機制、英特爾SGX安全盒、預言機等等。它最終都是同一類別。這些系統的安全性依賴於經濟激勵。他們中的大多數都要求驗證者質押一定數量的代幣,如果他們有任何欺詐行為,這些代幣就會被削減。按照設計,一旦驗證者可以從橋中竊取的金額大於質押金額,就無法保證他們會誠實行事。有些橋只使用兩方——中繼者和預言機——負責中繼和驗證消息。在這種情況下,如果系統是無需許可的,則無法保證這兩方不會串通一氣。
例子:Multichain、Celer cBridgev2、Layer0、Axelar、Wormhole、Polygon PoS
4.橋如何確保安全(相對而言):
我們現在可以比較不同橋的設計將如何防止對Alice造成不良後果。
5.可擴展性:你的橋可以連接哪裡?
那麼為什麼Alice不只使用Rollup來橋接她的代幣呢?
雖然原生橋和輕客戶端橋對於它們所構建的特定領域來說是最安全的(例如:Arbitrum橋是Arbitrum和以太坊之間最安全的網橋,IBC是Cosmos最安全的通信協議),但它們在設計上有一個很大的限制:它們只對它們所定制的特定連接起作用。
IBC只適用於Cosmos生態系統、Arbitrum只適用於以太坊、XCM只適用於Polkadot等。
相反,驗證者橋和樂觀橋具有連接任何智能合約鏈的靈活性。
如果Alice想在Arbitrum和Polygon之間搭橋,她將需要通過這兩個系統中的任何一個。
結語
希望這可以幫助你理解為什麼你的加密貨幣需要一個安全途徑。
提醒:
-
區塊鏈橋在一側鎖定代幣,在另一側釋放代幣
-
安全問題始終是如何以安全的方式說服對方,將正確的代幣數量釋放給正確的人?
-
Rollup可以驗證每筆交易
-
樂觀橋至少可以證明源鏈上的欺詐行為
-
輕客戶端橋和驗證器依賴於更大或更小的可信任的驗證器集。
在進一步了解橋的安全性後,現在,你的Web3旅行由你做主!