EigenLayer 預計推出旗艦産品 EigenDA,其解決方案源自於以太坊擴容方案 Danksharding。其中的資料可用性取樣 (Data Availability Sampling, DAS) 也被廣泛應用於 Celestia、Avail 等 DA 專案中。本文我們將介紹 DAS 和 EigenDA 的實現方式及創新之處。
(前情提要:EigenLayer深度研報》什麼是再質押敘事?雙重收益和治理權都拿? )
(背景補充:一文解析EigenLayer重複質押的原理、與其優勢所在 )
去年 11 月,我們曾在這篇文章 「 EigenLayer:將以太坊級別的信任引入中介軟體 」 中介紹過 EigenLayer。近一年以來,EigenLayer 已經發布了他們的白皮書、完成了 5000 萬美金的 A 輪融資,並且上線了第一階段的主網。在此期間,以太坊社群圍繞 EigenLayer 及其用例也展開了廣泛的討論。本文將圍繞這些討論進行跟蹤和梳理。
背景
在以太坊生態中,一些中介軟體服務(例如預言機)不完全依賴鏈上邏輯,因此無法直接藉助以太坊的共識和安全,需要重新引導信任網路。通常做法是先由專案方進行運營,再引入代幣激勵,吸引系統參與者,逐漸實現去中心化。
這樣做至少有兩個難點。一是引入激勵機制需要額外成本:參與者購買代幣參與質押的機會成本,以及專案方維持代幣價值的運作成本。二是即便付出了上述成本並構建了一個去中心化網路,其安全性、持續性如何,仍然是未知數。對於初創專案而言,這兩點顯得尤其棘手。
EigenLayer 的想法是:由現有的以太坊質押者進行再次質押 (Restaking),從而為這些中介軟體 (Actively Validated Services, AVS) 提供經濟安全。如果這些再質押者誠實工作可以獲得獎勵,若作惡則會導緻原有的以太坊質押倉位被罰沒。
這樣做的好處是:其一,專案方不需要自己引導新的信任網路,而是外包給以太坊驗證者,盡可能地降低了資金成本;其二,以太坊驗證者集合的經濟安全非常牢固,使安全性也得到了一定的保證。從以太坊質押者的角度看,再質押為他們提供了額外收益,只要沒有主觀作惡意圖,整體風險可控。
EigenLayer 的創辦人 Sreeram 曾在推特和 Podcast 提及 EigenLayer 的三種用例和信任模型:
- 經濟信任。即以太坊質押倉位的重用,更高價值代幣的質押意味著更健壯的經濟安全,上文已有討論。
- 去中心化信任。一些服務(例如祕密共享)的惡意行為可能無法歸因,也就無法依賴於罰沒機制。需要足夠去中心化、獨立的群體來做某件事情,以防範共謀和串通風險。
- 以太坊驗證者承諾。區塊生産者以質押倉位為抵押,做出某些可信承諾。下文我們會列舉一些例子進一步說明。
系統參與者
EigenLayer 作為開放市場,連線三方的主要參與者。
- 再質押者:如果擁有以太坊質押倉位,可以通過將提款憑證轉移到 EigenLayer 來參與再質押,或簡單地存入 stETH 等 LST 來參與。如果再質押者自己無法執行 AVS 節點,亦可將其倉位委託給操作員。
- 操作員:操作員接受再質押者的委託,並執行 AVS 節點。他們可以自由選擇為哪些 AVS 提供服務。一旦為 AVS 提供服務,就需要接受其定義的罰沒規則。
- AVS:AVS 作為需求方 / 消費者,需要向再質押者付費,並獲得其提供的經濟安全。
有了這些基本概念之後,我們來看 EigenLayer 的具體用例。
EigenDA
EigenDA 是 EigenLayer 推出的旗艦産品,解決方案源自於以太坊擴容方案 Danksharding。其中的資料可用性取樣 (Data Availability Sampling, DAS) 也被廣泛應用於 Celestia、Avail 等 DA 專案中。本章我們將快速介紹 DAS,隨後看看 EigenDA 的實現方式及其創新之處。
DAS
作為 Danksharding 的前置方案,EIP-4844 引入了「Blob-carrying Transaction」,每筆交易將額外攜帶約 125kb 大小的資料。在資料分片擴容路線的背景下,新增的資料無疑加重了節點的負擔。那麼,有沒有一種辦法使得節點只下載小部分資料,也可以驗證所有資料是可用的?
DAS 的做法是,讓節點對小部分資料進行多次隨機取樣。每次成功取樣都會增加節點認為資料可用的置信度,一旦達到某個預設水平,就認為資料可用。然而,攻擊者仍然有可能隱藏一小部分的資料 —— 我們還需要某種容錯機制。
DAS 採用了糾刪碼 (Erasure Coding)。糾刪碼的主要思想是將資料分成多個塊,然後對這些塊進行編碼,生成額外的冗餘塊。這些冗餘塊包含了原始資料塊的部分資訊,使得當一些資料塊丟失或損壞時,可以通過冗餘塊來恢複丟失的資料塊。這樣,糾刪碼為 DAS 提供了冗餘性和可靠性。
此外,我們還需要驗證得到的冗餘塊是否被正確編碼,因為使用錯誤的冗餘塊無法重建原有的資料。Danksharding 採用了 KZG (Kate-Zaverucha-Goldberg) 承諾。KZG 承諾是一種用於驗證多項式的方法,能夠證明多項式在特定位置的值與指定的數值一緻。
證明者選擇一個多項式 p (x),並使用 p (x) 計算對每個資料塊的承諾,稱為 C1、C2、…、Cm。證明者將承諾與資料塊一起發布。為了驗證編碼,驗證者可以隨機取樣 t 個點 x1, x2, …, xt ,並要求證明者在這些點上開啟承諾:p (x1), p (x2), …, p (xt)。使用拉格朗日插值,驗證者可以從這些 t 個點重建多項式 p (x)。驗證者現在可以使用重建的多項式 p (x) 和資料塊重新計算承諾 C1’、C2’、…、Cm’ 並驗證它們是否與已發布的承諾 C1、C2、…、Cm 匹配。
簡而言之,使用 KZG 承諾,驗證者只需要一小部分的點即可驗證整個編碼的正確性。這樣,我們就得到了完整的 DAS。
How
EigenLayer 借鑒了 DAS 的思路,並把它應用於 EigenDA 中。
1. 首先,EigenDA 的節點在 EigenLayer 合約中進行再質押並註冊。
2. 其次,Sequencer 在拿到資料之後,把資料切分成多個塊,使用糾刪碼生成冗餘塊,並計算每個資料塊對應的 KZG 承諾。Sequencer 把 KZG 承諾逐一發布到 EigenDA 合約作為見證。
3. 隨後, Sequencer 把資料塊連同其 KZG 承諾逐一分發給各個 EigenDA 節點。節點拿到 KZG 承諾後,與 EigenDA 合約上的 KZG 承諾進行比較,確認無誤後儲存資料塊,並進行簽名。
4. 之後再由 Sequencer 收集這些簽名,生成聚合簽名並發布到 EigenDA 合約,由 EigenDA 合約驗證簽名。簽名驗證無誤後,就完成了整個流程。
在上述流程中,由於 EigenDA 節點僅僅通過簽名來聲稱自己對資料塊進行了儲存。我們還需要一種方法來確保 EigenDA 節點沒有撒謊。EigenDA 採用了託管證明 (Proof of Custody)。
託管證明的思路是在資料中放一個「炸彈」,一旦節點對它進行簽名,就會被罰沒。為了實現託管證明,需要設計:一個祕密值,用於區分不同的 DA 節點,防止作弊;一個特定於 DA 節點的函式,以 DA 資料和祕密值作為輸入,以有無炸彈作為輸出。如果節點沒有存它該存的完整資料,就無法計算這個函式。Dankrad 曾經在部落格上分享過託管證明的更多細節。
如果出現懶惰節點,任何人可以提交證明給 EigenDA 合約,合約會驗證這個證明,若驗證通過則對懶惰節點進行罰沒。
在硬體要求方面,在 1 秒內計算 32 MB 資料的 KZG 承諾大約需要 32-64 核 CPU,但這個要求僅針對 Sequencer 一方,並不會對 EigenDA 節點施加負擔。在 EigenDA 的測試網中,100 個 EigenDA 節點的吞吐量達到了 15 MB/s,而對節點下載頻寬的需求僅為 0.3 MB/s(遠低於執行以太坊驗證者的要求)。
綜上所述,我們可以看到 EigenDA 實現了資料可用性與共識的解耦,資料塊的傳播不再受限於共識協議和 P2P 網路吞吐量低的瓶頸。因為 EigenDA 相當於搭了以太坊共識的便車:Sequencer 發布 KZG 承諾和聚合簽名、由智能合約驗簽、對惡意節點進行罰沒的過程都在以太坊上發生,由以太坊提供共識保證,因此無需重新引導信任網路。
Problems of DAS
當前,DAS 作為技術本身也存在一些侷限性。我們需要假設惡意的對手方會盡可能採取各種手段來愚弄輕節點,使其接受虛假的資料。Sreeram 曾在他的推文裡作了如下闡述。
為了讓單個節點有足夠高的概率認為資料可用,需要滿足以下要求:
- 隨機取樣:要求每個節點獨立且隨機地選擇一堆樣本進行取樣,而對手方不知道誰請求了哪些樣本。這樣,對手方就無法相應地改變策略來欺騙節點。
- 並發取樣:要求 DAS 由多個節點同時進行,使得攻擊者無法區分一個節點的取樣與其他節點的取樣。
- 私有 IP 取樣:意味著為每個查詢的資料塊使用一個匿名 IP。否則對手可以判別進行取樣的不同節點,選擇性地向節點提供其已經查詢過的部分,而不提供其他部分的資料。
我們可以讓多個輕節點進行隨機取樣來滿足並發性和隨機性,但目前沒有好的方法來滿足私有 IP 取樣。因此仍然存在針對 DAS 的攻擊向量,使 DAS 目前隻提供較弱的保證性。這些問題仍在被積極解決中。
EigenLayer & MEV
Sreeram 在 MEVconomics Summit 中談到了 EigenLayer 在 MEV 堆疊中的應用。圍繞質押和罰沒的加密經濟原語,提議者可以實現如下四種特性,也即上文提到的第三點 —— 驗證者承諾用例。
Event-driven Activation
諸如 Gelato 的協議可以實現對特定鏈上事件的進行反應。即對鏈上事件進行持續監聽,一旦某個事件發生,隨即觸發一些預定義的操作,這些任務通常由第三方的監聽器 / 執行者來完成。
之所以稱其為「第三方」是因為,監聽器 / 執行者和實際上處理區塊空間的提議者之間並無聯系。假設監聽器 / 執行者觸發了某一筆交易,但(由於某些原因)沒有被提議者包含到區塊中,這是無法被歸因的,因此無法帶來確定性的經濟保證。
如果由參與再質押的提議者提供這項服務,他們就可以對操作的觸發做出可信承諾,如果最終這些交易沒有被包含在區塊中,則提議者被罰沒。這樣相較於第三方監聽器 / 執行者而言,提供了更強的保證。
在實際應用中(例如借貸協議),設定超額抵押率的目的之一是為了覆蓋一定時間範圍內的價格波動。這與清算前的時間視窗相關,更高的超額抵押率意味著更長的緩沖期。如果有大部分的交易採取事件驅動反應的策略,且擁有提議者提供的強保證,那麼(對於流動性高的資産而言)超額抵押率的波動性就可能被限制在幾個區塊間隔內,從而降低超額抵押率並提高資本效率。
Partial Block Auction
在當前 MEV-Boost 的設計中,提議者把區塊空間完全外包給構建者,只能被動接收並提議構建者提交的整個區塊。相較於分佈更加廣泛的提議者而言,構建者只有極少數,他們可能串通起來,對特定交易進行審查和勒索 —— 因為提議者無法在 MEV-Boost 中包含自己想要的交易。
EigenLayer 提出了 MEV-Boost++ 對 MEV-Boost 進行升級,在區塊中引入了 Proposer-part,提議者可以在 Proposer-part 中包含任意交易。提議者也可以同時構建一個替代區塊 B-alt,在中繼沒有釋放 Builder_part 的情況下提議這個替代區塊 B-alt。這種靈活性既確保了抗審查,又同時解決了中繼的活躍性問題。
這與協議層設計 ——ePBS 提出的 crList 的目的是一緻的,即我們需要確保廣泛的提議者可以參與決定區塊的構成,以實現抗審查。
Threshold Encryption
在基於閾值加密的 MEV 解決方案中,由一組分散式的節點管理加解密金鑰。使用者對交易進行加密,在交易被包含在區塊中後才會被解密並執行。
然而閾值加密依賴於多數誠實假設。如果大多數的節點作惡,有可能導緻解密後的交易沒有被包含在區塊中。進行再質押的提議者可以對加密後的交易進行可信承諾,以確保其被包含在區塊中。如果提議者沒有包含解密後的交易,那麼會被罰沒。當然,如果惡意的多數節點沒有釋放解密金鑰,那麼提議者可以提議一個空塊。
Long-term Blockspace Auction
長期區塊空間拍賣允許區塊空間的買家提前預定某個驗證者未來的區塊空間。參與再質押的驗證者可以做出可信承諾,如果到期沒有包含買家的交易,則會被罰沒。這種獲得區塊空間的保證有一些實用的案例。例如,預言機需要在一定的時間週期進行喂價;Arbitrum 上每 1-3 分鍾、Optimism 每 30 秒 – 1 分鍾向以太坊 L1 發布 L2 資料等等。
PEPC
我們再說回最近被以太坊社群廣泛討論的 PEPC (Protocol-enforced Proposer Commitment)。PEPC 實際上是 ePBS 的推廣或者說通用化 (Generalization)。
讓我們來逐一拆解這個邏輯鏈。
首先,以協議外 PBS MEV-Boost 為例,目前 MEV-Boost 依賴於以太坊協議級別的罰沒機制,即如果提議者在同一區塊高度對兩個不同的區塊頭進行簽名,他們會被罰沒。因為提議者需要對中繼提交的區塊頭進行簽名,相當於該區塊頭與該提議者兩者形成繫結,故使中繼有理由相信,構建者的區塊是會被提議的。否則提議者只能被迫放棄這個 Slot ,或者提議一個不同的區塊(這會導緻罰沒)。此時提議者的承諾由質押 / 罰沒這個經濟安全來保證。
近似地,設計 ePBS 的一個重要原則是「honest builder publication safety」,即確保以誠實的構建者發布的區塊會被提議。ePBS 作為協議內 PBS,將被納入到以太坊的共識層中,由協議提供保證。
PEPC 是 ePBS 的進一步推廣。ePBS 承諾了「構建者的區塊會被提議」這件事情,如果把這件事情擴充套件到部分割槽塊拍賣、平行區塊拍賣、未來區塊拍賣等等,我們就可以讓提議者做更多的事情 —— 而協議層會確保這些事情被正確執行。
PEPC 與 EigenLayer 之間有著微妙的關系。不難發現,上述 PEPC 的用例與 EigenLayer 的區塊生産者用例之間有幾分相似之處。然而,EigenLayer 和 PEPC 的一個重要區別是:參與再質押的提議者理論上仍然可以違揹他們的承諾,盡管會因此受到經濟上的懲罰;而 PEPC 的重點在於「Protocol-enforced」,即在協議層上實現了強制性,如果承諾無法被執行,則區塊無效。
(PS:粗略地來看,容易發現 EigenDA 類似於 Danksharding、MEV-Boost++ 類似於 ePBS,這兩項服務就像是協議層設計的 opt-in 版本,對比協議層而言更快推出市場的解決方案,和以太坊未來要做的事情保持同步,並通過再質押保持 Ethereum Alignment)。
Don’t Overload Ethereum Consensus?
數月前,Vitalik 的文章 Don’t Overload Ethereum Consensus 被多數人認為是對 Restaking 的批評。筆者認為這只是一種對維護社會共識的提醒或警告,重點在於社會共識,而非對再質押的否定。
在以太坊的嬰兒時期,The DAO 攻擊事件曾引發巨大爭議,社群就是否硬分叉進行了激烈的討論。而如今,包括 Rollup 在內的以太坊生態已經承載了龐大的應用。因此,避免在社群內引起極大分歧,保持社會共識的一致性是非常重要的。
Hermione creates a successful layer 2 and argues that because her layer 2 is the largest, it is inherently the most secure, because if there is a bug that causes funds to be stolen, the losses will be so large that the community will have no choice but to fork to recover the users’ funds. High-risk.
以上對原文的引用是一個很好的例子。今天 L2 的總 TVL 超過百億美金,如果出現問題,牽扯極大。此時若社群提議執行硬分叉,對狀態進行回滾,必然會引起巨大爭議。假設你我有一筆不小的資金在上面,將會如何選擇 —— 拿回這筆錢還是敬畏區塊鏈的不可篡改性?Vitalik 的點是:依賴於以太坊構建的專案應該妥善管控風險,不應該試圖拉攏以太坊的社會共識,把專案的生死存亡和以太坊進行強繫結。
回歸到 EigenLayer 的討論上,管控風險的重點是 AVS 需要定義客觀的、鏈上可查的、可歸因的罰沒規則,以避免産生分歧。例如,在以太坊上對區塊進行雙重簽名;在基於輕節點的跨鏈橋中對另一條鏈的無效區塊進行簽名;上述討論的 EigenDA 託管證明等等。諸如此類都屬於清晰的罰沒規則。
結語
EigenLayer 預計將於明年年初完成主網上線,並推出其旗艦産品 EigenDA。目前已有許多基礎設施專案宣佈了他們和 EigenLayer 的合作。我們在上文討論了 EigenDA、MEV 和 PEPC,圍繞不同的用例,許多有趣的討論還在進行中。再質押正在成為市場的主流敘事之一。我們會持續跟進 EigenLayer 的進展並分享任何觀點!
📍相關報導📍
再質押賽道觀察:除了EigenLayer,還有哪些潛力專案?