V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

“V 神點評:這篇由 Delphi Digital 發布的報告深入了解以太坊的分片路線圖。 非常棒!”

原文:Delphi Digital,由 DeFi 之道編譯

關鍵要點

  • 以太坊是唯一構建可擴展統一結算和數據可用性層的主要協議
  • Rollups 在利用以太坊的安全性的同時擴展計算
  • 條條大路通向中心化區塊生產、去中心化去信任區塊驗證和抗審查的終局
  • 提議者 – 構建者分離和弱無狀態等創新解鎖了這種權力分離(構建和驗證),以在不犧牲安全性或去中心化的情況下實現可擴展性
  • MEV 現在處於前沿和中心位置——計劃進行大量設計以減輕其危害並防止其中心化趨勢
  • Danksharding 結合了多種前沿研究途徑,以提供以太坊以 Rollup 為中心的路線圖所需的可擴展基礎層
  • 我確實希望在我們的有生之年實現 danksharding

簡介

第 I 部分–Danksharding 之路

1) 原始數據分片設計–獨立的分片提議者

2) 數據可用性採樣

3) KZG 承諾

4) KZG 承諾與欺詐證明

5) 協議內提議者 – 構建者分離

6) 抗審查列表 (crList)

7) 二維 KZG 方案

8) Danksharding

9) Danksharding–誠實多數驗證

10) Danksharding–重建

11) Danksharding–帶有私人隨機抽樣的惡意多數安全性

12) Danksharding–關鍵要點

13) Danksharding–區塊鏈可擴展性的限制

14) 原始 danksharding (EIP-4844)

15) 多維 EIP- 1559

第 II 部分–歷史和狀態管理

1) 通過總 calldata 限制降低 calldata gas (EIP-4488)

2) 限制執行客戶端中的歷史數據 (EIP-4444)

3) 恢復歷史數據

4) 弱無​​狀態

5) Verkle Tries

6) 狀態到期

第 III 部分–都是 MEV

1) 當前的 MEV 供應鏈

2) MEV-Boost

3) 委員會驅動的 MEV 平滑

4) 單槽確定性

5) 單一秘密領導人選舉

第 IV 部分–The Merge:幕後

1) 合併后的客戶端

2) 合併后的共識

結論性想法

簡介

自從 Vitalik 說今天出生的人有 50-75% 的機會活到 3000 年並且他希望長生不老以來,我一直對 The Merge 的時間表持懷疑態度。不過,權當這是玩笑吧,不管怎樣,我們還是要展望一下以太坊雄心勃勃的路線圖。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

這不是一篇能快速閱讀完的文章。如果你想對以太坊雄心勃勃的路線圖有一個廣泛而細緻的了解——給我一個小時的專註,我會為你節省幾個月的工作時間。

以太坊研究方向有很多需要長期跟蹤,但一切最終都融入了一個總體目標——在不犧牲去中心化驗證的情況下擴展計算。

希望您熟悉 Vitalik 著名的《終局遊戲》一文。他在文章中承認需要一些中心化(Centralization)來實現擴大規模。這個“C”字母開頭的單詞在區塊鏈中是很嚇人的,但這卻是一個事實。我們只需要通過去中心化和去信任的驗證來維持這種權力。這裡沒有可妥協的。

專業人士將為 L1 及更高級別構建模塊。以太坊通過簡單的去中心化驗證仍然非常安全,並且 Rollup 從 L1 繼承了它們的安全性。然後,以太坊提供結算和數據可用性,允許 Rollup 擴展。這裡的所有研究最終都希望優化這兩個角色,同時使完全驗證鏈變得比以往更容易。

下面是一個術語表,用於縮略一些將出現~43531756765713534 次的單詞:

  • DA–數據可用性
  • DAS–數據可用性抽樣
  • PBS–提議者 – 建造者分離
  • PDS–原始 danksharding
  • DS–Danksharding
  • PoW——工作量證明
  • PoS–權益證明

第 I 部分:邁向 Danksharding 之路

希望你現在已經聽說以太坊已經轉向以 Rollup 為中心的路線圖。不再有執行分片——以太坊將改為針對需要大量數據的 Rollup 進行優化。這是通過數據分片(以太坊的計劃)或大區塊(Celestia 的計劃)來實現的。

共識層不解釋分片數據。它有一項要做的工作——確保數據可用。

我假設你已經熟悉一些基本概念,如 Rollup、欺詐和 ZK 證明,以及為什麼 DA 很重要。如果您不熟悉或只是需要複習,Can 最近發布的關於 Celestia 報告涵蓋了這些內容。

原始數據分片設計——獨立的分片提議者

這裡描述的設計已被廢棄,但它是有價值的情景。為簡單起見,我將其稱為“分片 1.0”。

64 個分片區塊中的每一個都有獨立的提議者和委員會,從驗證者集中輪換。他們分別驗證他們的分片數據是否可用。最初這不是 DAS——它依賴於每個分片的驗證器集中的大多數來完全下載數據。

這種設計引入了不必要的複雜性、更糟糕的用戶體驗和攻擊向量。在分片之間混洗驗證者是很棘手的。

除非您引入非常嚴格的同步假設,否則很難保證投票將在單個時隙(slot)內完成。信標(Beacon)區塊提議者需要收集所有單個委員會的投票,並且可能會出現延遲。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

DS 完全不同。驗證者執行 DAS 以確認所有數據都可用(不再有單獨的分片委員會)。一個專門的構建器創建一個帶有信標區塊和所有分片數據一起確認的大區塊。因此,PBS 是 DS 保持去中心化所必需的(將大區塊構建在一起是資源密集型的)。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

數據可用性抽樣

Rollups 發布了大量數據,但我們不想讓節點下載所有這些數據。這將意味着高資源需求,從而損害去中心化。

相反,DAS 允許節點(甚至是輕客戶端)輕鬆安全地驗證所有內容是否可用,而無需下載所有內容。

  • 簡單的解決方案——只需檢查該區塊中的一堆隨機組塊。如果他們都簽了,我就簽了。但是,如果您錯過了將所有 ETH 都交給 Sifu 的一筆交易怎麼辦?資金不再安全。
  • 智能解決方案——首先擦除數據。使用 Reed-Solomon 代碼擴展數據。這意味着數據被插值為一個多項式,然後我們在許多其他地方對其進行評估。這是一氣呵成的,所以讓我們分解一下。

對於數學理解有困難的人來講,我們快速來解釋一下。(我保證這不會是一個真正可怕的數學——我不得不看一些可汗學院的視頻來寫這些部分,但我現在已經明白了)。

多項式是對任何有限數量的 cxk 形式的項求和的表達式。度數是最高的指數。例如,2 x3+6 x2+2 x-4 是三次多項式。您可以從位於該多項式上的任何 d+1 坐標重建任何 d 次多項式。

現在舉一個具體的例子。下面我們有四個數據組塊(d0 到 d3)。這些數據組塊可以映射到給定點的多項式 f (X) 的評估。例如,f (0) = d0。現在您找到了貫穿這些評估的最小次數多項式。由於這是四個組塊,我們可以找到三次多項式。然後,我們可以擴展此數據以添加四個沿同一多項式的評估(e0 到 e3)。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

請記住關鍵多項式屬性——我們可以從任意四個點重建它,而不僅僅是我們原來的四個數據組塊。

回到我們的 DAS。現在我們只需要確保任何 50% (4/8) 的糾刪碼數據可用。由此,我們可以重建整個區塊。

因此,攻擊者必須隱藏超過 50% 的區塊才能成功欺騙 DAS 節點,使其認為數據在不可用時可用。

在許多成功的隨機樣本之後,<50% 的可用概率非常小。如果我們成功地對糾刪碼數據進行了 30 次採樣,那麼 <50% 可用的概率是 2-30。

KZG 承諾

好的,所以我們做了一堆隨機樣本,它們都是可用的。但我們還有另一個問題——數據擦除編碼是否正確?否則,可能區塊生產者在擴展區塊時只是添加了 50% 的垃圾,而我們對廢話進行了採樣。在這種情況下,我們實際上將無法重建數據。

通常我們只是通過使用 Merkle 根來提交大量數據。這對於證明集合中包含某些數據是有效的。

但是,我們還需要知道所有原始數據和擴展數據都位於同一個低次多項式上。Merkle 根並不能證明這一點。所以如果你使用這個方案,你還需要欺詐證明,以防萬一做錯了。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

開發人員正從兩個方向著手:

  1. Celestia 正在走防欺詐路線。有人需要注意,如果區塊被錯誤地擦除編碼,他們將提交欺詐證明以提醒所有人。這需要標準的誠實少數假設和同步假設(即,除了有人向我發送欺詐證明之外,我還需要假設我已連接並將在一個有限的時間內收到它)。
  2. 以太坊和 Polygon Avail 正在走一條新路線——KZG 承諾(又名 Kate 承諾)。這消除了關於欺詐證明的誠實少數和同步安全假設(儘管它們仍然在那裡進行重建,我們將很快介紹)。

存在其他解決方案,但並未積極尋求。例如,您可以使用 ZK 證明。不幸的是,它們在計算上是不切實際的(目前)。然而,預計未來幾年它們會有所改善,因此以太坊可能會在未來轉向 STARK,因為 KZG 承諾不具有量子抗性。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

回到 KZG 承諾——這是一種多項式承諾方案。

承諾方案只是一種可證明承諾某些值的加密方式。最好的比喻是把一封信放在一個鎖着的盒子里,然後交給別人。這封信一旦進去就無法更改,但可以用鑰匙打開並證明。你提交的新就是承諾,鑰匙就是證明。

在我們的例子中,我們將所有原始數據和擴展數據映射到 X,Y 網格上,然後找到穿過它們的最小次數多項式(這個過程稱為拉格朗日插值)。這個多項式就是證明者將承諾的:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

以下是關鍵點:

  • 我們有一個“多項式”f (X)
  • 證明者對多項式做出“承諾”C (f)

這依賴於具有可信設置的橢圓曲線密碼學。有關其工作原理的更多詳細信息,請參閱 Bartek 的一個很棒的帖子

  • 對於該多項式的任何“評估”y = f (z),證明者可以計算“證明”π(f,z)
  • 給定承諾 C (f)、證明 π(f,z)、任何位置 z 以及多項式在 z 處的評估 y,驗證者可以確認確實 f (z) = y
  1. 解釋:證明者將這些片段提供給任何驗證者,然後驗證者可以確認某個點的評估(其中評估代表基礎數據)正確地位於承諾的多項式上
  2. 這證明原始數據被正確擴展,因為所有評估都位於相同的多項式上
  3. 請注意,驗證者不需要多項式 f (X)
  • 重要屬性 – 這具有 O (1) 承諾大小、O (1) 證明大小和 O (1) 驗證時間。即使對於證明者,承諾和證明生成也僅在 O (d) 上進行擴展,其中 d 是多項式的次數
  1. 解釋:即使 n(X 中的值的數量)增加(即,隨着數據集隨着更大的分片 blob 而增加)- 承諾和證明保持不變的大小,並且驗證需要持續的努力
  2. 承諾 C (f) 和證明 π(f,z) 都只是配對友好曲線上的一個橢圓曲線元素(這將使用 BL12-381)。在這種情況下,它們每個只有 48 個字節(非常小)
  3. 因此,證明者提交大量原始數據和擴展數據(表示多項式的多次評估)仍然只有 48 個字節,證明也只有 48 個字節
  4. TLDR–這是高度可擴展的

然後,KZG 根(多項式承諾)類似於 Merkle 根(這是一個向量承諾):

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

原始數據是在 f (0) 到 f (3) 位置處計算的多項式 f (X),然後我們通過計算 f (4) 到 f (7) 處的多項式來擴展它。所有點 f (0) 到 f (7) 都保證在同一個多項式上。

底線:D​​AS 允許我們檢查糾刪碼數據是否可用。KZG 的承諾向我們證明了原始數據得到了適當的擴展並承諾了所有這些。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

幹得好,這就是今天的代數知識。

KZG 承諾與欺詐證明

既然我們了解了 KZG 的工作原理,請退後一步比較這兩種方法。

KZG 的缺點——它不是后量子安全的,它需要一個可信的設置。這些並不令人擔憂。STARK 提供了一種后量子替代方案,而可信設置(開放參與)只需要一個誠實的參與者。

KZG 的優勢 – 比欺詐證明設置的延遲更低(儘管如前所述,GASPER 無論如何都不會具有快速確定性),並且它確保了正確的擦除編碼,而不會引入欺詐證明中固有的同步和誠實的少數假設。

然而,考慮到以太坊仍然會重新引入這些假設來進行區塊重建,所以你實際上並沒有刪除它們。DA 層總是需要為最初提供塊的場景進行規劃,但隨後節點需要相互通信以將其重新組合在一起。這種重建需要兩個假設:

  1. 您有足夠的節點(輕節點或全節點)對數據進行採樣,這樣它們就足以將它們重新組合在一起。這是一個相當弱且不可避免的誠實少數假設,因此不是一個大問題。
  2. 重新引入同步假設——節點需要能夠在一段時間內進行通信才能將其重新組合在一起。

以太坊驗證器在 PDS 中完全下載分片 blob,並且使用 DS,他們將只執行 DAS(下載分配的行和列)。Celestia 將要求驗證者下載整個區塊。

請注意,無論哪種情況,我們都需要同步假設來進行重建。如果該區塊僅部分可用,則完整節點必須與其他節點通信以將其重新組合在一起。

如果 Celestia 想要從要求驗證者下載全部數據轉變為只執行 DAS(儘管目前尚未計劃這種轉變),那麼 KZG 的延遲優勢就會顯現出來。然後,他們還需要實施 KZG 承諾——等待欺詐證明將意味着顯着增加區塊間隔,並且驗證者投票支持錯誤編碼區塊的風險會非常高。

我推薦以下內容以更深入地探索 KZG 承諾的工作方式:

  • 橢圓曲線密碼學(相對容易理解)入門‌
  • 探索橢圓曲線配對‌–Vitalik
  • KZG 多項式承諾‌–Dankrad
  • 受信任的設置如何工作?‌–Vitalik

協議內提議者-構建者分離

今天的共識節點(礦工)和合併后的(驗證者)扮演兩個角色。他們構建實際的區塊,然後將其提議給其他驗證它的共識節點。礦工通過在前一個區塊的基礎上進行“投票”,在合併之後,驗證者將直接對區塊的有效或無效進行投票。

PBS 將它們分開——它明確地創建了一個新的協議內構建者角色。專業的構建者將把區塊放在一起並競標提議者(驗證者)來選擇他們的區塊。這與 MEV 的中心化力量作鬥爭。

回想一下 Vitalik 的《終局之戰》一文——所有道路都通向中心化區塊生產,具有去信任和去中心化的驗證。PBS 對此進行了編纂。我們需要一個誠實的構建者來為網絡提供服務以提高活躍度和抗審查能力(需要兩個來實現有效的市場),但驗證者集需要誠實的多數。PBS 使提議者角色儘可能簡單地支持驗證者去中心化。

構建者收到優先費用小費以及他們可以提取的任何 MEV。在一個有效的市場中,有競爭力的構建者將競標到他們可以從區塊中提取的全部價值(減去他們的攤銷成本,如強大的硬件等)。所有價值都滲透到去中心化的驗證器集——正是我們想要的。

確切的 PBS 實現仍在討論中,但 two-slot PBS 可能如下所示:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠
  1. 構建者使用他們的出價承諾區塊頭
  2. 信標區塊提議者選擇獲勝的區塊頭和出價。即使構建者未能生產出 body,投標人也將無條件獲得中標
  3. 證明人委員會確認獲勝標頭
  4. 構建者公布獲勝的 body
  5. 獨立的證明人委員會選舉獲勝的機構(如果獲勝的構建者不同意,則投票決定它缺席)

提議者是使用標準 RANDAO 機制從驗證者集中選擇的。然後我們使用承諾 – 顯示(commit-reveal)方案,在委員會確認區塊頭之前,不會顯示完整的區塊 body。

commit-reveal 更有效(發送大約數百個完整的區塊 body 可能會壓倒 p2 p 層的帶寬),並且它還可以防止 MEV 竊取。如果構建者要提交他們的完整區塊,另一個構建者可以看到它,找出那個策略,合併它,並快速發布一個更好的區塊。此外,成熟的提議者可以檢測使用的 MEV 策略並複製它,而無需補償構建者。如果這種 MEV 竊取成為平衡,它將激勵合併構建者和提議者,因此我們使用 commit-reveal 來避免這種情況。

在提議者選出獲勝區塊頭后,委員會確認並固定在分叉選擇規則中。然後,獲勝的建造者發布他們獲勝的完整“構建者區塊”body。如果及時發布,下屆委員會將作證。如果他們未能及時發布,他們仍然向提議者支付全部出價(並失去所有 MEV 和費用)。這種無條件的支付消除了提議者信任構建者的需要。

這種“雙時隙(two-slot)”設計的缺點是延遲。合併后的區塊將是固定的 12 秒,所以如果我們不想引入任何新的假設,這裡我們需要 24 秒來獲得完整的區塊時間(兩個 12 秒的時隙)。每個時隙 8 秒(16 秒的出塊時間)似乎是一個安全的折衷方案,儘管研究正在進行中。

抗審查名單(crList)

不幸的是,PBS 賦予了構建者更高的審查交易能力。也許構建者只是不喜歡你,所以他們忽略了你的交易。也許他們的工作非常出色,以至於所有其他構建者都放棄了,或者他們只是因為他們真的不喜歡你而對區塊出價過高。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

crLists 對這種能力進行了檢查。確切的實現又是一個開放的設計空間,但“混合 PBS”似乎是最受歡迎的。提議者指定他們在內存池中看到的所有合格交易的列表,構建者將被強制包含它們(除非區塊已滿):

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠
  1. 提議者發布一個 crList 和 crList 摘要,其中包括所有符合條件的交易
  2. 構建者創建一個提議的區塊 body,然後提交一個競標,其中包括 crList 摘要的哈希,證明他們已經看到它
  3. 提議者接受中標構建者的出價和區塊頭(他們還沒有看到 body)
  4. 構建者發布他們的區塊並包含他們已包含來自 crList 的所有交易或該區塊已滿的證明。否則分叉選擇規則不會接受該塊
  5. 證明者檢查已發布的 body 的有效性

這裡仍有重要問題需要解決。例如,這裡的主導經濟策略是讓提議者提交一個空列表。只要出價最高,即使是審查構建者也能贏得拍賣。有一些想法可以解決這個問題和其他問題,但只是強調這裡的設計並不是一成不變的。

二維 KZG 方案

我們看到了 KZG 承諾如何讓我們承諾數據並證明它被正確擴展。但是,我簡化了以太坊的實際操作。它不會在單個 KZG 承諾中承諾所有數據——單個區塊將使用許多 KZG 承諾。

我們已經有一個專門的構建者,那麼為什麼不讓他們創造一個巨大的 KZG 承諾呢?問題是這需要一個強大的超級節點來重建。我們可以接受初始構建的超級節點要求,但我們需要避免這裡的重建假設。我們需要資源較少的實體來處理重建,並將其拆分為許多 KZG 承諾使這變得可行。考慮到手頭的數據量,重建甚至可能相當普遍,或者是本設計中的基本情況假設。

為了使重建更容易,每個區塊將包含在 m 個 KZG 承諾中編碼的 m 個分片 blob。天真地這樣做會導致大量的採樣——你會在每個分片 blob 上執行 DAS 以知道它都是可用的(m*k 個樣本,其中 k 是每個 blob 的樣本數)。

相反,以太坊將使用 2 D KZG 方案。我們再次使用 Reed-Solomon 代碼將 m 承諾擴展到 2 m 承諾:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

我們通過擴展與 0-255 位於相同多項式上的額外 KZG 承諾(此處為 256-511)使其成為 2 D 方案。現在我們只需對上表進行 DAS,以確保所有分片的數據可用性。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

≥75% 的數據可用的 2 D 採樣要求(與之前的 50% 相比)意味着我們做的固定樣本數量要多一些。在我提到簡單一維方案中 DAS 的 30 個樣本之前,但這將需要 75 個樣本來確保重建可用區塊的相同概率幾率。

分片 1.0(具有一維 KZG 承諾方案)只需要 30 個樣本,但如果您想檢查 1920 個樣本的完整 DA,則需要對 64 個分片進行採樣。每個樣本為 512 B,因此這需要:

(512 B x 64 分片 x 30 個樣本)/16 秒 = 60 KB/s 帶寬

實際上,驗證者只是在沒有單獨檢查所有分片的情況下被洗牌。

現在,使用 2 D KZG 承諾方案的組合區塊使得檢查完整 DA 變得微不足道。它只需要單個統一區塊的 75 個樣本:

(512 B x 1 塊 x 75 個樣本)/16 秒 = 2.5 KB/s 帶寬

Danksharding

PBS 最初的設計目的是削弱 MEV 在驗證器集上的集中力。然而,Dankrad 最近利用了這種設計,意識到它解鎖了一個更好的分片結構——DS。

DS 利用專門的構建者來創建信標鏈執行區塊和分片的更緊密集成。我們現在有一個構建者一起創建整個區塊,一個提議者和一個委員會。如果沒有 PBS,DS 將是不可行的——常規驗證者無法處理充滿 Rollup 數據 blob 的區塊的巨大帶寬:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

分片 1.0 包括 64 個獨立的委員會和提議者,因此每個分片都可能單獨不可用。這裡更緊密的集成使我們能夠一次性確保 DA。數據仍然在幕後“分片”,但從實際的角度來看,danksharding 開始感覺更像是大區塊,這很棒。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

Danksharding–誠實的多數驗證

驗證者證明數據可用如下:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

這依賴於誠實的大多數驗證者——作為一個單獨的驗證者,我的列和行可用並不足以讓我在統計上確信整個區塊可用。這取決於誠實的大多數人說它是。去中心化驗證很重要。

請注意,這與我們之前討論的 75 個隨機樣本不同。私人隨機抽樣是資源匱乏的個人能夠輕鬆檢查可用性的方式(例如,我可以運行 DAS 輕節點並知道該區塊可用)。但是,驗證者將繼續使用行和列方法來檢查可用性和引導區塊重建。

Danksharding——重構

只要單個行或列的 50% 可用,那麼採樣驗證器就可以輕鬆地對其進行完全重建。當他們重建行/列中丟失的任何區塊時,他們將這些區塊重新分配到正交線。這有助於其他驗證器根據需要從相交的行和列中重建任何丟失的區塊。

這裡重建可用區塊的安全假設是:

  1. 足夠多的節點來執行樣本請求,以便它們共同擁有足夠的數據來重建區塊
  2. 廣播各自區塊的節點之間的同步假設

那麼,多少節點就足夠了?粗略估計大約有 64,000 個個體實例(到目前為止,目前已超過 380,000 個)。這也是一個非常悲觀的計算,它假設由同一驗證器運行的節點中沒有交叉(這與節點被限制為 32 個 ETH 實例的情況相去甚遠)。如果您對超過 2 行和列進行採樣,則由於交叉,您可以集體檢索它們的幾率會增加。這開始以二次方的方式擴展——如果驗證者運行 10 或 100 個驗證者,則 64,000 個可能會減少幾個數量級。

如果在線驗證器的數量開始變得異常低,可以設置 DS 以自動減少分片數據 blob 計數。因此,安全假設將降低到安全水平。

Danksharding–私人隨機抽樣的惡意多數安全

我們看到 DS 驗證依賴於誠實的多數來證明區塊。作為個人,我無法通過僅下載幾行和幾列來向自己證明一個區塊可用。但是,私人隨機抽樣可以在不信任任何人的情況下給我這種保證。如前所述,這是節點查驗這 75 個隨機樣本的地方。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

DS 最初不會包含私有隨機抽樣,因為這在網絡方面是一個非常難以解決的問題(PSA:也許他們實際上可以在這裡使用你的幫助!)。

請注意,“私有”很重要,因為如果攻擊者對您進行了去匿名化,他們就能夠欺騙少量的採樣節點。他們可以只返回您請求的確切區塊並保留其餘部分。因此,您不會僅從自己的抽樣中知道所有數據都是可用的。

Danksharding–關鍵要點

除了是一個甜美的名字,DS 也非常令人興奮。它最終實現了以太坊統一結算和 DA 層的願景。Beacon 區塊和分片的這種緊密耦合本質上是假裝沒有被分片。

事實上,讓我們定義為什麼它甚至被認為是“分片”。“分片”的唯一殘餘就是驗證者不負責下載所有數據。而已。

所以如果你現在質疑這是否真的仍然是分片,你並沒有瘋。這種區別就是為什麼 PDS(我們將很快介紹)不被視為“分片”的原因(即使它的名稱中有“分片”,是的,我知道這很令人困惑)。PDS 要求每個驗證者完全下載所有分片 blob,以證明它們的可用性。然後 DS 引入了抽樣,因此各個驗證者只下載其中的一部分。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

幸運的是,最小分片意味着比分片 1.0 更簡單的設計(交付速度如此之快,對吧?)。簡化來講,包括:

  • 與分片 1.0 規範相比,DS 規範中的代碼可能少了數百行(客戶端少了數千行)
  • 沒有分片委員會基礎設施,委員會只需要在主鏈上投票
  • 沒有跟蹤單獨的分片 blob 確認,現在它們都在主鏈中得到確認,或者它們沒有

這樣做的一個很好的結果是數據的合併收費市場。由不同的提議者製作的具有不同區塊的分片 1.0 會分散這一點。

分片委員會的取消也加強了反賄賂。DS 驗證人每個 epoch 對整個區塊進行一次投票,因此數據立即得到整個驗證人集的 1/32 的確認(每個 epoch 32 個 slot)。分片 1.0 驗證者也在每個 epoch 投票一次,但每個分片都有自己的委員會被改組。因此,每個分片僅由驗證器集的 1/2048 確認(1/32 分為 64 個分片)。

如前所述,與 2 D KZG 承諾方案的組合區塊也使 DAS 更加高效。分片 1.0 需要 60 KB/s 的帶寬來檢查所有分片的完整 DA。DS 只需要 2.5 KB/s。

DS 還存在另一個令人興奮的可能性——ZK-rollups 和 L1 以太坊執行之間的同步調用。來自分片 blob 的事務可以立即確認並寫入 L1,因為一切都在同一個信標鏈區塊中生成。由於單獨的分片確認,分片 1.0 將消除這種可能性。這允許一個令人興奮的設計空間,這對於共享流動性(例如 dAMM‌)之類的東西可能非常有價值。

模塊化基礎層可以優雅地擴展——更多的去中心化會帶來更多的擴展。這與我們今天看到的根本不同。向 DA 層添加更多節點可以讓您安全地增加數據吞吐量(即,有更多的空間讓 rollup 存在於頂部)。

區塊鏈的可擴展性仍然存在限制,但我們可以將數量級提高到比我們今天看到的任何東西都要高。安全且可擴展的基礎層允許執行在它們之上激增。隨着時間的推移,數據存儲和帶寬的改進也將允許更高的數據吞吐量。

超越此處設想的 DA 吞吐量肯定是有可能的,但很難說這個最大值最終會在哪裡。沒有明確的紅線,而是一些假設會開始讓人感到不舒服的區域:

  • 數據存儲——這與 DA 與數據可檢索性有關。共識層的作用不是無限期地保證數據的可檢索性。它的作用是讓它在足夠長的時間內可用,以便任何關心下載它的人都可以,滿足我們的安全假設。然後它會被轉儲到任何地方——這很舒服,因為歷史是 N 信任假設中的 1,而且我們實際上並沒有在宏偉的計劃中談論那麼多數據。隨着吞吐量增加幾個數量級,這可能會在幾年後進入令人不安的領域。
  • 驗證者——DAS 需要足夠多的節點來共同重建區塊。否則,攻擊者可能會等待,只響應他們收到的查詢。如果提供的這些查詢不足以重建區塊,那麼攻擊者可以保留其餘的,我們就不走運了。為了安全地增加吞吐量,我們需要添加更多的 DAS 節點或增加它們的數據帶寬需求。這不是這裡討論的吞吐量的問題。但是,如果吞吐量比這種設計進一步增加幾個數量級,這可能會讓人感到不舒服。

請注意,構建者不是瓶頸。您需要為 32 MB 的數據快速生成 KZG 證明,因此需要 GPU 或相當強大的 CPU 以及至少 2.5 GBit/s 的帶寬。無論如何,這是一個專門的角色,對他們來說這是一個可以忽略不計的業務成本。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

Proto-danksharding (EIP-4844)

DS 很棒,但我們必須要有耐心。PDS 旨在幫助我們渡過難關——它在加快的時間線(針對上海硬分叉)上對 DS 實施必要的前向兼容步驟,以在此期間提供數量級的擴展。但是,它實際上還沒有實現數據分片(即驗證者需要單獨下載所有數據)。

今天的 Rollups 使用 L1“calldata”進行存儲,它永遠存在於鏈上。然而,Rollup 只需要一段合理的時間段內的 DA,這樣任何有興趣的人都有足夠的時間下載它。

EIP-4844 引入了新的支持 blob 的事務格式,Rollup 將用於未來的數據存儲。Blob 攜帶大量數據(~125 KB),它們比類似數量的 calldata 便宜得多。然後在一個月後從節點中刪除數據 blob,這會降低存儲需求。這是足夠的時間來滿足我們的 DA 安全假設。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

當前的以太坊區塊通常平均約為 90 KB(調用數據約為其中的 10 KB)。PDS 為 blob 解鎖了更多的 DA 帶寬(目標~1 MB 和最大~2 MB),因為它們會在一個月後被修剪。它們不會成為節點上的永久拖累。

一個 blob 是一個由 4096 個字段元素組成的向量,每個字段元素為 32 個字節。PDS 允許每個區塊最多 16 個,而 DS 將增加到 256 個。

PDS DA 帶寬 = 4096 x 32 x 16 = 每區塊 2 MiB,目標為 1 MiB

DS DA 帶寬 = 4096 x 32 x 256 = 每區塊 32 MiB,目標為 16 MiB

每一步都有數量級的擴展。PDS 仍然需要共識節點來完全下載數據,所以比較保守。DS 在驗證器之間分配存儲和傳播數據的負載。

以下是 EIP-4844 在通往 DS 的道路上引入的一些好東西:

  • 攜帶數據 blob 的事務格式
  • KZG 對 blob 的承諾
  • DS 所需的所有執行層邏輯
  • DS 所需的所有執行/共識交叉驗證邏輯
  • BeaconBlock 驗證和 DAS blob 之間的層分離
  • DS 所需的大部分 BeaconBlock 邏輯
  • blob 的自調整獨立 gas 價格(具有指數定價規則的多維 EIP-1559)

然後 DS 會進一步添加:

  • PBS
  • 數據採集​​系統
  • 2 D KZG 方案
  • 每個驗證者的託管證明或類似的協議內要求,以驗證每個區塊中分片數據的特定部分的可用性(可能大約一個月)

請注意,這些數據 blob 是作為執行鏈上的一種新事務類型引入的,但它們不會給執行端帶來額外的要求。EVM 僅查看附加到 blob 的承諾。使用 EIP-4844 進行的執行層更改也與 DS 向前兼容,並且在這方面不需要更多的更改。然後從 PDS 升級到 DS 只需要更改共識層。

數據 blob 由 PDS 中的共識客戶端完全下載。現在,在 Beacon 區塊體中引用了 blob,但未完全編碼。不是將全部內容嵌入正文中,而是單獨傳播 blob 的內容,作為“sidecar”。每個區塊有一個 blob sidecar,在 PDS 中完全下載,然後使用 DS 驗證器將在其上執行 DAS。

我們之前討論了如何使用 KZG 多項式承諾來提交 blob。然而,EIP-4844 並沒有直接使用 KZG,而是實現了我們實際使用的東西——它的版本化哈希。這是一個 0 x01 字節(代表這個版本),後跟 KZG 的 SHA256 哈希的最後 31 個字節。

我們這樣做是為了更容易實現 EVM 兼容性和前向兼容性:

  • EVM 兼容性–KZG 承諾是 48 字節,而 EVM 更自然地使用 32 字節值
  • 前向兼容性——如果我們從 KZG 切換到其他東西(STARKs 可用於抗量子),這些承諾可以繼續為 32 字節

PDS 最終創建了一個定製的數據層——數據 blob 將擁有自己獨特的費用市場,具有單獨的浮動 gas 價格和限制。因此,即使某個 NFT 項目在 L1 上出售一堆猴子土地,您的 Rollup 數據成本也不會上升(儘管證明結算成本會上升)。這承認今天任何 Rollup 的主要成本是將他們的數據發布到 L1(而不是證明)。

gas 費市場保持不變,數據 blob 被添加為新市場:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

blob 費用以 gas 收取,但它是基於其自己的 EIP-1559 機制的可變金額調整。每個區塊的長期平均 blob 數應等於目標。

您實際上有兩個并行運行的拍賣——一個用於計算,一個用於 DA。這是有效資源定價‌的巨大飛躍。

這裡有一些有趣的設計。例如,將當前的 gas 和 blob 定價機制從線性 EIP-1559 更改為一種新的指數 EIP-1559 機制可能是有意義的。當前的實現在實踐中並沒有平均到我們的目標區塊大小。今天,基本費用(basefee)沒有完全穩定,導致觀察到的每個區塊使用的平均 gas 平均超過目標約 3%。

第 II 部分:歷史&狀態管理

在這裡快速回顧一些基礎知識:

  • 歷史——鏈上發生的一切。您可以將其粘貼在硬盤上,因為它不需要快速訪問。從長遠來看,1 of N 誠實假設。
  • 狀態——所有當前賬戶餘額、智能合約等的快照。完整節點(當前)都需要這個來驗證交易。它對於 RAM 來說太大了,而硬盤驅動器又太慢了——它放在你的 SSD 里。高吞吐量區塊鏈膨脹了它們的狀態,遠遠超出了我們普通人在筆記本電腦上所能保存的範圍。如果日常用戶不能持有狀態,他們就無法完全驗證,那麼告別去中心化。

TLDR——這些東西變得非常大,所以如果你讓節點存儲 它們,就很難運行一個節點。如果運行一個節點太難,我們普通人不會這樣做。這很糟糕,所以我們需要確保不會發生這種情況。

Calldata Gas 成本降低與總 Calldata 限制 (EIP-4488)

PDS 是通向 DS 的重要墊腳石,它檢查了許多最終要求。在合理的時間跨度內實施 PDS 可以提前 DS 上的時間線。

更容易實現創可貼的是 EIP-4488。它不是那麼優雅,但它仍然解決了費用緊急情況。不幸的是,它沒有在實現 DS 的過程中實施步驟,因此以後仍然需要進行所有不可避免的更改。如果它開始感覺 PDS 會比我們想要的慢一點,那麼快速通過 EIP-4488(它只是幾行代碼更改)然後大約 6 個月之後實現 PDS 可能是有意義的。具體的時間表仍未確定。

EIP-4488 有兩個主要組成部分:

  • 將 calldata 成本從每字節 16 gas 降低到每字節 3 gas
  • 添加每個區塊 1 MB 調用數據的限制以及每個事務額外 300 字節(理論最大值約為 1.4 MB)

需要添加限制以防止出現最壞的情況——一個充滿 calldata 的區塊將達到 18 MB,這遠遠超出了以太坊的處理能力。EIP-4488 增加了以太坊的平均數據容量,但由於這個 calldata 限制(3000 萬 gas/每 calldata 字節 16 gas = 1.875 MB),它的突發數據容量實際上會略有下降。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

EIP-4488 的持續負載遠高於 PDS,因為這仍然是 calldata 與 blob,一個月後可以修剪的數據。EIP-4488 將顯着加速歷史增長,使其成為運行節點的瓶頸。即使 EIP-4444 與 EIP-4488 一起實施,這也只會在一年後刪除執行負載歷史。PDS 較低的持續負載顯然是可取的。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

在執行客戶端中綁定歷史數據 (EIP-4444)

EIP-4444 允許客戶端選擇在本地修剪超過一年的歷史數據(標題、正文和收據)。它要求客戶端停止在 p2 p 層上提供這些修剪過的歷史數據。修剪歷史允許客戶減少用戶的磁盤存儲需求(目前數百 GB 並且還在增長)。

這已經很重要了,但如果 EIP-4488 被實施(因為它顯着增長了歷史),這將基本上是強制性的。無論如何,希望這能在相對近期內完成。最終將需要某種形式的歷史到期,所以這是處理它的好時機。

鏈的完全同步需要歷史記錄,但驗證新區塊不需要它(這隻需要狀態)。因此,一旦客戶端同步到鏈的頂端,只有在通過 JSON-RPC 明確請求或對等方嘗試同步鏈時,才會檢索歷史數據。隨着 EIP-4444 的實施,我們需要為這些找到替代解決方案。

客戶端將無法像現在一樣使用 devp2p‌ 進行“完全同步”——他們將取而代之的是從弱主觀性檢查點“檢查點同步”,他們將其視為創世區塊。

請注意,弱主觀性不會是一個額外的假設——無論如何,它是向 PoS 轉變所固有的。由於遠程攻擊的可能性,這需要使用有效的弱主觀性檢查點進行同步。這裡的假設是客戶端不會從無效或舊的弱主觀性檢查點同步。該檢查點必須在我們開始修剪歷史數據的時期內(即此處為一年內),否則 p2 p 層將無法提供所需的數據。

隨着越來越多的客戶端採用輕量級同步策略,這也將減少網絡上的帶寬使用。

找回歷史數據

EIP-4444 在一年後修剪歷史數據聽起來不錯,而 PDS 修剪 blob 的速度更快(大約一個月後)。我們絕對需要這些,因為我們不能要求節點存儲所有這些並保持去中心化:

  • EIP-4488–長期可能包括每個時隙(slot)約 1 MB 每年增加約 2.5 TB 存儲
  • PDS–目標為每個時隙約 1 MB,每年增加約 2.5 TB 存儲
  • DS–目標為每個時隙約 16 MB,每年增加約 40 TB 存儲

但是這些數據去哪兒了?我們不再需要了嗎?是的,但請注意,丟失歷史數據對協議沒有風險——僅對單個應用程序而言。那麼,以太坊核心協議的工作不應該是永久維護所有達成共識的數據。

那麼,誰來存儲呢?以下是一些潛在的貢獻者:

  • 個人和機構志願者
  • 區塊瀏覽器(例如 etherscan.io)、API 提供者和其他數據服務
  • 像 TheGraph 這樣的第三方索引協議可以創建激勵市場,客戶可以在其中向服務器支付歷史數據以及 Merkle 證明
  • Portal Network 中的客戶端(目前正在開發中)可以存儲鏈歷史的隨機部分,Portal Network 會自動將數據請求定向到擁有它的節點
  • BitTorrent,例如。每天自動生成和分發一個 7 GB 的文件,其中包含來自區塊的 blob 數據
  • 特定於應用程序的協議(例如 Rollup)可以要求其節點存儲與其應用程序相關的歷史記錄部分

長期數據存儲問題是一個相對簡單的問題,因為它是我們之前討論過的 1 of N 信任假設。我們距離成為區塊鏈可擴展性的最終限制還有很多年。

弱無狀態

好的,所以我們已經很好地處理了歷史記錄管理,但是如何處理狀態呢?狀態問題實際上是目前提高以太坊 TPS 的主要瓶頸。

全節點獲取前狀態根,執行區塊中的所有事務,並檢查后狀態根是否與它們在區塊中提供的內容相匹配。要知道這些交易是否有效,他們目前需要手頭的狀態——驗證是有狀態的。

進入無狀態時代——我們將不需要狀態來發揮作用。以太坊正在爭取“弱無狀態”,這意味着驗證區塊不需要狀態,但構建區塊需要狀態。驗證變成了一個純函數——給我一個完全隔離的區塊,我可以告訴你它是否有效。基本上是這樣的:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

由於 PBS,構建者仍然需要狀態是可以接受的——無論如何,它們將是更加中心化的高資源實體。專註於去中心化驗證者。弱無狀態給構建者帶來了更多的工作,而驗證者的工作要少得多。這是一個偉大的權衡。

您通過見證(witness)實現了這種神奇的無狀態執行。這些是構建者將開始包含在每個區塊中的正確狀態訪問的證明。驗證一個區塊實際上並不需要整個狀態——您只需要該區塊中的交易讀取或影響的狀態。構建者將開始在給定區塊中包含受交易影響的狀態片段,並且他們將證明他們通過見證(witness)正確訪問了該狀態。

讓我們舉個例子。Alice 想向 Bob 發送 1 個 ETH。要使用此交易驗證區塊,我需要知道:

  • 交易前——Alice 有 1 ETH
  • Alice 的公鑰——所以我可以知道簽名是正確的
  • Alice 的隨機數——所以我可以知道交易是按正確的順序發送的
  • 執行交易后——Bob 多了 1 ETH,Alice 少了 1 ETH

在弱無狀態世界中,構建者將上述見證數據添加到區塊中並證明其準確性。驗證者接收區塊,執行它,並決定它是否有效。僅此而已!

以下是從驗證者的角度來看的含義:

  • 用於持有狀態的巨大 SSD 需求消失了——這是當今擴展的關鍵瓶頸。
  • 由於您現在還要下載見證數據和證明,因此帶寬要求會有所增加。這是 Merkle-Patricia 樹的瓶頸,但它是溫和的,而不是 Verkle 嘗試的瓶頸。
  • 您仍然執行事務以完全驗證。無狀態承認這不是目前擴展以太坊的瓶頸。

弱無狀態還允許以太坊放鬆對其執行吞吐量的自我限制,狀態膨脹不再是一個緊迫的問題。將 gas 限制提高約 3 倍可能是合理的。

無論如何,大多數用戶執行都將在 L2 上進行,但更高的 L1 吞吐量即使對他們來說仍然是有益的。Rollups 依靠以太坊進行 DA(發布到分片)和結算(需要 L1 執行)。隨着以太坊擴展其 DA 層,發布證明的攤銷成本可能會成為 Rollup 成本的更大份額(尤其是對於 ZK-rollups)。

Verkle Tries

我們掩蓋了這些見證的實際工作方式。以太坊目前使用 Merkle-Patricia 樹來表示狀態,但所需的 Merkle 證明對於這些見證來說太大而無法實現。

以太坊將轉向 Verkle 嘗試進行狀態存儲。Verkle 證明的效率要高得多,因此它們可以作為可行的見證來實現弱無狀態。

首先讓我們回顧一下 Merkle 樹的樣子。每筆交易都經過哈希處理——底部的這些哈希被稱為“葉子”。所有的哈希都稱為“節點”,它們是它們下面的兩個“子”節點的哈希。生成的最終哈希是“Merkle 根”。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

這是一個有用的數據結構,用於證明包含事務,而無需下載整個樹。例如,如果您想驗證交易 H4 是否包含在內,則只需要 Merkle 證明中的 H12、H3 和 H5678。我們有來自區塊頭的 H12345678。因此,輕客戶端可以向完整節點詢問這些哈希,然後根據樹中的路由將它們哈希在一起。如果結果是 H12345678,那麼我們已經成功證明 H4 在樹中。

但是,樹越深,到達底部的路徑就越長,因此您需要更多的項目來證明。因此,淺而寬的樹似乎有利於進行有效的證明。

問題是,如果你想通過在每個節點下添加更多子節點來使 Merkle 樹更寬,那將是非常低效的。您需要將所有兄弟姐妹哈希在一起才能爬上樹,因此您需要接收更多兄弟姐妹哈希以用於 Merkle 證明。這將使證明大小變得龐大。

這就是高效向量承諾的用武之地。請注意,Merkle 樹中使用的哈希實際上是向量承諾——它們只是有效地只對兩個元素進行承諾。所以我們想要向量承諾,我們不需要接收所有的兄弟姐妹來驗證它。一旦我們有了它,我們就可以使樹更寬並減少它們的深度。這就是我們獲得有效證明大小的方式——減少需要提供的信息量。

Verkle trie 類似於 Merkle 樹,但它使用有效的向量承諾(因此名稱為“Verkle”)而不是簡單的哈希來向其子節點承諾。所以基本思想是每個節點可以有很多孩子,但我不需要所有的孩子來驗證證明。無論寬度如何,它都是恆定尺寸的證明。

實際上,我們之前已經介紹了其中一種可能性的一個很好的例子——KZG 承諾也可以用作向量承諾。事實上,這就是以太坊開發者最初計劃在這裡使用的東西。此後,他們轉向 Pedersen 承諾履行類似的職責。這些將基於橢圓曲線(在本例中為 Bandersnatch),並且它們將分別提交 256 個值(比兩個好得多!)。

那麼為什麼不擁有儘可能寬的深度樹呢?這對於現在擁有超級緊湊證明的驗證者來說非常有用。但是有一個實際的權衡是證明者需要能夠計算這個證明,而且它越寬就越難。因此,這些 Verkle 嘗試將位於 256 個值寬的極端之間。

狀態到期

弱無狀態消除了驗證者的狀態膨脹約束,但狀態不會神奇地消失。交易成本是有限的,但它們通過增加狀態對網絡造成永久性稅收。狀態增長仍然是網絡的永久拖累。需要做一些事情來解決根本問題。

這就是狀態到期的地方。長時間處於非活動狀態(比如一兩年)的狀態甚至會從區塊構建者需要攜帶的東西中剔除。活躍用戶不會注意到任何事情,並且不再需要的無用狀態可以被丟棄。

如果您需要恢復過期狀態,您只需要顯示一個證明並重新激活它。這又回到了這裡的 1 of N 存儲假設。只要有人仍然擁有完整的歷史記錄(區塊瀏覽器等),你就可以從他們那裡得到你需要的東西。

弱無狀態會削弱基礎層對狀態到期的即時需求,但從長遠來看,特別是隨着 L1 吞吐量的增加,這是一件好事。對於高吞吐量匯總來說,這將是一個更有用的工具。L2 狀態將以更高數量級的速度增長,甚至會拖累高性能構建者。

第 III 部分——MEV

PBS 是安全實施 DS 所必需的,但請回想一下,它最初實際上是為了對抗 MEV 的中心化力量而設計的。你會注意到今天以太坊研究的一個反覆出現的趨勢——MEV 現在是加密經濟學的前沿和中心。

設計具有 MEV 的區塊鏈對於保持安全性和去中心化至關重要。基本的協議級方法是:

  1. 儘可能減少有害的 MEV(例如,單個 slot 確定性、單一秘密領導者選舉)
  2. 使其餘部分民主化(例如,MEV-Boost、PBS、MEV 平滑)

其餘的必須很容易被捕獲並在驗證者之間傳播。否則,由於無法與複雜的搜索者競爭,它將集中驗證器集。合併后 MEV 將在驗證者獎勵中所佔份額更高(質押發行遠低於給予礦工的通脹率)這一事實加劇了這種情況。不容忽視。

當今的 MEV 供應鏈

今天的事件順序如下所示:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

礦池在這裡扮演了建設者的角色。MEV 搜索者通過 Flashbot 將交易包(及其各自的出價)中繼到礦池。礦池運營商聚合一個完整的區塊並將區塊頭傳遞給各個礦工。礦工通過 PoW 在分叉選擇規則中賦予其權重來證明這一點。

Flashbots 的出現是為了防止整個堆棧的垂直整合——這將為審查制度和其他令人討厭的外部性打開大門。當 Flashbots 出現時,礦池已經開始與交易公司達成獨家交易以提取 MEV。相反,Flashbots 為他們提供了一種簡單的方法來匯總 MEV 出價並避免垂直整合(通過實施 MEV-geth)。

以太坊合併后,礦池將消失。我們希望為在家中能夠合理運行的驗證者節點打開大門。這需要找人擔任專門的構建角色。您的家庭驗證者節點在捕獲 MEV 方面可能不如擁有量化工資的對沖基金那麼好。如果不加以控制,如果普通人無法競爭,這將集中驗證者集。如果結構合理,該協議可以將 MEV 收入重定向到日常驗證者的質押收益。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

MEV-Boost

不幸的是,協議內的 PBS 根本無法在合併時準備好。Flashbots 再次提供了一個墊腳石解決方案 – MEV-Boost。

合併后的驗證者將默認將公共內存池交易直接接收到其執行客戶端中。他們可以將這些打包,交給共識客戶端,然後廣播到網絡。(如果您需要了解以太坊的共識和執行客戶端如何協同工作,我將在第四部分中介紹)。

但正如我們所討論的,您的驗證者不知道如何提取 MEV,因此 Flashbots 提供了另一種選擇。MEV-boost 將插入您的共識客戶端,允許您外包專門的區塊構建。重要的是,您仍然可以選擇使用自己的執行客戶端作為後備。

MEV 搜索者將繼續發揮他們今天的作用。他們將運行特定的策略(統計套利、原子套利、三明治等)並競標他們的捆綁交易包。然後,構建者將他們看到的所有捆綁包以及任何私人訂單流(例如,來自 Flashbots Protect)聚合到最佳完整區塊中。構建者僅通過運行到 MEV-Boost 的中繼將區塊頭傳遞給驗證者。Flashbots 打算運行中繼器和構建者,並計劃隨着時間的推移去中心化,但將其他構建者列入白名單可能會很慢。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

MEV-Boost 要求驗證者信任中繼者——共識客戶端收到區塊頭,對其進行簽名,然後才顯示區塊 body。中繼者的目的是向提議者證明 body 是有效且存在的,這樣驗證者就不必直接信任構建者。

當協議內 PBS 準備就緒時,它會在此期間編入 MEV-Boost 提供的內容。PBS 提供相同的權力分離,允許更容易的構建者去中心化,並消除了提議者信任任何人的需要。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

委員會驅動的 MEV 平滑

PBS 還為另一個很酷的想法打開了大門——委員會驅動的 MEV 平滑‌。

我們看到提取 MEV 的能力是驗證者集的中心化力量,但分佈也是如此。從一個區塊到另一個區塊的 MEV 獎勵的高度可變性促使彙集許多驗證者來平滑你的回報(正如我們今天在礦池中看到的那樣,儘管在這裡的程度較小)。

默認設置是向實際的區塊提議者提供構建者的全額付款。MEV 平滑將改為將支付分配給許多驗證者。驗證者委員會將檢查提議的區塊並證明這是否確實是出價最高的區塊。如果一切順利,則區塊繼續進行,獎勵將在委員會和提議者之間分配。

這也解決了另一個問題——帶外賄賂。例如,可以激勵提議者提交次優區塊並直接接受帶外賄賂以向委託人隱瞞他們的付款。此證明可以檢查提議者。

協議內 PBS 是實現 MEV 平滑的先決條件。您需要了解構建者市場和提交的明確投標。這裡有幾個開放的研究問題,但這是一個令人興奮的提議,對於確保去中心化的驗證者再次至關重要。

單 slot 交易最終性

快速最終性很棒。等待約 15 分鐘對於 UX 或跨鏈通信來說不是最佳選擇。更重要的是,這會造成一個 MEV 重組問題。

合併后的以太坊已經提供了比今天更強大的確認——成千上萬的驗證者證明每個區塊與礦工競爭並可能在相同區塊高度進行挖礦而無需投票。這將使重組極不可能。然而,這仍然不是真正的交易最終性。如果最後一個區塊有一些豐厚的 MEV,你可能只是誘使驗證者嘗試重組鏈並為自己竊取它。

單 slot 確定性消除了這種威脅。恢復一個最終確定的區塊至少需要三分之一的驗證者,並且他們的質押代幣會立即被削減(數百萬 ETH)。

我不會對這裡的潛在機制過於關注。單 slot 最終性在以太坊的路線圖中已經發展的很遙遠了,它是一個非常開放的設計空間。

在今天的共識協議中(沒有 slot 最終確定性),以太坊只需要 1/32 的驗證者來證明每個 slot(目前大約 380,000 個中的大約 12,000 個)。將這種投票擴展到在單個 slot 中使用 BLS 簽名聚合的完整驗證器集需要更多的工作。這會將數十萬張選票壓縮為一次驗證:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

Vitalik 在這裡‌分解了一些有趣的解決方案。

單一秘密領袖選舉(SSLE)

SSLE 試圖修補合併后我們將面臨的另一個 MEV 攻擊向量。

信標鏈驗證者列表和即將到來的領導者選擇列表是公開的,並且很容易對它們進行去匿名化並映射它們的 IP 地址。您可能可以在這裡看到問題。

更複雜的驗證者可以使用技巧來更好地隱藏自己,但小型驗證者特別容易受到 doxxed 和隨後的 DDOSd 的影響。這可以很容易地用於 MEV。

假設你是第 n 區塊的提議者,我是第 n+1 區塊的提議者。如果我知道你的 IP 地址,我可以廉價地對你進行 DDOS 攻擊,這樣你就會超時並且無法生成你的區塊。我現在可以捕獲我們 slot 的 MEV 並加倍我的獎勵。EIP-1559 的彈性區塊大小(每個區塊的最大 gas 是目標大小的兩倍)加劇了這種情況,因此我可以將本來應該是兩個區塊的交易塞進我現在兩倍長的單個區塊中。

家庭式驗證者節點可能會放棄驗證,因為他們被持續攻擊。SSLE 使得除了提議者之外沒有人知道何時輪到他們阻止這種攻擊。這不會在合併時生效,但希望它可以在不久之後實施。

第 IV 部分——合併

好吧,要清楚我之前是在開玩笑。我實際上認為(希望)以太坊合併發生得相對較快。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

我們都在談論這個話題,所以我覺得有義務至少給它一個簡短的介紹。

合併后的客戶端

今天,你運行一個可以處理所有事情的單體客戶端(例如,Go Ethereum、Nethermind 等)。具體來說,全節點同時執行以下操作:

  • 執行——執行區塊中的每筆交易以確保有效性。獲取前狀態根,執行所有操作,並檢查生成的后狀態根是否正確
  • 共識——驗證你是否在完成工作最多的最重(最高 PoW)鏈上(即中本聰共識)

它們是不可分割的,因為全節點不僅遵循最重的鏈,而且遵循最重的有效鏈。這就是為什麼它們是完整節點而不是輕節點。即使發生 51% 攻擊,全節點也不會接受無效交易。

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

信標鏈目前只運行共識來給 PoS 一個測試運行。不包含執行。最終將決定最終的總難度,此時當前的以太坊執行區塊將合併到信標鏈塊中,形成一條鏈:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

但是,全節點將在後台運行兩個獨立的客戶端,它們可以互操作:

  • 執行客戶端(又名“Eth1 客戶端”)——當前的 Eth 1.0 客戶端繼續處理執行。他們處理區塊,維護內存池,管理和同步狀態。PoW 部分被撕掉了。
  • 共識客戶端(又名“Eth2 客戶端”)——當前信標鏈客戶端繼續處理 PoS 共識。他們跟蹤鏈的頭部,gossip 並證明區塊,並獲得驗證者獎勵。

客戶端接收信標鏈區塊,執行客戶端運行交易,如果一切順利,共識客戶端將遵循該鏈。您將能夠混合和匹配您選擇的執行和共識客戶端,所有這些都將是可互操作的。將引入一個新的引擎 API 供客戶端相互通信:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

或者:

V 神推薦丨深入了解以太坊的分片路線圖,看這一份報告就足夠

合併后的共識

今天的中本聰共識很簡單。礦工創建新區塊,並將它們添加到觀察到的最重的有效鏈中。

合併后的以太坊轉向 GASPER——結合 Casper FFG(最終確定性工具)和 LMD GHOST(分叉選擇規則)以達成共識。這裡的 TLDR – 這是一種有利於共識的活躍性,而不是有利於安全性。

區別在於,有利於安全的共識算法(例如,Tendermint)在未能獲得必要數量的選票(此處設置為驗證者的 2/3)時停止。有利於鏈的活躍性(例如,PoW + 中本聰共識)無論如何都會繼續建立一個樂觀的分類帳,但如果沒有足夠的選票,它們就無法達到最終確定性。今天的比特幣和以太坊永遠不會最終確定——你只是假設在足夠數量的區塊之後不會發生重組。

然而,以太坊也將通過定期檢查點獲得足夠的票數來實現最終性。每個 32 ETH 實例都是一個單獨的驗證者,並且已經有超過 380,000 個信標鏈驗證者。Epochs 由 32 個 slot 組成,所有驗證者都分開並在給定 epoch 內證明一個 slot(意味着每個 slot 約 12,000 個證明)。分叉選擇規則 LMD Ghost 然後根據這些證明確定鏈的當前頭部。每個 slot(12 秒)添加一個新區塊,因此 epoch 為 6.4 分鐘。通常在兩個 epoch(也就是 64 個 slot,儘管最多可能需要 95 個)之後通過必要的投票來實現最終性。

結論

所有道路都通向中心化區塊生產、去中心化去信任區塊驗證和抗審查的終局。以太坊的路線圖瞄準了這個願景。

以太坊的目標是成為最終統一的 DA 和結算層——在底層大規模去中心化和安全,在頂層計算可擴展。這將密碼學假設濃縮為一個健壯的層。包含執行的統一模塊化基礎層還捕獲了 L1 設計中的最高價值——實現貨幣溢價和經濟安全,正如我最近介紹的(現在在這裡‌開源)。

我希望你能更清楚地了解以太坊研究是如何相互交織的。我們有這麼多動人的文章作品,非常前沿,而且有一個非常大的畫面環繞在你的腦海。

從根本上說,這一切都回到了那個單一的願景。以太坊為實現大規模可擴展性提供了一條引人注目的道路,同時珍視了我們在這個領域非常關心的那些價值觀。

特別感謝 Dankrad Feist 提供的評論和見解。

本文鏈接:https://www.8btc.com/article/6755560

轉載請註明文章出處

(0)
上一篇 2022-06-06 14:27
下一篇 2022-06-06 15:01

相关推荐