橋是一種通信協議,用于促進區塊鏈之間的信息傳輸。建造橋雖然有用,但卻是一件有風險的事情。區塊鏈歷史上最代價慘重的一些黑客攻擊都僅針對橋。
據估計,截至2022年,過去一年損失的資金中,69%是由于橋攻擊造成的,損失達數十億美元。
在本文中,我們關注使用零知識證明(ZKP)的橋結構的具體實現。雖然有些黑客攻擊不能僅僅因使用ZKP而做到預防,但ZKP的可靠性將區塊鏈共識協議的安全性擴展到了橋。
橋與零知識證明
近年來,我們看到零知識證明(ZKP)在應用方面取得了巨大的進展,其穩定性為提供安全和去中心化的應用程序創造了條件。因此,ZKP也被用于制定橋建設是有意義的。下面,我們回顧和比較這一領域的三個有趣的發展:
使用zk-SNARK對共識進行簡潔驗證:使用單個zk-SNARK實現以太坊PoS(權益證明)輕客戶端。
通過zk-SNARKS(ElectronLabs)將IBC(區塊鏈間通信)引入以太坊:CosmosSDK上的工作原型到帶有單個zk-SNARK的以太坊輕客戶端。
zkbridge:無需信任的跨鏈橋變得實用((BerkleyRDI):使用2步遞歸zk-SNARK實現CosmosSDK到以太坊輕客戶端,以太坊輕客戶端到兼容EVM的區塊鏈(本文未涉及)。
這些項目利用zk-SNARK的特性來重新定義橋應該如何設計。以上所有假設都存在一個輕客戶端協議,該協議確保節點可以同步最終區塊鏈狀態的區塊頭。將ZKProllup背后的思想應用于橋的兩個主要挑戰是:首先,與rollup相比,橋中涉及的電路大小要大幾個數量級;其次,如何減少鏈上的存儲和計算開銷。
共識證明的簡明驗證(SuccinctLabs)
SuccinctLabs為以太坊2.0權益共識證明構建了一個輕客戶端,在Gnosis和以太坊之間構建了信任最小化的橋,它使用zk-SNARK(非零知識)的簡潔屬性來高效地驗證鏈上共識有效性證明。
該設置由以太坊中每27小時隨機選擇的512名驗證者組成的同步委員會組成。這些驗證者被要求在其運行周期內對每個區塊頭進行簽名,如果超過2/3的驗證者對每個區塊頭進行簽名,則以太坊的狀態被認為是有效狀態。驗證過程主要包括:
跨鏈橋Hop支持Rocket Pool流動性質押代幣rETH的跨鏈橋接:5月31日消息,跨鏈橋 Hop Protocol 宣布與以太坊流動性質押協議 Rocket Pool 達成合作,支持流動性質押代幣 rETH 在以太坊、Optimism 和 Arbitrum 之間的跨鏈橋接。[2023/5/31 11:50:00]
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友好的Poseidonhash的承諾。Poseidonhash解決了存儲開銷問題并減小了電路大小。減小電路尺寸的過程如下;受信任的委員會在27小時后更新,之前的委員會使用SSZ(SimpleSerialization),使用SHA256序列對新的委員會進行數字簽名。而不是直接在創建大型電路的SNARK中使用它(每個位操作需要一個門,在SHA中有大量的位操作),對當前公鑰使用Poseidonhash的承諾。
Nomad跨鏈橋現已重新啟動,將按比例定期返還用戶資金:12月21日消息,跨鏈互操作性協議Nomad宣布跨鏈橋已重新啟動,此前進行過KYC驗證的madAsset持有者可以開始回收其資金,Nomad將按照比例定期返還用戶資金。本月早些時候,Nomad曾發布跨鏈橋重啟指南。此前8月份Nomad因合約漏洞被盜近2億美元,9月份宣布將在審計完成后發布重啟跨鏈橋的代碼。[2022/12/21 21:59:27]
總結:它所使用的這種橋接方法非常特定于應用程序(依賴于共識協議),它的安全性來自于zk-SNARK的穩定性。此外,通過優化,它不僅實現了較低的存儲開銷,降低了電路復雜度,完成了簡潔驗證,同時也具有通用性。
將IBC引入以太坊(ElectronLabs)
ElectronLabs旨在從CosmosSDK生態系統(應用特定區塊鏈的框架)中構建一座橋,使用IBC(區塊鏈間通信)來實現框架中所定義的所有主權區塊鏈間的通信。
此設置與前面討論的情況類似,但方向相反,其中輕客戶端(來自CosmosSDK)需要在以太坊上的智能合約中進行驗證。從實際意義上講,在以太坊上運行來自其他區塊鏈的輕客戶端似乎具有挑戰性。在CosmosSDK中,Tendermint輕客戶端運行在扭曲的Edwards曲線(Ed25519)上,以太坊鏈本身不支持該曲線。因此,以太坊(BN254)上Ed25519簽名的鏈上驗證變得低效且成本高昂。
在Cosmos到以太坊的橋中使用zk-SNARK
與我們前面的討論類似,CosmosSDK上的每個區塊頭(每個區塊頭由曲線Ed25519上的約128個EdDSA簽名組成)由一組驗證者簽名組成(驗證一個區塊需要32個高風險簽名)。驗證簽名會生成大型電路,這是一個重要的計算組件。因此,基本問題是如何在以太坊鏈上高效、便宜地驗證來自CosmosSDK中任何區塊鏈的Ed25519簽名。解決方案是構建一個zk-SNARK,它在鏈下生成簽名有效性的證明,并且只在以太坊鏈上驗證證明本身。
去中心化交易與借貸協議Tethys Finance推出跨鏈橋Tethys Bridge:4月20日消息,Metis生態去中心化交易與借貸協議Tethys Finance推出跨鏈橋Tethys Bridge,已支持Metis、以太坊、Fantom、Avalanche、BNB Chain、Polygon網絡。[2022/4/20 14:36:56]
circom庫支持BN128、BLS12-381和Ed448-Goldilocks曲線,因此,為了在素數p=2^(255)-19的Ed25519曲線上執行模運算,可以將字段元素的表示分解為更小的85位整數(85*3=255),以實現高效的模運算。circom生成的電路是Ed25519簽名驗證電路的R1CS表示,它由橢圓曲線點加法/加倍和上面定義的模運算組成。用于簽名驗證的電路使用circom庫構造,每次簽名驗證會產生約2M的約束。
在見證計算之后,Rapidsnark庫為Ed25519簽名驗證生成Groth16證明。與BLS簽名不同,Ed25519曲線簽名不可聚合,因此不能為聚合簽名生成單個zk-SNARK證明。相反,簽名是批量驗證的,并且可以觀察到,驗證時間與批次中的簽名數量成線性關系。
因此,減少一批次中的簽名數量,確實可以降低證明時間(減少延遲),但隨之也會增加成本(gas費),因為每批生成的證明數量會增加。
總結:這種橋接方法也特定于它們的應用程序,并具備源于zk-SNARK證明的可靠性的安全性。特別是,在不引入任何新的信任假設的情況下,它驗證了以太坊上Tendermint輕客戶端的Ed25519簽名。域外模塊化算法是一種有價值的鏈上驗證計算優化方法。與SuccinctLabs方法類似的一個具體技術問題是延遲。CosmosSDK中的區塊生成速率約為7秒,為了跟上這個速率,證明時間就不得不降低。Electronlabs提出用多臺機器并行計算,以與區塊生成速率相同的速度生成證明,并進行遞歸生成單個zk-Snark證明。
Jump Crypto宣布已投入12萬枚以太坊用于恢復Wormhole跨鏈橋資金:金色財經報道,Jump Crypto 宣布已投入 12 萬枚以太坊以彌補 Wormhole 被盜損失,支持 Wormhole 繼續發展。Jump Crypto 稱相信多鏈的前景以及相信 Wormhole 是未來必不可少的基礎設施,因此將繼續支持 Wormhole,幫助其持續發展。
此前報道,跨鏈協議 Wormhole 于 2 月 3 日遭黑客攻擊,經 Wormhole 官方確認,本次攻擊事件中損失達 12 萬枚 ETH。[2022/2/4 9:30:30]
zkbridge(BerkleyRDI)
與其他兩個行業主導的ZKP橋結構不同,zkbridge是一個框架,可以在其之上構建多個應用程序。這個想法類似于前面討論的兩種方法,并且需要兩個鏈上的輕客戶端和智能合約來跟蹤摘要,對應于兩端的最新狀態。橋的核心組件是區塊頭中繼網絡、更新合約和應用程序特定合約(發送方:SC1,接收方:SC2)。
橋組件是灰色陰影區域。
區塊頭中繼網絡由中繼節點網絡組成,這些中繼節點偵聽橋接鏈上的狀態變化,并從區塊中的完整節點檢索區塊頭。橋上中繼節點的主要功能是生成一個ZKP,該ZKP驗證來自一個鏈的區塊頭的正確性,并將其轉發給另一個鏈上的更新合約。更新合約會進行驗證并接受或拒絕來自中繼網絡中的節點的證明。行業主導的方法和zkbridge之間的主要區別是,信任假設基本上簡化為中繼網絡中存在一個誠實節點,并且zk-SNARK是可靠的。
這種結構的一個關鍵創新是并行使用了zk-SNARK:Virgoprover(deVirgo),它具有簡潔的驗證/證明大小,不需要可信的設置。其用于驗證N個簽名的電路本質上由相同的子電路的N個副本組成,稱為數據并行電路,每個子電路與其他子電路相互排斥。例如,前面一節中討論的Ed25519簽名驗證就是這種情況。
Virgoprover的核心組件是基于GKR協議的零知識擴展,該協議為分層電路中的每個子電路和多項式承諾方案運行總和校驗參數。deVirgo泛化本質上是在一組中繼節點上運行一個Virgoprover,并通過將證明和多項式承諾聚合到一個主節點來避免證明大小的線性增長。
Astar發起構建Astar/Shiden&Cosmos跨鏈橋新提案:9月22日消息,Astar發起構建Astar/Shiden&Cosmos跨鏈橋新提案,該項目是將 Astar/Shiden網絡(基于 Substrate)連接到基于Cosmos-SDK的區塊鏈的橋梁。該橋可以使用ICS20標準傳輸和接收資產,此橋將保持資產跨鏈的 1:1 掛鉤。[2021/9/22 16:58:19]
在deVirgo中證明ed25519簽名的電路尺寸
對于使用大約10M門驗證100個簽名的電路,證明大小為210KB(與Virgoprover大小相同)。Zkbridge使用兩步遞歸。在第一步中,生成一個deVirgo證明,然后使用Groth16prover對其進行壓縮。Groth16verifier生成deVirgo電路執行的完整證明。遞歸的主要目的是實現簡潔(證明尺寸)和降低驗證gas成本。
然后,中繼網絡將Groth16證明提交給可以在鏈上驗證它的更新合約。deVirgo證明系統具有后量子抗性,因為它只依賴于抗碰撞哈希函數,主要的計算瓶頸是大型電路中的數論變換(NTT)。有一件事似乎沒有被提及,即中繼網絡的計算將遭受與MPC相同的通信復雜性,這也將影響證明時間。對于中繼網絡中的N臺機器,GKR多層和校驗協議的通信復雜度為O(Nlog_2(gatesperlayer))。即使對于32個簽名的情況,在中繼網絡中有32臺機器,這也將導致網絡中的通信輪數比較多,這可能會完全扼殺分布式計算帶來的性能。
使用上述方法解決了前面討論的來自CosmosSDK-Ethereum輕客戶端的Ed25519簽名驗證問題。橋由一個中繼網絡組成,它獲取Cosmos區塊頭并生成一個deVirgo證明用于分布式證明生成。接下來,由Electron-labs設計的優化簽名驗證電路的Gnark適配在遞歸的第二步生成Groth16證明。
Ed25519簽名的證明時間:RV:遞歸驗證者
更新合約在以太坊的Solidity中實現,并跟蹤Cosmos區塊頭和中繼網絡的Groth16證明。驗證成本是恒定的<230Kgas,這是由于Groth16證明的恒定大小。此外,有可能批量驗證B個連續區塊頭,并為B個頭生成單個證明。然而,增加批次的大小也增加了驗證時間,但由于鏈上的驗證負擔較小,因此會降低gas成本。和以前一樣,硬件加速也可能進一步改進Gnarkprover。
總結:zkbridge是在橋上構建應用程序的框架。橋的設計使用中繼網絡來生成ZKP,并且具有最低的信任假設。只要能夠克服中繼網絡中類似MPC的通信復雜性,就可以使用任何可并行化的ZKprover。更具體地說,先不考慮deVirgo中繼網絡的MPC復雜性,NTT是中繼節點的單個Virgoprover組件的瓶頸。
快速比較:
下面我們對本文討論的三種橋梁結構的各種特征進行快速比較。
綜上所述,使用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中的剩余資金。在這樣的鏈間橋中,大量資金可能存放在其安全性依賴于少數受信任方的橋中,使其成為攻擊的活躍目標。
總的來說,建造橋的主要技術挑戰是:
低計算開銷(有效處理跨域數據)。
低存儲開銷。(簡潔)
安全/去信任。(可靠性)
希望這篇文章對大家有一定的幫助。
對本文感興趣的可以私我哦~歡迎志同道合的幣圈人一起探討~
Tags:區塊鏈ARKNAR區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢ARK幣是什么幣NAR價格NAR幣
本周,許多TradFi機構爭先恐后地申請現貨比特幣交易所交易基金,這反過來又幫助推動加密貨幣突破30,000美元大關,盡管美國證券交易委員會(SEC)的監管挑戰阻礙了其發展。讓我們了解更多.
1900/1/1 0:00:00全球最大的加密貨幣交易所幣安首席執行官趙長鵬近日發推提醒包括他本人在內的員工,禁止在加密貨幣期貨市場進行交易。該規則最初是在CFTC提起訴訟后CZ發表的一封信中提到的.
1900/1/1 0:00:00以太坊從工作量證明到權益證明的過渡順利進行。ETH價格受價格影響的可能性出現,但在價格清除關鍵水平之前可能無法驗證經過無數次的拖延,以太坊的整合終于在9月15日凌晨發生.
1900/1/1 0:00:00Pepe2.0以幽默和代幣經濟學徹底改變了金融業。PEPE的看漲勢頭持續,技術指標積極。在上漲期間,PEPE在0.000001525美元和0.000001665美元處找到支撐并面臨阻力.
1900/1/1 0:00:00所有市場都是周期性的,Web3.0也不例外。 正如a16z最近的2022年加密貨幣狀況報告所指出的那樣,加密貨幣歷來遵循作者所謂的“價格創新周期”.
1900/1/1 0:00:00BONE的價格在過去24小時內上漲了10%以上。BONE的價格在2023年3月8日飆升25.85%,突破關鍵阻力位.
1900/1/1 0:00:00