– “橋” 的 安全/威脅 模型各有不同 –
通過鏈下協議增強網路可擴展性的方案在密碼學貨幣社區內掀起了一股熱潮。這類方案使得絕大多數交易的處理任務可以從 Layer 1 區塊鏈轉移到鏈下系統,從而繞開 Layer 1 區塊鏈的一切費用和延遲問題。
什么是 “橋”?
在本文中,我想要討論一個對所有鏈下協議來說都很基礎的組件,這個組件常常被忽視,但是對于資產安全保護來說至關重要:
“橋”的作用是持有 Layer 1 區塊鏈上的資產,同時在另一個(外部)服務上發行它們。它規定了資產托管者以及解鎖資產的條件。
簡而言之,Layer 1 區塊鏈(如以太坊)連接到其它系統時都會使用 “橋”,所有的 “橋” 都執行相似的操作:
- 存款。用戶可以將資金存到 “橋” 上,通過 “橋” 將這筆資產等量映射到另一個系統上。
- 更新用戶余額,“橋” 會收到賬戶余額的更新通知,并將其用于取款流程。
- 取款。用戶可以通過 “橋” 將資金提取到 Layer 1 區塊鏈上,同時將另一個系統上的對應余額銷毀,
最常見的一類 “橋”(很少有人注意到它們)就是單一組織橋:
– 絕大多數密碼學貨幣交易所都是 “橋” –
如果我們只考慮 “橋” 的定義,我們完全可以說密碼學貨幣交易所是一種鏈下協議。用戶可以將資金鎖定在該協議內,避免交易時的 gas 費和網路延遲,最后再將余額提取到 Layer 1 區塊鏈上。
除了單一組織橋之外,還有兩類依賴于多名托管者的橋:
- 多組織橋,被鎖定的資金托管給一組固定的獨立參與方(K/N)。
- 密碼學經濟橋。被鎖定的資金托管給一組動態的參與方,具體取決于這些參與方的 資產權重。
需要注意的是,上述三類 “橋”,它們在 Layer 1 區塊鏈上都無法驗證其對象系統上的賬戶余額數據是否正確(或者其對象系統內的負債是否超過了 “橋” 所持有的資產),托管者需要驗證每一筆取款是否與其對象系統存在沖突。他們最終決定是否釋放資金,以及收款方是誰,
側鏈和 “橋” 彼此獨立
上文主要討論的是利用 “橋” 將用戶引導到托管服務(如密碼學貨幣交易所)上。“橋” 還有一個越來越受歡迎的應用場景,即,實現區塊鏈之間的互聯(順帶一提,這就是側鏈的起源),
– “橋” 和側鏈在安全性上彼此獨立 –
下面列舉了一些現有的“橋” 項目 :
- WBTC:單一組織橋,將 BTC 轉移到以太坊上,
- 流動網路或 RSK:多組織橋,由部署了硬件安全模塊(HSM)的聯盟成員將 BTC 轉入/轉出其它區塊鏈,
- Polygon 橋:密碼學經濟橋,其中,驗證者需要憑借不少于總質押量的 2/3 + 1 定期就所有 Polygon 用戶的賬戶余額達成共識,用戶可以根據共識將資金提取到以太坊上。(實際上,Polygon 最終由一個小型多簽合約控制,但是這里側重的是它的長期目標)。
- Rainbow 橋:密碼學經濟橋,其中,橋合約是一個輕客戶端,可以驗證另一條區塊鏈的狀態變化。它不會驗證另一條區塊鏈的有效性,資產的安全性最終取決于另一條區塊鏈的持續狀態變化(由密碼學經濟機制保障),
最重要的是,每個橋都有自己的安全模型,并且獨立于區塊鏈網路,我們可以舉一個簡單的例子 WBTC 來作進一步闡述:
BitGo Trust 負責保管被鎖定的 BTC,并在以太坊上發行等量的 WBTC,以太坊上的智能合約會追蹤所有涉及 WBTC 轉賬的賬戶的余額。用戶需要相信 BitGo 會尊重記錄在智能合約內的賬戶余額,
就 WBTC 而言,我們需要考慮以下幾點:
- 單一托管方。WBTC 橋依賴于單一托管方來保證其完整性,托管方可以在以太坊上超額發行 WBTC,也可以拒絕退回 BTC,
- 獨立的安全模型,以太坊的安全模型獨立于比特幣,WBTC 橋的安全模型則獨立于這兩個區塊鏈。
- 將以太坊作為側鏈。在實現從比特幣到以太坊的跨鏈時,交易被轉移到了鏈下。
上述三類 “橋” 的共同點是都不驗證側鏈的完整性,而且沒有在托管方(或側鏈)掉線時保護資金的自動應急計劃,它們構想了自己的安全模型,而非依賴于其所在的 Layer 1 區塊鏈的安全模型,
慢著,Layer 2 協議與 “橋” 又是什么關系?
Layer 2 的可擴展性承諾是將交易吞吐量從 Layer 1 區塊鏈轉移到鏈下系統。“橋” 的作用是保管資產,并將它們映射到另一個系統上,
然而,不同于上文提到的所有 “橋”,Layer 2 協議力圖為其保管的資金提供與 Layer 1 區塊鏈同等的安全性,而且它不能依賴一組托管者(或另一個鏈下系統)來保護資金,
這就需要一種全新類型的 “橋”:
- Layer 2 橋。資金托管在 Layer 1 區塊鏈上,“橋” 必須能夠確認 Layer 2 協議沒有遭到破壞,遇到最糟糕的情況時,“橋” 將自行增強 Layer 2 協議的活性,直到所有資金能夠取出為止,
Layer 2 橋是所有 “橋” 中最強大的。
Layer 2 橋不依賴于一組托管者來保護資金的安全性,Layer 2 橋在釋放資金之前必須確保鏈下系統一切正常,一旦 Layer 2 橋出于任何原因相信鏈下系統遭到破壞,它完全可以徹底避開另一個網路,
– 一些致力于開發 Layer 2 橋、打造全新區塊鏈網路的公司 –
這就是為什么 Layer 2 協議如此令人興奮的原因,以至于上述公司甘愿花費數年時間研究 Layer 2 解決方案。這些公司都在力爭率先推出 Layer 2 協議,這場競賽主要專注于如何實現安全的 Layer 2 橋(而不一定是如何實現另一個區塊鏈網路)。
這正是進一步探索 “橋” 的技術問題和定義的好機會。我們已經明確指出,“橋” 必須有辦法確定 Layer 2 協議沒有遭到破壞。而 Layer 2 協議被破壞的情形可以歸結為下面四種:
- 數據可得性。“橋” 如何確保另一個區塊鏈網路的所有數據都是公開可得的,以便用戶可以獨立重新計算 Layer 2 資料庫?
- 狀態轉換完整性。我們如何讓 “橋” 相信 Layer 2 網路的所有狀態轉換是合法且有效的?
- 取款完整性。當 Layer 2 網路遭到破壞時,“橋” 如何保證所有誠實用戶都能取回自己的資金?
- 協議活性。當 Layer 2 協議暫停或掉線時,“橋” 如何保證交易依然能夠執行?
當然了,上述問題必須得到解決,與此同時,由于橋合約擁有的計算資源比鏈下系統少得多,橋無法實時重新執行所有交易,否則,它就不是可擴展性解決方案了。
解決上述問題就像是掉進了深不見底的兔子洞,需要面對鏈上挑戰、欺詐證明、有效性證明、將交易數據發布到 Layer 1 區塊鏈(rollup)等重重問題。
盡管我們的文章不會著重介紹各種解決方案,但是我們要強調:所有解決方案各有不同。一些即將部署的 Layer 2 協議無法滿足上述安全性目標,事實上,它們并不能被稱為 Layer 2 協議,因為缺少 Layer 2 橋。
“橋” 沒有對錯之分
– 所有 “橋” 都將幫助我們 to the moon –
正如本文討論的那樣,總共有四類 “橋” ,它們可以將資金鎖定在一條區塊鏈內,并將其映射到另一個鏈下系統(甚至是另一條區塊鏈)上。
托管橋,
前三類 “橋” 側重于確定被鎖定的資產由哪些托管者控制。托管者的職責是在允許用戶取回托管在 “橋” 中的資金之前,先驗證鏈下系統是否正確。托管橋假設鏈下系統的完整性是客戶端問題,且托管者擁有足夠的算力來處理它。雖然有額外的措施來減少托管者的職責,或引入密碼學經濟激勵來鼓勵托管者遵守協議,橋協議無法完全約束托管者,曾經發生過幾例橋丟失用戶資產的事件(如 MtGo 交易所),這是因為橋的完整性歸根結底還是取決于信任。
Layer 2 橋,
“橋” 完全取代了托管者來保管資金,并驗證鏈下系統的完整性,核心問題是,“橋” 必須確保鏈下系統沒有遭到破壞。與此同時,它缺少獨立驗證每筆交易的算力(否則它就不是可擴展性方案了)。除了會帶來巨大的技術挑戰之外,Layer 2 橋還有著很高的成本,為了讓 Layer 1 區塊鏈相信鏈下系統是合法且完整的,Layer 2 橋會持續產生經濟成本。然而,最終來說會是 “橋” 成為資金的托管方,而鏈下系統的運營方則無權托管。
總而言之,用戶是否真正關心 Layer 2 橋?我們是否應該將以太坊的安全模型擴展至鏈下系統?這些問題尚無定論。我認為這四類 “橋” 將一直存在下去,因為它們在提高用戶采用率方面具有重要意義,
我希望每一位用戶都能關注 “橋”,并思考自己最喜歡的協議采用的是哪一類 “橋”,這有助于用戶更好地理解自己正在使用的協議是如何保護資金安全的。