橋是一種通信協議,用于促進區塊鏈之間的信息傳輸(消息、資金或其他數據)。建造橋雖然有用,但卻是一件有風險的事情。區塊鏈歷史上最代價慘重的一些黑客攻擊都僅針對橋。
據估計,截至2022年,過去一年損失的資金中,69%是由于橋攻擊造成的,損失達數十億美元。
在本文中,我們關注使用零知識證明(ZKP)的橋結構的具體實現。雖然有些黑客攻擊不能僅僅因使用ZKP而做到預防,但ZKP的可靠性將區塊鏈共識協議的安全性擴展到了橋。
橋與零知識證明
近年來,我們看到零知識證明(ZKP)在應用方面取得了巨大的進展,其穩定性為提供安全和去中心化的應用程序創造了條件。因此,ZKP也被用于制定橋建設是有意義的。下面,我們回顧和比較這一領域的三個有趣的發展:
使用 zk-SNARK( Succinct Labs)對共識進行簡潔驗證:使用單個zk-SNARK實現以太坊PoS(權益證明)輕客戶端。
通過zk-SNARKS (Electron Labs)將IBC (區塊鏈間通信)引入以太坊:Cosmos SDK(Tendermint)上的工作原型到帶有單個 zk-SNARK 的以太坊輕客戶端。
zkbridge:無需信任的跨鏈橋變得實用( ( Berkley RDI ):使用2步遞歸zk-SNARK實現Cosmos SDK到以太坊輕客戶端,以太坊輕客戶端到兼容EVM的區塊鏈(本文未涉及)。
這些項目利用zk-SNARK的特性來重新定義橋應該如何設計。以上所有假設都存在一個輕客戶端協議,該協議確保節點可以同步最終區塊鏈狀態的區塊頭。將ZKP rollup背后的思想應用于橋的兩個主要挑戰是:首先,與rollup相比,橋中涉及的電路大小要大幾個數量級;其次,如何減少鏈上的存儲和計算開銷。
共識證明的簡明驗證(Succinct Labs)
Succinct Labs為以太坊2.0權益共識證明構建了一個輕客戶端,在Gnosis和以太坊之間構建了信任最小化的橋,它使用zk-SNARK(非零知識)的簡潔屬性來高效地驗證鏈上共識有效性證明。
該設置由以太坊中每 27 小時隨機選擇的 512 名驗證者組成的同步委員會組成。這些驗證者被要求在其運行周期內對每個區塊頭進行簽名,如果超過2/3的驗證者對每個區塊頭進行簽名,則以太坊的狀態被認為是有效狀態。驗證過程主要包括:
去中心化隱私服務協議 Automata Network推出跨鏈橋Carrier:金色財經報道,去中心化隱私服務協議 Automata Network推出跨鏈橋Carrier,目前已部署上線。目前Carrier支持 12 條鏈,包括 Solana、Ethereum、BNB Chain、Polygon、Arbitrum、Avalanche、Oasis (Emerald)、Fantom、Acala、Klaytn、Celo 和 Moonbeam。
Carrier 由 Wormhole 提供底層支持,由 Automata Network 團隊開發,其零跟蹤隱私政策能有效防止所支持網絡上的數據和元數據的收集與跟蹤。[2023/3/10 12:54:36]
Merkle證明的區塊頭
Merkle證明的同步委員會中的驗證者
用于正確輪換同步委員會的 BLS 簽名
上述驗證需要每27小時在鏈上存儲512個BLS公鑰,并且要對每個區塊頭驗證簽名都進行驗證,這將導致512個橢圓曲線添加(在曲線BLS12-381中)和鏈上的配對檢查,該操作的成本是高昂的。這里的核心思想是使用zk-SNARK (Groth16)來生成有效性證明(大小恒定),并且可以在Gnosis上進行有效的鏈上驗證。
使用 zk-SNARKS的簡潔性來擺脫昂貴的鏈下驗證
以太坊輕客戶端在Gnosis鏈上使用Solidity智能合約,而鏈下計算包括構建 circom 電路以驗證驗證者及其 BLS 簽名,然后計算 zk-SNARK 證明。在此之后,區塊頭和證明被提交給智能合約,然后智能合約在Gnosis鏈上執行驗證。SNARK計算部分的電路大小和驗證時間總結如下:
SNARK 部分的電路大小
優化包括使用驗證者的512個公鑰(PK)輸入作為使用ZK友好的Poseidon hash的承諾。Poseidon hash解決了存儲開銷問題并減小了電路大小。減小電路尺寸的過程如下;受信任的委員會在27小時后更新,之前的委員會使用SSZ (Simple Serialization),使用SHA256序列對新的委員會進行數字簽名。而不是直接在創建大型電路的SNARK中使用它(每個位操作需要一個門,在SHA中有大量的位操作),對當前公鑰使用Poseidon hash的承諾。
跨鏈橋Wormhole新增支持基于NEAR的EVM擴容網絡Aurora:7月21日消息,據官方公告,跨鏈橋Wormhole宣布增加對基于NEAR的EVM擴容網絡Aurora的支持。橋接到Aurora的用戶可以通過基于Wormhole的多鏈AMM Swim Protocol訪問USDC和USDT的流動性市場。[2022/7/21 2:27:33]
總結:它所使用的這種橋接方法非常特定于應用程序(依賴于共識協議),它的安全性來自于zk-SNARK的穩定性。此外,通過優化,它不僅實現了較低的存儲開銷,降低了電路復雜度,完成了簡潔驗證,同時也具有通用性。
將IBC引入以太坊(Electron Labs)
Electron Labs旨在從Cosmos SDK生態系統(應用特定區塊鏈的框架)中構建一座橋,使用IBC(區塊鏈間通信)來實現框架中所定義的所有主權區塊鏈間的通信。
此設置與前面討論的情況類似,但方向相反,其中輕客戶端(來自Cosmos SDK)需要在以太坊上的智能合約中進行驗證。從實際意義上講,在以太坊上運行來自其他區塊鏈的輕客戶端似乎具有挑戰性。在Cosmos SDK中,Tendermint輕客戶端運行在扭曲的Edwards曲線(Ed25519)上,以太坊鏈本身不支持該曲線。因此,以太坊(BN254)上Ed25519簽名的鏈上驗證變得低效且成本高昂。
在 Cosmos 到以太坊的橋中使用 zk-SNARK
與我們前面的討論類似,Cosmos SDK上的每個區塊頭(每個區塊頭由曲線Ed25519上的約128個EdDSA簽名組成)由一組驗證者簽名組成(驗證一個區塊需要32個高風險簽名)。驗證簽名會生成大型電路,這是一個重要的計算組件。因此,基本問題是如何在以太坊鏈上高效、便宜地驗證來自Cosmos SDK中任何區塊鏈的Ed25519簽名。解決方案是構建一個zk-SNARK,它在鏈下生成簽名有效性的證明,并且只在以太坊鏈上驗證證明本身。
circom庫支持BN128、BLS12-381和Ed448-Goldilocks曲線,因此,為了在素數p=2^(255)-19的Ed25519曲線上執行模運算,可以將字段元素的表示分解為更小的85位整數(85*3=255),以實現高效的模運算。circom生成的電路是Ed25519簽名驗證電路的R1CS表示,它由橢圓曲線點加法/加倍和上面定義的模運算組成。用于簽名驗證的電路使用circom庫構造,每次簽名驗證會產生約 2M 的約束。
FBI參與調查Harmony跨鏈橋黑客攻擊事件:金色財經報道,由Layer1公鏈Harmony開發的以太坊與Harmony鏈間資產跨鏈橋Horizon遭到攻擊后,Harmony在其官方社交媒體賬戶上披露,美國聯邦調查局(FBI)和多家網絡安全公司將參與調查本次事件。Horizon 跨鏈橋允許用戶在以太坊、幣安智能鏈 (BSC) 和 Harmony 區塊鏈之間交換代幣、穩定幣和 NFT 等資產。Harmony 在另一條推文中表示,該漏洞并未影響其比特幣跨鏈橋,并且存儲在分散式保險庫中的資金和資產“目前是安全的”。[2022/6/25 1:30:21]
在見證計算之后,Rapidsnark庫為Ed25519簽名驗證生成Groth16證明。與BLS簽名不同,Ed25519曲線簽名不可聚合,因此不能為聚合簽名生成單個zk-SNARK證明。相反,簽名是批量驗證的,并且可以觀察到,驗證時間與批次中的簽名數量成線性關系。
因此,減少一批次中的簽名數量,確實可以降低證明時間(減少延遲),但隨之也會增加成本(gas費),因為每批生成的證明數量會增加。
總結:這種橋接方法也特定于它們的應用程序,并具備源于zk-SNARK證明的可靠性的安全性。特別是,在不引入任何新的信任假設的情況下,它驗證了以太坊上Tendermint輕客戶端的Ed25519簽名。域外模塊化算法是一種有價值的鏈上驗證計算優化方法。與Succinct Labs方法類似的一個具體技術問題是延遲。Cosmos SDK中的區塊生成速率約為7秒,為了跟上這個速率,證明時間就不得不降低。Electronlabs提出用多臺機器并行計算,以與區塊生成速率相同的速度生成證明,并進行遞歸生成單個zk-Snark證明。
zkbridge(Berkley RDI)
與其他兩個行業主導的ZKP橋結構不同,zkbridge是一個框架,可以在其之上構建多個應用程序。這個想法類似于前面討論的兩種方法,并且需要兩個鏈上的輕客戶端和智能合約來跟蹤摘要,對應于兩端的最新狀態。橋的核心組件是區塊頭中繼網絡、更新合約和應用程序特定合約(發送方:SC1,接收方:SC2)。
StarkNet跨鏈橋StarkGate Alpha上線主網:官方消息,以太坊Layer 2開發商StarkWare宣布,StarkNet Bridge的第一個版本StarkGate Alpha上線主網,用戶現在可以將資產從以太坊主網轉移到StarkNet Alpha。[2022/5/10 3:01:58]
橋組件是灰色陰影區域。
區塊頭中繼網絡由中繼節點網絡組成,這些中繼節點偵聽橋接鏈上的狀態變化,并從區塊中的完整節點檢索區塊頭。橋上中繼節點的主要功能是生成一個ZKP,該ZKP驗證來自一個鏈的區塊頭的正確性,并將其轉發給另一個鏈上的更新合約。更新合約會進行驗證并接受或拒絕來自中繼網絡中的節點的證明。行業主導的方法和zkbridge之間的主要區別是,信任假設基本上簡化為中繼網絡中存在一個誠實節點,并且 zk-SNARK 是可靠的。
這種結構的一個關鍵創新是并行使用了zk-SNARK: Virgo prover(deVirgo),它具有簡潔的驗證/證明大小,不需要可信的設置。其用于驗證N個簽名的電路本質上由相同的子電路的N個副本組成,稱為數據并行電路,每個子電路與其他子電路相互排斥。例如,前面一節中討論的Ed25519簽名驗證就是這種情況。
Virgo prover的核心組件是基于GKR協議的零知識擴展,該協議為分層電路中的每個子電路和多項式承諾方案運行總和校驗參數。deVirgo泛化本質上是在一組中繼節點上運行一個Virgo prover,并通過將證明和多項式承諾聚合到一個主節點來避免證明大小的線性增長。
在 deVirgo 中證明 ed25519 簽名的電路尺寸
對于使用大約 10M 門驗證 100 個簽名的電路,證明大小為210KB(與Virgo prover大小相同)。Zkbridge使用兩步遞歸。在第一步中,生成一個deVirgo證明,然后使用Groth16 prover對其進行壓縮。Groth16 verifier生成deVirgo電路執行的完整證明。遞歸的主要目的是實現簡潔(證明尺寸)和降低驗證gas成本。
跨鏈橋O3 Bridge已支持Fantom和Optimism:1月3日消息,Web3 互操作性協議開發團隊 O3 Labs 宣布,O3 Bridge 現已支持 Fantom 和 Optimism,開放其他公鏈到 Fantom 和 Optimism 的資產轉移。[2022/1/3 8:21:08]
然后,中繼網絡將Groth16證明提交給可以在鏈上驗證它的更新合約。deVirgo證明系統具有后量子抗性,因為它只依賴于抗碰撞哈希函數,主要的計算瓶頸是大型電路中的數論變換(NTT)。有一件事似乎沒有被提及,即中繼網絡的計算將遭受與MPC相同的通信復雜性,這也將影響證明時間。對于中繼網絡中的N臺機器,GKR多層和校驗協議的通信復雜度為O(N log_2(gates per layer))。即使對于32個簽名的情況,在中繼網絡中有32臺機器,這也將導致網絡中的通信輪數比較多,這可能會完全扼殺分布式計算帶來的性能。
使用上述方法解決了前面討論的來自 Cosmos SDK-Ethereum 輕客戶端的 Ed25519 簽名驗證問題。橋由一個中繼網絡組成,它獲取Cosmos區塊頭并生成一個deVirgo證明用于分布式證明生成。接下來,由Electron-labs設計的優化簽名驗證電路的Gnark適配在遞歸的第二步生成Groth16證明。
Ed25519 簽名的證明時間:RV:遞歸驗證者
更新合約在以太坊的Solidity中實現,并跟蹤Cosmos區塊頭和中繼網絡的Groth16證明。驗證成本是恒定的<230K gas,這是由于Groth16證明的恒定大小。此外,有可能批量驗證B個連續區塊頭,并為B個頭生成單個證明。然而,增加批次的大小也增加了驗證時間,但由于鏈上的驗證負擔較小,因此會降低 gas 成本。和以前一樣,硬件加速也可能進一步改進Gnark prover。
總結:zkbridge是在橋上構建應用程序的框架。橋的設計使用中繼網絡來生成ZKP,并且具有最低的信任假設。只要能夠克服中繼網絡中類似MPC的通信復雜性,就可以使用任何可并行化的ZK prover。更具體地說,先不考慮deVirgo中繼網絡的MPC復雜性,NTT是中繼節點的單個Virgo prover組件的瓶頸。
快速比較:
下面我們對本文討論的三種橋梁結構的各種特征進行快速比較。
綜上所述,使用ZKP設計橋,解決了去中心化和安全性問題,但由于電路規模大而產生了計算瓶頸。
計算開銷的問題可以通過硬件加速來改善,特別是使用SNARK,以及提交公共數據的技巧,它們可以有效的減少存儲開銷。由于大部分的橋接工作都是證明數據并行電路,因此將 ZKP 推廣到像 deVirgo 這樣的并行性是有價值的研究方向。
此外,由于多鏈宇宙中的區塊鏈是根據應用程序在各種各樣的領域(字段,曲線)上定義的,字段內外算法的優化在最低級別上是至關重要的構建模塊。通過MPC生成證明的并行性在通信復雜度方面有其自身的瓶頸,這是目前尚未解決的問題。
為什么多鏈宇宙是碎片化的?
區塊鏈生態系統的當前狀態類似于泡沫宇宙(碎片化多鏈宇宙)的異構分布,每個都有自己的共識機制、設計、應用程序和用例規則。截至撰寫本文時,有超過100個第1層(L1)區塊鏈協議,用戶數量不斷增長,隨著區塊鏈用例的增加,這個數字可能還會增長。
區塊鏈三難困境指出,很難同時實現理想區塊鏈的三個基石:
去中心化
可擴展性
安全
根據用例的不同,除了吞吐量和成本之外,三個基石的重要性順序也可能不同。三難困境中的不同權衡可以想象成在保持面積不變的情況下三角形的變形。當兩個角互相靠近時,第三個角會移動得更遠。這些權衡導致了區塊鏈的不同概念,從而使開發人員能夠自由地為合適的應用程序選擇不同的平臺。這同時也導致了碎片化的多鏈宇宙,每個區塊鏈基本上都是獨立運行的,完全“不知道”其他區塊鏈的存在。
多鏈宇宙中的鏈間通信,通常被稱為互操作層,是充當不同區塊鏈之間橋梁的基礎設施。橋使用戶能夠在鏈之間傳遞消息,包括數字資產(加密貨幣)、鏈狀態、合約請求、證明等。簡而言之,跨鏈橋“整理”了碎片化的多鏈世界。因此,很多研究和開發都集中在構建多鏈宇宙中的這個關鍵組件上。
建設橋
橋是一種雙向通信協議,它向另一個鏈C2中的應用程序證明一個鏈C1中的事件的發生,反之亦然。為了簡單起見,我們使用術語,源鏈(C1)和目標鏈(C2),它們是可以互換的。C1上的狀態更改必須在C2上“鏈上”進行驗證。這通常是由輕客戶端完成的:C2上的合約跟蹤C1上的一組區塊頭,并使用與從源鏈提交的根對應的Merkle證明對它們進行驗證。一般來說,C1和C2可以在不同的域中工作。除了不斷增加的區塊頭列表之外,客戶端還需要存儲和驗證新出現的區塊頭。這將導致顯著的計算和存儲開銷,而且通常效率低下。為了繞過這個問題,許多橋的建造都采取了更中心化的方法。
致命弱點:輕客戶端協議,有一小組可信任的驗證者來簽署狀態更改。
這通常發生在資金轉移的情況下,其中將大量信任假設放在中心化的橋實體上,該實體通常由少量受信任方組成。這違背了區塊鏈的基本原則,也帶來了與審查和安全相關的問題。
區塊鏈歷史上一些最大的黑客攻擊發生在橋上
大多數現有的橋(為了流動性)通過鎖定-鑄造-銷毀-釋放機制運行。用戶通過將資金發送到鏈C1上的橋協議與橋進行交互,橋協議將這些資金“鎖定”到合約中,即這些資金在C1中不可用。橋允許用戶在另一個區塊鏈C2中鑄造等值的資金。一旦用戶花費了一些資金,并希望將剩余的資金返回到C1,他就“銷毀”C2中的資金,橋對其進行驗證,并“釋放”C1中的剩余資金。在這樣的鏈間橋中,大量資金可能存放在其安全性依賴于少數受信任方的橋中,使其成為攻擊的活躍目標。
總的來說,建造橋的主要技術挑戰是:
低計算開銷(有效處理跨域數據)。
低存儲開銷。(簡潔)
安全/去信任。(可靠性)
Source:https://medium.com/@ingonyama/bridging-the-multichain-universe-with-zero-knowledge-proofs-6157464fbc86
去中心化金融社區
個人專欄
閱讀更多
金色早8點
區塊律動BlockBeats
金色財經
1435Crypto
吳說區塊鏈
blockin
比推 Bitpush News
Block unicorn
Foresight News
Odaily星球日報
Bankless
DeFi之道
10月12日,無聊猿Bored Ape Yacht Club的母公司Yuga Labs面臨美國證券交易委員會(SEC)的調查,調查其NFT的銷售是否違反了聯邦法律.
1900/1/1 0:00:00金色周刊是金色財經推出的一檔每周區塊鏈行業總結欄目,內容涵蓋一周重點新聞、礦業信息、項目動態、技術進展等行業動態。本文是其中的新聞周刊,帶您一覽本周區塊鏈行業大事.
1900/1/1 0:00:00原文作者:WHeart其實在很早之前,我就計劃寫一篇《Web3 新手教程》,送給 想要進入Web3 或者 剛剛進入Web3 的小伙伴,但是考慮到兩點原因,我還是打算把這件事推遲一些時日.
1900/1/1 0:00:00加密貨幣在2021年實現了巨大的飛躍,而到了今年,由Terra事件引發的大崩盤延續至今,也許大家對這個領域一直反反復復的"夏去冬來"并不感到陌生了.
1900/1/1 0:00:00最近關于用戶和 Move 智能合約交互,不需要授權 (Approve) 是更安全還是更不安全的爭論很多,這里嘗試用通俗的方式來解釋一下二者背后的區別以及 Move 這樣設計背后的思想.
1900/1/1 0:00:00出品:LD Capital Research作者:0xRJ_eth(Twitter:@0xRJ_eth)今天主要是從一個自上而下結合時間發展的視角整理了以太坊擴容方案.
1900/1/1 0:00:00