ZKbridge、Optimistic Bridge、TEE Bridge 都是很不錯的方案,它們都在試圖構建更加 Trustless 的跨鏈橋,消除中心化風險,提高跨鏈橋的安全性。
(前情提要:案例探討》Multichain事件暴露「MPC 錢包」管理的哪些問題? )
(背景補充:MultiChain攻擊》Circle緊急凍結 6300 萬美元 USDC,MULTI反漲 11 %)
Multichain 出事至今已近兩個月,現在事件的進展還撲朔迷離,真相還未完全浮出水面。但可以確定的是,為 Multichain 提供流動性的 LP 們、以及持有 Multichain 發行的反射資產 anyToken 的使用者,恐怕是要遭殃了。這回受影響的資產數額太大,不知道會不會有人出來兜底。
7 月 6 日,超過 1.26 億美元的資產從 MPC 託管地址中被人為轉出,根據合約審計團隊 Beosin 的分析,資金的轉出完全是人為操作,與合約漏洞無關,證明 Multichain 的 MPC 託管地址私鑰已經被外力掌控。
在 7 月 14 日 Multichain 釋出的官方宣告中,明確宣佈了 Multichain 創辦人 zhaojun 已經在 5 月 21 日被警方帶走的訊息。然而令人大跌眼鏡的是,宣告中提到,Multichain 的 24 個 MPC 節點私鑰全部由 Zhaojun 掌握,且所有節點服務完全在其個人伺服器中執行!WTF!!!
多簽橋的中心化風險,就像一隻肥碩的灰犀牛,它就在那裡,大家都能看到,但又選擇性的忽略。關鍵這頭犀牛還馱著數百億美金的鉅額資產!
目前,市面上 TVL 靠前的跨鏈橋幾乎全部都是多簽橋。在 Multichain 之前,已經發生過 Axie Infinity 官方橋 Ronin Bridge、Harmony Chain 官方橋 Horizen bridge 因私鑰洩露而爆雷的事件,分別造成 6.2 億美金和近 1 億美元的損失。
多簽橋為什麼不值得信任?
一般而言,跨鏈橋分為三種,分別是輕客戶端型(原生驗證)、見證人型(外部驗證)、基於 hash 時間鎖的原子交易型(本地驗證)。
其中基於 hash 時間鎖的原子交易,由於其使用者體驗欠佳(需要使用者進行 2 次以上的操作),以及無法支援任意訊息傳遞,鮮有採用。
輕客戶端型跨鏈橋則由於其工程實現上相對困難、相容新鏈的成本較高,目前僅被應用在一些僅需支援少數鏈的專用橋當中。見證人型跨鏈橋則開發實現較為簡單、可以輕易的進行多鏈適配,且效能較好(速度快,費用低),而成為大多數專案的選擇。
見證人型橋通過一組外部的 Bridge Nodes 對跨鏈訊息進行共識簽名,以此來驗證訊息的真實性,因此我們也稱之為多簽橋。
跨鏈橋一般採用 lock-mint 邏輯來鏈間傳遞資產,使用者通過鎖住鏈上原生資產(例如 USDC ),來 mint 目標鏈上的反射資產 (例如 anyUSDC),這些鎖住的資產會成為橋的 TVL,一旦被盜,使用者或者 LP 手中的反射資產將與原生資產脫錨,無法足額贖回。
當這些外部的 Bridge Nodes 如果串謀,或者他們沒有保管好自己的私鑰碎片導致其中 2/3 以上被駭客獲取,這樣的事情就會發生!
大多數多簽橋,少則只有個位數的 Bridge Nodes,多則也就 20 多個。在 TVL 較低時,這些主體可能不會去串謀作惡,但當多簽橋的 TVL 達到數億美金時,沒有人保證他們不會動心。
如果利益足夠大,串謀 20 個節點,並不算很困難。這還沒有考慮到,很多跨鏈橋的諸多節點往往都是利息高度相關的 「友商」,甚至一些跨鏈橋存在一個主體控制多個節點的情況,例如,Ronin Bridge 的 9 個節點中有 4 個控制在 Star Mavis 公司手中, Multichain 的情況則更加過分,1 人掌握所有的 24 個節點 !
一個成年人的標誌是,不再相信人性經得起考驗。
跨鏈橋將如何改進?
Mulitichian 的事件對於跨鏈橋領域,或許將成為一個轉型的契機。當大家都不再願意容忍中心化帶來的安全風險時,「多簽橋」 自然就玩不下去了。 如果說 「多簽橋」 主導的時代是跨鏈橋的 1.0 時代,那麼 1.0 時代正在加速離去,跨鏈橋 2.0 時代的主角必然屬於更加安全的跨鏈橋。
那我們應該用什麼樣的跨鏈橋呢,跨鏈橋如何改進,才能在保證效能可接受的情況下,消除中心化風險呢?我們觀察到,業內主要有三個方向,分別是 ZKbridge、Optimistic Brige 和 TEE Bridge。
ZK Bridge
由於 ZK 敘事的升溫,近期將 ZK 技術用於跨鏈的探索也倍受關注,已經有不少該方向的專案獲得融資。
ZKBridge 是一種將 ZK 技術用於輕客戶端擴容的跨鏈橋方案。我們知道,輕客戶端跨鏈橋有著極高的安全性,其本質是由目標鏈的共識層直接驗證來自源鏈的訊息,不引入任何第三方的信任假設,但輕客戶端需要不斷維護源鏈的區塊頭序列,此間需要對每個新區塊頭執行驗證,這帶來兩大難點:
巨大的鏈上開銷,可能會使得橋不具備經濟可行性
如果要做一個通用橋,每新增支援一條鏈,都需要至少開發兩個新的輕客戶端,相容新鏈的成本較高,很難做成真正的通用橋。
引入 ZK 技術之後:
可以在鏈下驗證新區塊頭,並將新區塊頭及其有效性證明(Zk Proof)一併提交到鏈上,鏈上可以直接驗證 ZK Proof,即可等效於驗證新區塊頭,但開銷可以大幅縮減。更進一步,還可以把用區塊頭對交易執行 SPV 驗證的過程也放到鏈上;
ZK 技術簡化了輕客戶端的開發,鏈上輕客戶端僅需驗證 ZK proof,比驗證新區塊頭的合約邏輯要簡單許多。
但 ZKbridge 的效能極限依舊弱於多簽橋,以 EVM 為例,驗證一個 ZK proof 的成本最低也在 500k gas,和多簽橋只需驗證一個簽名的 21k Gas 相比,高了了將近 25 倍,這最終還是會轉化為前端使用者高昂的跨鏈費用。儘管通過批處理,可以讓多筆交易分攤一次處理的成本,但這又會帶給使用者較長的等待時間。
此外,Zkbridge 作為輕客戶端橋,需要接入鏈支援智慧合約,BTC 類的非智慧合約鏈是無法接入的。
Optimistic Bridge
Optimistic 橋是對多簽橋信任根的改良。Optimistic 橋在多簽橋的基礎上,引入了挑戰視窗期的概念和一個名為 「挑戰者」 的角色。
我們知道,一個訊息在多簽橋中的傳遞過程是這樣的
① 發起:使用者在源鏈通過與 Source dApp 互動,發起跨鏈訊息傳遞
② 鏈下簽名:訊息被傳遞給 Bridge Nodes,完成共識簽名之後傳遞到目標鏈
③ 鏈上驗證簽名:目標鏈驗證該訊息是否由正確的 Bridge Nodes 的簽名
④ 執行:驗證後的訊息被提交給 Taregt dApp 進行執行
在 Optimistic Bridge 中,訊息在完成第 ③ 步之後,不會立刻進入第 ④ 步,而是會進入一個計時環節,計時結束後,如果沒有挑戰者對該訊息提出質疑,該訊息才會進入執行環節,被 Taregt dApp 執行。
如果挑戰者對訊息進行質疑,那麼該訊息將被標記為 「不可信」,「不可信」 訊息將不會進入執行環節,挑戰者將會把它提交會源鏈,由源鏈的仲裁合約進行仲裁,如果訊息在源鏈真實存在則證明挑戰者誤報,如果訊息在源鏈並不存在則證明 Bridge Nodes 欺詐,簽名了虛假的訊息。仲裁結束後,會給誠實的一方獎勵,而懲罰不誠實的一方。
通過該機制,Optimistic bridge 將多簽橋的信任根從 m-of-n,提升到了 1-of-n,只需要有一個誠實的挑戰者,橋就是可靠的。
Optimistic Bridge 的缺點在於增加了使用者的等待時間,該時間一般會在 30min 左右,使用者必須等待挑戰視窗期的結束,才能完成完成跨鏈操作,這在很多場景下都是行不通的,使用者並沒有這個耐心。實踐中, Optimistic Bridge 往往採用雙模型機制,小額轉帳或是非敏感操作會直接跳過挑戰視窗期,只有大額轉帳或者敏感操作,才會有挑戰視窗期,具體閾值可以由應用程式自定義,或是由使用者在前端自己選擇。
Optmistic Bridge 的機制無疑是對多簽橋的巨大改良,既保障了安全,也兼顧了效能。但可惜的是安全和效能並沒有真正意義上兼得,只是把安全優先還是效能優先的選擇權交給使用者,不能算是完美的解決方案。
此外,由於必須通過合約實現鏈上仲裁,該方案依舊不能支援 BTC 類的非智慧合約鏈。
TEE Bridge
TEE Bridge 是指在多簽橋的基礎上,要求所有節點必須使用 TEE 裝置接入網路。TEE 全稱為可信執行環境 (Trusted Execute Environment),它是給定裝置上執行的與主作業系統隔離的計算環境,就像一塊飛地 (Enclave),這種隔離是通過硬體強制實現的。
在 TEE Bridge 中,節點使用 TEE 裝置保管私鑰碎片,簽名程式也完全在 TEE 中執行,外部駭客將很難竊取。與 ZKbridge、Optimistic Bridge 不同的是,TEE Bridge 是通過節點硬體來提升跨鏈橋的安全性,而非改變鏈上的驗證機制。
TEE Bridge 的優勢在於
- 在提升安全性的同時,完全沒有在多簽橋的基礎上犧牲效能
- 可以相容 BTC 類的非智慧合約鏈
但 TEE Bridge 依然存在內部串謀的風險。2/3 多數的節點如果串通,依然可以對橋發起攻擊。
BOOL :ZK-TEE Bridge
接下來,我要介紹一種更加巧妙的的跨鏈橋正規化:ZK-TEE Bridge,它由跨鏈橋專案 Bool Network 首創。Bool Network 在 TEE Bridge 的基礎上,結合 ZK 技術,實現了節點的完全匿名,從而無法串謀,保障了橋的超高安全性。
Bool Network 本身是一個眾多 TEE 節點構成的非許可網路,任何主體都可以通過 Bool Network 申請建立一個或多個 DHC(Dynamic Hidden Committee)。如果某個主體需要建立一座支援 10 條鏈的跨鏈橋,那就申請 10 個對應的 DHC 就可以了,每個 DHC 都管理著一組 MPC 私鑰分片,他們將會負責驗證和簽名跨鏈訊息。
一個 DHC 一般會包含 10 到 20 個 TEE 節點成員,具體由 DHC 的建立者來設定,簽名閾值一般是 2/3,但 DHC 的建立者也可以設定更高的閾值。
Bool Network 會隨機的為所有 DHC 分配成員,並且會定期洗牌,重新分配。藉助 ZK 技術,Bool Network 可以實現分配成員的過程是完全隨機的,且分配完成之後,每個 TEE 節點都不知道自己被分配到了哪個 DHC,也不知道自己和哪些節點分到了一個 DHC,更不知道別的節點被分配到了哪個 DHC。這種感覺,就像參加假面舞會一樣,誰也不知道誰是誰!
這是通過 Bool Network 的 Ring VRF 演算法實現的。具體來說,Ring VRF 在 DHC 分配節點成員的時候,會賦予每個 TEE 節點一個臨時身份,該臨時身份表現為一個 ZK proof,可以證明某個節點屬於當前 DHC,但不暴露節點的具體資訊。DHC 成員之間將通過臨時身份相互識別,並通過加密通訊完成 MPC 簽名的工作。在當前 Epoch 結束之後,Ring VRF 會重新洗牌所有 DHC 的成員,此時所有臨時身份都會失效,Ring VRF 將為每個節點分配新的臨時身份。
總之,Bool Network 通過 ZK 技術與 TEE 技術的巧妙結合,實現了節點之間的完全匿名,杜絕了串謀的可能,在 TEE Bridge 的基礎上進一步提升了安全性。
小結
ZKbridge、Optimistic Bridge、TEE Bridge 都是很不錯的方案,它們都在試圖構建更加 Trustless 的跨鏈橋,消除中心化風險,提高跨鏈橋的安全性。但 ZKBridge、Optimistic 依舊存在效能上的犧牲和可擴充套件性上的短板,TEE-Bridge 則存在串謀攻擊的可能。
BOOL Network 提出的 ZK TEE-Bridge 則是一個從各方面都無可挑剔的方案,它的優勢包括:
- 不犧牲的效能,跨鏈訊息傳遞的速度和費用保持和 「多簽橋」 同一水平
- 支援非智慧合約鏈,且適配新鏈的工程量較低
- 杜絕了 TEE 橋中可能存在的串謀風險,實現了不亞於輕客戶端橋的超高安全性
- 本質上是一個去中心化的、Trustless 的簽名機,將不限於應用在跨鏈領域,而是可以擴充套件到預言機、分散式私鑰管理等領域
📍相關報導📍
MultiChain跨鏈橋拖累公鏈,Fantom該如何走下去?