LK Venture 研報:ZK Bridge 能否成就“跨鏈大戰終局”?

LK Venture
2023-04-19 17:19:12
收藏
ZK Bridge 的出現,將有效解決目前跨鏈方案的多種缺陷,讓萬鏈互聯成為可能。

作者:LK Venture

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

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

在北歐神話中,海姆達爾(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 有望終結跨鏈大戰?

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

在 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 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 主要由區塊頭中繼網絡 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 技術的成熟,能夠打破跨鏈當前面臨的安全-效率兩難困境,讓萬鏈互聯的願景得以實現。

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
banner
ChainCatcher 與創新者共建Web3世界