LK Venture研發:ZK Bridge能否成就「跨鏈大戰終局」?

23-04-19 14:50
閱讀本文需 33 分鐘
总结 AI 總結
看總結 收起
原文標題《 LK Venture 研報:ZK Bridge 能否成就「跨連鎖大戰終局」? 》
原文來源:LK Venture


如今,以太坊佔據著區塊鏈產業基礎設施的半壁江山,但其主網的統治地位正在被許多後來者挑戰。產業普遍的共識之一是,未來或將是多鏈共存的格局,跨鏈甚至全鏈則是多鏈生態中最關鍵的一環。


然而,如今連接各區塊鏈網路的跨鏈橋安全問題頻發,跨鏈生態似乎岌岌可危。 ZK Bridge(使用 ZK 零知識證明技術的跨鏈橋)的出現,將有效解決目前跨鏈方案的多種缺陷,讓萬鏈互聯成為可能。


Heimdallr 守護彩虹橋配圖

圖片來源: Klugh, Maria Tales from the Far North (Chicago, IL: A. Flanagan Company, 1909)


在北歐神話中,海姆達爾(Heimdallr)是一個神秘且重要的神祇,負責守衛連接神域(Asgard)與人間世界(Midgard)的彩虹橋——比弗洛斯特(Bifrst)。如果我們把連接不同神域和人間世界的彩虹橋比喻為跨鏈橋,那麼,零知識證明技術能否肩負起守衛跨鏈安全的重任,成就彩虹橋上萬夫莫開的「海姆達爾」神話?


本文為LK venture 投研團隊對ZK Bridge 賽道進行的全方位解析,力求展望零知識證明技術在解決跨鏈安全性和高性能瓶頸問題的發展空間。


TL; DR


- 什麼是ZK Bridge? ZK Bridge 是使用零知識證明技術的跨鏈橋,具有零信任、無許可、可拓展、高效率的特性。


- 為什麼需要 ZK Bridge?目前跨鏈橋的中心化問題和信任假設導致安全性不足,漏洞頻出造成嚴重損失;而重視安全性的跨鏈橋,則效率低下,成本較高。 ZK Bridge 可以同時保有安全性、去中心化和高效率。


- 如何實現 ZK Bridge?基於 ZK-SNARK 的輕節點方案


- 相關專案介紹:Succinct Labs, zkIBC by Electron Labs, zkBridge by BerkleyRDI。


什麼是跨鏈橋?


跨鏈橋(Cross-chain Bridge)是一個允許在不同區塊鏈網路之間實現價值和資訊傳輸的技術解決方案。透過利用一系列加密和協議技術,跨鏈橋實現了資產和資料的安全、可驗證和無需信任的轉移,進而促進了區塊鏈網路之間的互通性。


一般來說,我們會把跨鏈橋分成直接的資產跨鏈橋和更具備通用性的訊息跨鏈橋。


為什麼跨鏈橋會變成眾矢之的?


跨鏈橋作為一個中心化的巨額資金池,天然會吸引駭客-攻擊成功的收益是巨大的。此外,由於不同鏈之間的安全假設可能存在差異,資產跨鏈的程式碼更為複雜,程式碼審計也無法找出所有漏洞,也就為有著巨大激勵驅動的駭客以可乘之機。


具體的攻擊方案可以分為以下幾種:


1. 中心化攻擊:部分跨鏈橋依賴中心化的中繼器或驗證器來傳輸和驗證交易。這種設計可能會導致單點故障,攻擊者可以透過攻擊這些中心化元件來破壞整個跨鏈系統。


2. 經濟誘因攻擊:跨鏈橋通常需要設定適當的經濟誘因來確保驗證器和中繼器的誠實行為。然而,設計合適的激勵機制並不容易,激勵不足或激勵設計失衡可能會導致惡意行為或共謀攻擊。


3. 雙花攻擊:在某些情況下,攻擊者可能會嘗試在源鍊和目標鏈上同時花費同一筆資產,從而導致資產的雙花。跨鏈橋需要設計有效的防範措施來防止雙花攻擊。


4. 重播攻擊:攻擊者可能會嘗試在目標鏈上重播已經在源鏈上發生的交易,從而試圖獲取不正當利益。跨鏈橋需要實現一定的交易驗證和防重播機制來防止此類攻擊。


5. 鏈下協調攻擊:跨鏈橋的一些實現依賴於鏈下協調,如狀態通道或側鏈。攻擊者可能會透過對鏈下協調環節進行幹擾或攻擊,來破壞跨鏈橋的正常運作。


6. 鏈間共識攻擊:由於跨鏈橋涉及多個區塊鏈網絡,每個網路可能採用不同的共識演算法。攻擊者可能會利用鏈間共識的弱點來發動攻擊,例如,在一個鏈上實施 51% 攻擊以影響跨鏈橋的正確性。


目前主流跨鏈橋方案一覽



跨鏈最核心的問題就是如何驗證另一鏈的訊息是可靠的。針對此問題產生了不同解決方案,包含不同程度的信任假設。


跨鏈橋的信任圖譜


目前主流跨鏈解決方案技術參數比較


輕節點加中繼,其實是最早出現的跨鏈解決方案,代表專案要數BTC Relay,目的在於用比特幣進行支付去使用以太坊的服務。然而,由於要進行大量的鏈上運算與存儲,運行鏈上輕客戶端的代價昂貴。而且由於不同鏈間共識演算法和簽章演算法等的異構,導致跨鏈方案不可擴展,需要為每對特定的兩條鏈專門實作 light client & relay。


迄今為止,只有Cosmos 應用鏈上的IBC 實現了大規模的鏈上輕客戶端,其成功之道在於Cosmos 的應用鏈的標準化程度極高,每個應用鏈都需要運行Tendermint 共識,並遵守IBC 標準。在一個擁有不同共識機制、簽章方案和虛擬機器的多鏈世界中,鏈上輕客戶端驗證是難以實現的。


目前主流跨鏈專案為了避免高昂的鏈上輕節點成本,將驗證過程移至鏈下,同時也帶來不同程度的信任假設和潛在詐欺風險,LK Venture 投研團隊根據信任程度從高到低,對部分重點方案進行介紹。


跨鏈解決方案1:無質押多簽


典型項目有Multichain、Wormhole、Ronin Bridge。這些都要求多重簽章 MPC 實現,需要實體驗證交易,並驗證 (即簽章) 其有效性。通過閾值後(往往是 2/3),交易就被認為是已驗證的。


•在這個方案中,各實體需要運行全節點來進行驗證。當然,無抵押導致說謊沒有實際成本,但不誠實導致的聲譽受損可能會導致更大的潛在成本,所以驗證節點往往與固定的鏈下身份關聯,以此來增加節點的作惡成本。


•Multichain 的訊息驗證由SMPC 網路保障,SMPC 網路由24 個節點組成,超過2/3 節點簽署的訊息被認為透過驗證,SMPC 節點成員不需要質押,且相對固定,AnyCall 的安全建立在SMPC 節點的信任假設上。


•Wormhole 的信任層採用PoA 機制構建,由一組受信任的Guardians(守護者))負責鏈間訊息的驗證,Guardians 是特定的具有資本背書和聲譽背書的主體。目前,Wormhole 中的 Guardians 有 19 個,其中包括 FTX、Everstake 和 Chorus One 等知名大公司。


跨鏈解決方案2:預言機與中繼


典型項目有LayerZero,透過將訊息及訊息證明傳遞和驗證Relayer 傳遞交易兩者做分割,確保跨鏈過程的安全。


•LayerZero 的核心設計思想在於Oracle(預言機)和Relayer(中繼者)的分離,在LayerZero 中,Relayer 負責傳遞訊息及訊息證明,Oracle 負責根據訊息所在區塊,按需從源鏈獲取區塊頭,然後目標鏈上的終端根據Oracle 獲取的區塊頭驗證Relayer 傳遞的交易。只要二者不串通,就可以確保跨鏈的安全。


•需要注意,儘管 Layerzero 將其技術方案稱為超輕節點(Ultra Light Node),但方案與 Light Client 有本質上的不同。 LayerZero 透過Oracle 提供的區塊頭來驗證Relayer 提供的交易證明,驗證過程在目標鏈的終端發生,屬於原生驗證,但是對區塊頭本身的驗證卻是由作為外部驗證人的第三方Oracle 網路來完成的,驗證過程發生在鏈下。


跨鏈解決方案3:有質押多簽


在MPC 的基礎上增加了一層權益證明,典型項目有Celer, Axelar, deBridge, Hyperlane, Thorchain。


•如果作惡,驗證者的質押將被大幅削減,在經濟上實際增加了驗證者的欺騙成本。


•PoS 橋要面對的一個問題是驗證者的不均衡性,為了緩解該問題,Axelar 採用了二次方投票的方案,簽名權重將與驗證人質押的$AXS 數量的平方根成正比;Hyperlane 則採用「可驗證詐欺證明」方案,驗證人聯合作惡將立即被發現並執行Slash;pNetwork 和Bool Network 則直接要求所有節點質押相同金額的Token。


跨鏈解決方案4:樂觀驗證(optimistic validation)


運用了賽局理論知識,透過用戶間的博弈場景提高使用者作惡風險,典型專案有Nomad, Synapse。


•樂觀驗證的基本邏輯是:在外部驗證的基礎上,設定一批挑戰者和一個挑戰視窗期,對不正確的驗證進行挑戰,驗證者需要抵押,當其行為不當時,挑戰者將提出挑戰,並提供欺詐證明。若挑戰成功,驗證者的抵押金將成為挑戰者的賞金。


•Nomad 專案設定的挑戰窗口期是 30 分鐘。對於樂觀驗證方案,只需要至少有一個挑戰者是誠實的,而且有經濟誘因去進行挑戰。這比起外部驗證而言,是更小的信任假設,在這樣的信任假設下,攻擊者無論付出多大的經濟代價,都無法保證攻擊一定成功。


原本跨鏈方案到此就結束了,但ZKP 零知識證明技術的發展,為跨鏈橋的安全和效率兩難困境帶來了新的解決方案。


什麼是 ZK Bridge?


ZK Bridge 是使用零知識證明技術的跨鏈橋,不引入信任假設,適合多種同構/異構鏈,鏈下產生零知識證明,鏈上只負責驗證,大幅降低鏈上運算和儲存成本,具有零信任、無授權、可拓展、高效率的特性。


我們先對輕客戶端的原理做一個基本概述。輕客戶端,也稱為輕節點,在鏈上往往以輕智能合約的形式呈現。輕客戶端跨鏈的基本原理是在目標鏈部署來源鏈的輕節點合約,對來源鏈來的訊息進行驗證。如果要實現雙向跨鏈,就需要在兩條鏈上互相部署對方鏈的輕節點合約。

比起全節點,輕節點是輕量化的節點,它不儲存完整區塊的序列,而僅儲存區塊頭的序列。


儘管區塊頭體積很小,但它包含了對區塊中完整資料的密碼學概括。當輕節點需要知道某個交易是否包含在鏈中時,可以透過該交易所在區塊的區塊頭及該交易的 Merkle 路徑,對該交易執行 SPV 驗證。


下圖中,綠色方塊的集合,就是藍色方塊的默克爾路徑。



為了維護目標鏈上部署的源鏈輕節點,需要由鏈下代理將源鏈的區塊頭不斷同步到目標鏈。輕節點合約對負責同步區塊頭的鏈下代理並沒有信任假設。因為輕節點合約會對其同步的區塊頭執行驗證,鏈下代理無法欺騙輕節點。


輕節點驗證區塊頭的邏輯,與全節點、礦工節點別無二致,分為有效性驗證和最終性驗證兩部分。


LK Venture 投資團隊認為,對於PoW 鏈來說,有效性驗證主要是指驗證區塊的工作量證明,最終性驗證則是看該區塊頭後面有沒有更多的有效區塊被追加(在BTC 鏈中,一般認為6 個區塊的追加可以確認一個區塊的最終性,在以太坊中,則一般認為25 個區塊的追加可以確認一個區塊的最終性)。


對於PoS 鏈而言,有效性驗證是指驗證該區塊是否由被隨機選中的出塊人生成,最終性驗證則是看該區塊是否被2/3 以上投票權重的驗證人簽署。但 PoS 的輕節點並不需要驗證有效性,只需要驗證最終性。因為 PoS 鏈中,最終的區塊一定有效,PoW 鏈則未必。

ZK Bridge 的實現,與輕節點加中繼的方案流程相同,只是稍微改變。 ZK Bridge 中,依然需要鏈下的中繼者監聽源鏈,將源鏈的區塊資訊轉送到目標鏈。但是轉發的不僅是區塊頭,還有使用 ZK-SNARK 演算法產生的有效性證明。而在目標鏈上,輕節點也不是透過直接根據區塊頭進行計算去驗證交易的有效性,而是根據有效性證明在鏈上驗證,減輕計算負擔。


ZK Bridge 的實作技術路徑


為什麼 ZK Bridge 有望終結跨鏈大戰?


在目前以完成部署投入使用的跨鏈橋中,有多個項目都曾經遭受過嚴重的安全攻擊,被盜金額非常巨大,在當時造成大規模的恐慌,時至今日大家仍對各大跨鏈橋的安全性抱持懷疑態度。人們愈發需要一個安全、零信任、去中心化的跨鏈橋,為未來的全鏈生態打下堅實基礎。


2022 年度部分跨鏈協議損失資金及追回資金統計

圖片來源: DeFiyield (https://defiyield.info/)


在LK Venture 投研團隊看來,ZK Bridge 為跨鏈橋的安全和效率難以兼顧的困境帶來了新的解決方案,即透過在鏈下生成對區塊頭的零知識證明,源鏈區塊頭的正確性由ZK-SNARK 演算法產生的證明去驗證,因此沒有增加任何外部的信任假設,唯一信任的是數學。


而且,零知識證明在鏈上的驗證過程較原有的輕節點驗證方案,將顯著降低計算和儲存成本。


ZK Bridge 部分專案介紹


Succinct by Succinct Labs


Gnosis Chain Omnibridge 是Ethereum 與Gnosis 之間的跨鏈橋,使用的是MPC 的主流方案。 Gnosis 團隊成員希望能夠探索不依賴中心化實體的跨鏈設計,Succinct Labs 和 Gnosis 團隊就此展開合作,Gnosis DAO 提供 grant 用於 R&D。


以太坊的驗證過程主要包括以下內容的驗證:區塊頭的Merkle 證明;同步委員會中驗證者的Merkle 證明;正確輪換同步委員會的BLS簽名等。這裡的核心思想是使用 zk-SNARK(Groth16)產生大小恆定的有效性證明,可以在 Gnosis 上進行高效的鏈上驗證。


Succinct 跨鏈解決方案圖解

圖片來源: Succinct 官網(https://www.succinct.xyz /)


Succinct Labs 的跨鏈方案能夠在任兩條Ethereum 相容的PoS 鏈間傳遞任意訊息。目前實現了 Ethereum 與 Gnosis 之間的跨鏈 Demo,Ethereum 上部署了 bridge deposit 合約,允許用戶儲蓄。 bridge deposit 會傳遞訊息給 arbitrary message bridge (AMB),AMB 在合約中儲存該訊息。 Operator 負責取得同步委員會的證明,為有效的 BLS 簽章驗證產生 SNARK 證明,並向 Gnosis 鏈輕客戶端提交更新。


在Gnosis Chain 上,存款交易所在的以太坊區塊被確認(通常2 epochs,約12 分鐘),並且輕客戶端已經更新到高度大於或等於該區塊的區塊後,Relayer 會自動向Gnosis AMB 提交一個executeMessage 交易。 executeMessage 交易包含針對輕客戶端已更新的插槽的 Merkle 儲存證明。在 executeMessage 期間,AMB 使用輕客戶端取得所請求插槽的以太坊狀態根,並驗證 Merkle 儲存證明,以顯示訊息已在 AMB 的另一側上 send。然後,AMB 使用訊息中指定的 calldata 呼叫接收智能合約。


出於技術堆疊成熟程度和鏈上驗證開銷的考慮,團隊選擇使用當前最成熟的Circom 語言和鏈上驗證最便宜的Groth16 證明系統來產生ZK-SNARKs,而沒有使用更新更快的PLONK + KZG or FRI。


值得注意的是,該項目雖然上了測試網,但是可用性較差。經作者測試,Goerli 測試網的 Succincts token 經過 bridge 數量減少,但是 Gnosis 網路未收到 token,同時網站上的 dashboard 沒有 bridge 記錄顯示。而且要注意現在的跨鏈是單向的。只能從 Goerli 到 Gnosis,而不能反過來。


zkBridge by BerkleyRDI


zkBridge 透過ZK-SNARKs 證明遠端區塊鏈的區塊頭的正確性,因此不會引入任何外部信任假設。事實上,只要連接的區塊鏈和基礎輕客戶端協定是安全的,且區塊頭中繼網路中存在至少一個誠實的節點,zkBridge 就是安全的。當然,值得注意的是,雖然至少一個誠實節點就能保證安全性,但是不誠實節點過多會顯著降低跨鏈橋的可用性,light client 會頻繁拒絕傳來的 proof,而無法獲取真實資訊。


zkBridge 跨鏈解決方案圖解

圖片來源: https://rdi.berkeley.edu/zkp/zkBridge/zkBridge.html


具體來說,zkBridge 主要由區塊頭中繼網路Block Header Relay Network 和更新者合約Updater Contract 組成。在區塊頭中繼網路中,中繼從發送者區塊鏈C1 中檢索區塊頭,產生區塊頭有效性證明,並將區塊頭及證明發送到設定在接收者區塊鏈C2 上的更新器合約中。對於更新器合約,一旦相關證明通過驗證,C1 的相應區塊頭將被儲存。


此外,更新器合約也維護一個輕客戶端狀態。一旦新增新的區塊頭,合約就像 C1 上的其他輕客戶端一樣更新輕客戶端狀態,並更新 C1 的當前主鏈。更新器合約也向應用程式公開一個功能,透過該功能,C2 上的應用程式可以獲得 C1 上給定高度的區塊頭。在獲得區塊頭資訊後,應用程式可以進行更多的驗證(例如特定交易)並建立自己的應用程式。


為了讓底層 zk-SNARK 系統與鏈上使用相容,需要快速證明產生和低鏈上證明驗證成本。 zkBridge 的主要創新是:


•deVirgo:採用分散式的方法來產生 ZK-SNARK 證明,且無需信任假設。 deVirgo 方法透過將計算工作進行拆分,分配給更多的設備,大幅提升了在鏈下產生 ZK-SNARK 證明的時間。


•遞歸證明:為了降低鏈上成本,zkBridge 使用遞歸證明,透過兩次遞歸,將 ZK-SNARK 證明的體積壓縮到 131 位元組左右。第一步產生 deVirgo 證明,第二步使用 Groth16 證明生成器進行壓縮。 Groth16 驗證器產生執行 deVirgo 電路的完整性證明。


•批次:zkBridge 實作了一個區塊頭的更新合約,它以區塊高度為輸入,傳回對應區塊頭。但 zkBridge 並不會在每個新區塊產生時,調用更新合約,證明者可以先收集 N 個區塊頭,產生單一的證明。 N 值可以設定,N 越大,使用者等待時間越長但係統運作成本越低。


目前zkBridge 已經以Solidity 在以太坊上實現了一個Cosmos Client 的實例,據測試,可以在2 分鐘內生成一個Cosmos Zone 區塊頭的ZK -SNARK 證明,然後在以太坊端,驗證費用是小時230k gas 的常數,對比來看,如果不用ZK-SNARK 證明,這個費用將是64 Million Gas。


需要注意,中繼網路運算將遭受與 MPC 相同的通訊複雜性,這將嚴重影響證明時間。 GKR 多層求和檢查協定的通訊複雜度為 O(N log2(簽名數量)),其中 N 台機器在中繼網路中。即使對於 32 個簽署的情況,中繼網路中有 32 台機器,也可能導致網路中大量順序通信,損害分散式運算帶來的效能。


zkIBC by Electron Labs


具體而言,zkIBC希望模擬Cosmos 主權鏈使用的無信任通訊協定-Inter Blockchain Communication Protocol (IBC),並將使用拓展到Ethereum。 zkIBC 使用 ZK-SNARKs 進行輕客戶端狀態驗證,快速證明 Ethereum 上交易,跟上 Tendermint 共識鏈的出塊時間。


主要的困難在於在Cosmos SDK 中使用的Tendermint 輕客戶端運行在Ed25519 曲線上,而以太坊區塊鏈不支援該曲線,在以太坊的BN254 曲線上驗證Ed25519 簽名昂貴且低效率。


專案路線圖分為五個階段:研究-ed25519 簽章證明的實作-測試網-遞歸 Snark 實現減少冗餘-主網。 2023 年 2 月 2 日,Positron testnet 正式向公眾上線,支持 Near 與 Ethereum 之間的跨鏈。目前的測試網需要等待約20-30 分鐘才能實現最終性,其中包括Goerli 網路最終性(15-20 分鐘)、ZK-Proof 生成(5-8 分鐘)、Near 鏈上鑄造(10-20 秒) 。


該專案宣稱完全開源,經過測試,跨鏈過程使用流暢,UI/UX 設計良好,且支援雙向跨鏈。


思考


區塊鏈技術發展到某一階段,通常會演化成為關於取捨的哲學。在公鏈中,有著安全-可拓展-去中心化的三難困境;而在跨鏈中,可能也存在著安全-效率的兩難困境:追求效率,則會引入第三方信任假設,導致安全性受損;追求安全,使用完全輕節點與中繼的方案,則會招致高昂的鏈上嚴重費用。


但實際上,從制度設計來看,即使是信任程度最高的無質押MPC 方案,其實也在絕大多數情況下保證了跨鏈橋的安全。之所以多個跨鏈橋被盜,反而是因為追求透明將程式碼開源,複雜程式碼隱藏的漏洞讓駭客有了可乘之機。


LK Venture 認為,隨著技術不斷進步,ZK 方案可用性逐漸增強,ZK Rollup 預計在2023 年下半年將投入大規模使用,ZK Bridge 也方興未艾。希望 ZK Bridge 技術的成熟,能夠打破跨鏈當前面臨的安全-效率兩難困境,讓萬鏈互聯的願景得以實現。




|參考資料:
1. zkBridge: Trustless Cross-chain Bridges Made Practical(https://rdi .berkeley.edu/zkp/zkBridge/zkBridge.html)
2. Bridging the Multichain Universe with Zero Knowledge Proofs(https://medium.com/@ingonyama/bridging-the-multichain-universe- with-zero-knowledge-proofs-6157464fbc86)
3. Exploring ZK Bridges(https://zkvalidator.com/exploring-zk-bridges/)

4. Overall Comaprison Between Multiple Blockchains(https://dune.com/springzhang/cross-blockchain-comparison-overview)


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
本平台現已全面集成Farcaster協議, 如果您已有Farcaster帳戶, 可以登錄 後發表評論
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交