EigenLayer:將以太坊級別的信任引入中間件

原文標題:《EigenLayer:將以太坊級別的信任引入中間件》原文作者:Jiawei, IOSG Ventures

引子

來源: EigenLayer, IOSG Ventures

在當前的以太坊生態中,存在著許多的中間件(Middleware)。

左側是應用端的視角。一些dApp 的運行依賴於中間件:例如DeFi 衍生品依賴於預言機餵價;例如資產的跨鏈轉移依賴於跨鏈橋作為第三方中繼。

右側是模塊化的視角。例如在Rollup 排序中我們需要構建Sequencer 網絡;在鏈下數據可用性中我們有DAC 或者Polygon Avail 和Celestia 的DA-Purpose Layer1。

這些大大小小的中間件獨立於以太坊本身而存在,運行著驗證者網絡:即投入一些代幣和硬件設施,為中間件提供服務。

我們對中間件的信任源於 Economic Security,如果誠實工作可以得到回報,如果作惡則將導致質押代幣的Slashing。這種信任的級別來源於質押資產的價值。

如果我們把以太坊生態中所有依賴Economic Security 的協議/中間件比作一個蛋糕,那麼看起來會像是這樣:資金根據質押網絡的規模被切分成大大小小的部分。

來源: IOSG Ventures

然而,當前的Economic Security 仍然存在一些問題:

對於中間件。中間件的驗證者需要投入資金以守護網絡,這需要一定的邊際成本。出於代幣價值捕獲的考慮,驗證者往往被要求質押中間件原生代幣,由於價格波動導致其風險敞口存在不確定性。

其次,中間件的安全性取決於質押代幣的總體價值;如果代幣暴跌,攻擊網絡的成本也隨之降低,甚至可能引發潛在的安全事件。該問題在一些代幣市值較為薄弱的協議上尤為明顯。

對於dApp。舉例而言,一些dApp 不必依賴於中間件(設想一個Pure Swap DEX),而只需要信任以太坊;對於一些依賴中間件的dApp(如需要預言機餵價的衍生品),實際上其安全同時依賴於以太坊和中間件的信任假設。

中間件的信任假設本質上來源於對分佈式驗證者網絡的信任。而我們看到由於預言機錯誤餵價導致的資產損失事件不在少數。

這樣,進一步地帶來木桶效應:

假設某個可組合性極高的DeFi 應用A,相關牽扯的TVL 達到數十億級別,而預言機B 的信任僅僅依賴於數億級別的質押資產。那麼一旦出現問題,由於協議間關聯所帶來的風險傳導和嵌套,可能無限放大預言機所造成的損失;

假設某模塊化區塊鏈C,採用數據可用性方案D、執行層方案F 等等,如果其中的某一部分出現行為不當/遭受攻擊,波及範圍將是C 整條鏈本身,儘管系統其他部分並沒有問題。

可見系統安全取決於其中的短板,而看似微不足道的短板可能引發系統性風險。

EigenLayer 做了什麼?

EigenLayer 的想法並不復雜:

類似於共享安全,嘗試把中間件的Economic Security 提升至等同於以太坊的級別。

來源: EigenLayer, IOSG Ventures

這是通過「Restaking」(再質押)來完成的。

Restaking 即是把以太坊驗證者網絡的ETH 敞口進行二次質押:

原先,驗證者在以太坊網絡上進行質押以獲得收益,一旦作惡則將導致對其質押資產的Slash。同理,在進行Restaking 之後能夠獲得在中間件網絡上的質押收益,但如果作惡則被Slash 原有的ETH 質押品。

具體Restake 的實施方法是:質押者可以把以太坊網絡中提款地址設置為EigenLayer 智能合約,也即賦予其Slashing 的權力。

來源: Messari, IOSG Ventures

除直接Restake $ETH 之外,EigenLayer 提供了其他兩種選項以擴展Total Addressable Market,即分別支持質押WETH/USDC 的LP Token 和stETH/USDC 的LP Token。

此外,為了延續中間件原生代幣的價值捕獲,中間件可以選擇在引入EigenLayer 的同時保持對其原生代幣的質押要求,即Economics Security 分別來源於其原生代幣和以太坊,從而避免單代幣的價格暴跌引發的「死亡螺旋」。

可行性

總體來看,對驗證者來說,參與EigenLayer 的Restaking 有資本要求和硬件要求兩點。

參與以太坊驗證的資本要求是32 ETH,在Restaking 上保持不變,但在引入到新的中間件時會額外增加潛在的風險敞口,如Inactivity 和Slashing。

來源: Ethereum, IOSG Ventures

而硬件設施方面,為了降低驗證者的參與門檻,實現足夠的去中心化,合併後以太坊驗證者的硬件要求很低。稍好的家用電腦其實已經可以達到推薦配置。這時一些硬件要求其實是溢出的。類比於礦工在算力資源足夠的時候同時挖多個幣種,僅從硬件方面來說,Restaking 相當於用溢出的這部分硬件Capability 去為多個中間件提供支持。

聽起來很像Cosmos 的Interchain Security,僅此而已?實際上,EigenLayer 對後合併時代以太坊生態的影響可能不止於此。本文我們選取EigenDA 來做進一步闡述。

來源: EigenLayer, IOSG Ventures

EigenDA

注:此處僅十分簡略地介紹數據可用性(DA)、糾刪碼和KZG 承諾。數據可用性層是模塊化視角下的拆分,用於為Rollup 提供數據可用性。糾刪碼和KZG 承諾是數據可用性採樣(DAS)的組成部分。採用糾刪碼使得隨機下載一部分數據即可驗證所有的數據可用性,並在必要時重建所有數據。 KZG 承諾用於確保糾刪碼被正確編碼。為避免偏離本文主旨,本節將省略一些細節、名詞解釋和前因後果,如對本節Context 有疑問,可閱讀IOSG 此前的文章「合併在即:詳解以太坊最新技術路線」以及「拆解數據可用層:模塊化未來中被忽視的樂高積木」。

作為簡單回顧,我們把當前的DA 方案劃分為鏈上和鏈下兩部分。

鏈上部分,Pure Rollup 是指單純把DA 放到鏈上的方案,即需要為每個字節恆定支付16 gas,這將占到Rollup 成本的80%-95% 之多。在引入Danksharding 之後,鏈上DA 的成本將得到大幅降低。

在鏈下DA 中,每種方案在安全性和開銷上有一定的遞進關係。

Pure Validium 是指僅把DA 放在鏈下,而不做任何保證,鏈下數據託管服務商隨時有關機下線的風險。而特定於Rollup 中的方案包括StarkEx、zkPorter 和Arbitrum Nova,即由一小部分知名第三方組成DAC 來保證DA。

EigenDA 屬於通用化的DA 解決方案,與Celestia 和Polygon Avail 同屬一類。但EigenDA 和其餘兩者的解決思路又有一些差異。

作為對比,我們首先忽略EigenDA,來看Celestia 的DA 是如何工作的。

來源: Celestia

以Celestia 的Quantum Gravity Bridge 為例:

以太坊主鏈上的L2 Contract 像往常一樣驗證有效性證明或欺詐證明,區別在於DA 由Celestia 提供。 Celestia 鏈上沒有智能合約、不對數據進行計算,只確保數據可用。

L2 Operator 把交易數據發佈到Celestia 主鏈,由Celestia 的驗證人對DA Attestation 的Merkle Root 進行簽名,並發送給以太坊主鏈上的DA Bridge Contract 進行驗證並存儲。

這樣實際上用DA Attestation 的Merkle Root 代替證明了所有的DA,以太坊主鏈上的DA Bridge Contract 只需要驗證並存儲這個Merkle Root。對比將DA 存儲到鏈上而言,這樣使得保證DA 的開銷得到了極大的降低,同時由Celestia 鏈本身提供安全保證。

在Celestia 鏈上發生了什麼?首先,Data Blob 通過P2P 網絡傳播,並基於Tendermint 共識對Data Blob 達成一致性。每個Celestia 全節點都必須下載整個Data Blob。 (注意,這裡僅討論全節點,Celestia 的輕節點可以採用DAS 來確保數據可用,這裡不再展開)

由於Celestia 本身仍然作為Layer1,需要對Data Blob 進行廣播和共識,這樣一來實際上對網絡的全節點有著很高的要求(128 MB/s 下載和12.5 MB/s 上傳),而實現的吞吐量卻未必高(1.4 MB/s)。

而EigenLayer 採用了不同的架構——不需要做共識,也不需要P2P 網絡。

如何實現?

來源: EigenLayer

首先,EigenDA 的節點必須在EigenLayer 合約中Restake 他們的ETH 敞口,參與到Restaking 中。 EigenDA 節點是以太坊質押者的子集。

其次,數據可用性的需求方(例如Rollup,稱為Disperser)拿到Data Blob 後,使用糾刪碼和KZG 承諾對Data Blob 進行編碼(大小取決於糾刪碼的冗餘比例),並把KZG 承諾發佈到EigenDA 智能合約。

隨後Disperser 把編碼後的KZG 承諾分發給EigenDA 節點。這些節點拿到KZG 承諾後,與EigenDA 智能合約上的KZG 承諾進行比較,確認正確後即對Attestation 進行簽名。之後Disperser 一一獲取這些簽名,生成聚合簽名並發佈到EigenDA 智能合約,由智能合約進行簽名的驗證。

在這個工作流中,EigenDA 節點僅僅對Attestation 進行了簽名,來聲稱自己對編碼後的Data Blob 進行了存儲。而EigenDA 智能合約僅僅對聚合簽名的正確性進行驗證。那麼我們如何確保EigenDA 節點真的對數據可用進行了存儲呢?

EigenDA 採用了 Proof of Custody 的方法。即針對這樣一種情況,有一些Lazy Validator,他們不去做本應該做的工作(例如確保數據可用)。而是假裝他們已經完成了工作並對結果進行簽名。 (例如撒謊聲稱數據是可用的,實際上他們並沒有這樣做)

Proof of Custody 的做法類似於欺詐證明:如果出現Lazy Validator,任何人可以提交證明給EigenDA 智能合約,由智能合約進行驗證,如驗證通過即對Lazy Validator 進行Slashing。 (更多有關Proof of Custody 的細節可參考Dankrad 的文章,此處不再展開*https://dankradfeist.de/ethereum/2021/09/30/proofs-of-custody.html*)

小結

經過上述討論和比較,我們可以看到:

Celestia 的思路與傳統的Layer1 一致,做的其實是Everybody-talks-to-everybody(共識)和Everybody-sends-everyone-else-everything(廣播),而區別是Celestia 的共識和廣播是針對Data Blob 來做的,即僅確保數據可用。

而EigenDA 做的是Everybody-talks-to-disperser(即步驟 [3] Disperser 獲取Attestation)和Disperser-sends-each-node-a-unique-share(即步驟 [2] Disperser 分發數據給EigenDA 節點),把數據可用性和共識進行了解耦。

EigenDA 不需要做共識和參與P2P 網絡的原因是,它相當於搭了以太坊的「便車」:借助EigenDA 部署在以太坊上的智能合約,Disperser 發布Commitments 和Aggregated Attestations、由智能合約驗證聚合簽名的過程都是在以太坊上發生的,由以太坊提供共識保證,因此不必受限於共識協議和P2P 網絡低吞吐量的瓶頸。

這體現為節點要求和吞吐量之間的差異。

Total
0
Shares
Related Posts