menu-icon
anue logo
熱門時事鉅亨號鉅亨買幣
search icon

區塊鏈

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

BlockBeats 律動財經 2022-11-15 15:02

cover image of news article
律動財經圖片

引子



來源: 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 網路低吞吐量的瓶頸。

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

原文連結

暢行幣圈交易全攻略,專家駐群實戰交流

▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!

前往鉅亨買幣找交易所優惠

文章標籤


Empty