關鍵要點
以太坊是唯一建立可擴展的統一結算和數據可用層的主要協議;
Rollups 在利用以太坊安全性的同時擴展計算;
所有道路都通向中心化的區塊生產、去中心化&無須信任的區塊驗證和抗審查的終局;
諸如區塊提議者-構建者分離 (PBS) 和弱無狀態性 (weak statelessness) 等創新開啟了這種權力 (構建和驗證) 的分離,以在不犧牲安全性或去中心化的情況下實現可擴展性;
MEV 現在處于核心重要位置,以太坊計劃了許多設計來減輕 MEV 的危害,防止 MEV 的中心化化傾向;
Danksharding 結合了多個前沿研究途徑,從而為以太坊以 Rollup 為中心的路線圖提供可擴展的基礎層;
我預計 danksharding 將在我們有生之年實現。
引言
自從以太坊聯合創始人 Vitalik Buterin 表示今天出生的人有 50% -75% 的幾率能活到 3000 年,他希望能長生不老,我就一直對合并的時間持懷疑態度。但無論如何,讓我們看看展望一下以太坊雄心勃勃的路線圖吧。
這不是一篇速成文章。如果你想對以太坊雄心勃勃的路線圖有一個廣泛而細致的理解——請給我一個小時的時間,我將為你節省幾個月的工作。
以太坊的研究有很多值得關注的地方,但所有的一切最終都編織成一個總體目標——在不犧牲去中心化驗證的情況下擴展計算。
通過簡單的去中心化驗證,以太坊維持者非常高的安全性,而 Rollups 繼承了以太坊 L1 的安全性。以太坊還提供結算和數據可用性,允許 Rollups 實現擴容。這里的所有研究最終都是為了優化這兩個角色,同時使得驗證這條鏈變得比以往任何時候都更容易。
以下是一些縮略語,這些術語會在本文中出現 N 次:
DA – 數據可用性 (Data Availability)
DAS – 數據可用性抽樣 (Data Availability Sampling)
PBS – 提議者-構建者分離 (Proposer-builder Separation)
PDS – Proto-danksharding
DS – Danksharding
PoW – 工作量證明 (Proof of Work)
PoS – 權益證明 (Proof of Stake)
第 I 部分:通往 Danksharding 之路
希望你現在已經知曉了以太坊已經轉向了以 Rollup 為中心的路線圖。以太坊將不會再有執行分片 (execution shards),而是將針對需要大量數據的 Rollups 進行優化。這是通過數據分片 (data sharding) 來實現的。
以太坊共識層不會解釋分片數據,它的任務是確保數據是可用的。
在文本中,我將假設你熟悉一些基本概念,比如 Rollups、欺詐證明和 ZK 證明,以及 DA (數據可用性) 的重要性。
1)最初的數據分片設計:單獨的分片區塊提議者
這個小節描述的設計已經廢棄了,但它對于我們了解背景信息是有價值的。為了簡單起見,我將這種設計稱為“分片1.0”。
以太坊 64 個分片的每個分片區塊都有單獨的區塊提議者和委員會,他們通過隨機的方式從驗證者集中選出來被分配至各個分片鏈中。他們分別驗證自己所在的分片的數據的可用性。起初這不會是 DAS (數據可用性抽樣),而是依賴于每個分片的誠實大多數驗證者來完全下載該數據。
這種設計帶來了不必要的復雜性、更糟糕的用戶體驗和攻擊向量。在分片之間洗牌 (打亂) 驗證者是很棘手的。
如果不引入非常緊密的同步假設,就很難保證投票將在單個 slot 內完成。信標區塊的提議者需要收集所有獨立委員會的投票,而這可能會有延遲。
Danksharding (簡稱 DS) 則完全不同。驗證者執行 DAS (數據可用性抽樣) 以確認所有數據都是可用的 (不會再有單獨的分片委員會)。專門的區塊構建者 (builder) 會負責創建一個大區塊,該區塊會對信標區塊和所有的分片數據一起進行確認。因此,Proto-danksharding (簡稱 PDS) 對于 DS 保持去中心化是很有必要的 (因為構建這樣的大區塊是資源密集型的)。
2)數據可用性抽樣 (DAS)
Rollups 會發布大量的數據,但是我們不希望給節點帶來下載所有這些數據的負擔,因為這將意味著需要很高的資源,從而損害網絡節點的去中心化。
相反,DAS 允許節點 (甚至輕客戶端) 能夠在無須下載所有這些數據的情況下,輕松、安全地驗證這些數據的可用性。
簡單的解決方案:只是檢查每個區塊的一些隨機數據塊。如果檢查合格,節點就對該區塊進行簽名。但如果節點沒有檢查到那筆有關你將 ETH 發送給 Sifu 的交易,那么資金就不再安全了。
聰明的解決方案:首先對數據進行糾刪碼。使用 Reed-Solomon 代碼擴展該數據。這意味著數據被插值為一個多項式,然后我們在許多額外的地方對該多項式進行求值。這很難懂,所以讓我們來分析一下。
對那些忘記數學課的人來說,這是一堂快速的課。(我保證這不會是非常可怕的數學——我不得不看一些 Khan Academy 的視頻來寫這些部分,但我現在都弄懂了)。
多項式 (Polynomial) 是對任何有限數量的單項式進行求和的表達式。多項式的“次數”(degree) 是指多項式中次數最高的單項式的次數。例如,2ab+b-1 是一個由 2ab、b 和 -1 這三個單項式組成的多項式 ,我們把這三個單項式叫做該多項式的“項”,因此這個多項式就是一個“三項式”;且由于 2ab 這個單項式的次數最高 (次數為 2),故這個三項式是“二次三項式”。你可以從位于該多項式上的任何 d+1 坐標重建任何 d 次多項式。
現在舉一個具體的例子。下面我們有四個數據組塊(d0 到 d3)。這些數據組塊可以映射到給定點的多項式 f (X) 的求值。例如,f (0) = d0。現在你找到了貫穿這些求值的最小次數多項式。由于這是四個組塊,我們可以找到三次多項式。然后,我們可以擴展此數據以添加四個沿同一多項式的求值(e0 到 e3)。
記住多項式的關鍵屬性:我們可以從任意四個點重構它,而不僅僅是最初的四個數據塊。
回到我們的 DAS。現在我們只需要確保任意 50% (4/8) 糾刪碼數據是可用的。由此,我們可以重構整個區塊。
因此,攻擊者必須隱藏區塊的 >50% 數據,才能成功地欺騙 DAS 節點,以使節點認為數據是可用的 (但實際上是不可用的)。
在許多成功的隨機抽樣之后,<50% 的數據是可用的概率非常小。如果我們成功地對糾刪碼數據采樣 30 次,那么 <50% 可用的概率是 2-30。
3)KZG 承諾
好的,所以我們做了一堆隨機樣本,它們都是可用的。但我們還有另一個問題——數據擦除編碼是否正確?否則,可能區塊生產者在擴展區塊時只是添加了 50% 的垃圾,而我們對廢話進行了采樣。在這種情況下,我們實際上將無法重建數據。
Aave V3已部署至以太坊主網,將全面降低所有功能的Gas成本:據官方推特,Aave宣布已在以太坊主網部署Aave V3,新增功能及優化包括:高效模式:允許用戶在供應和借入穩定幣和流動性質押衍生產品(LSDs)等相關資產時提高資本效率;隔離模式:在保持協議的安全性的同時,允許更多資產在Aave上作為抵押品以隔離模式上市,隔離流動性風險;Gas優化:全面降低所有功能相關的Gas成本約20-25%。[2023/1/27 11:32:36]
通常我們只是通過使用 Merkle 根來提交大量數據。這對于證明集合中包含某些數據是有效的。
但是,我們還需要知道所有原始數據和擴展數據都位于同一個低次多項式上。Merkle 根并不能證明這一點。所以如果你使用這個方案,你還需要欺詐證明,以防萬一做錯了。
好的,所以我們做了一堆隨機樣本,它們都是可用的。但我們還有另一個問題 —— 數據擦除編碼是否正確?否則,可能區塊生產者在擴展區塊時只是添加了 50% 的垃圾,而我們對廢話進行了采樣。在這種情況下,我們實際上將無法重建數據。
通常我們只是通過使用 Merkle 根來提交大量數據。這對于證明集合中包含某些數據是有效的。
但是,我們還需要知道所有原始數據和擴展數據都位于同一個低次多項式上。Merkle 根并不能證明這一點。所以如果你使用這個方案,你還需要欺詐證明,以防萬一做錯了。
回到 KZG 承諾 —— 這是一種多項式承諾方案。
承諾方案只是一種可證明承諾某些值的加密方式。最好的比喻是把一封信放在一個鎖著的盒子里,然后交給別人。這封信一旦進去就無法更改,但可以用鑰匙打開并證明。你提交的新就是承諾,鑰匙就是證明。
在我們的例子中,我們將所有原始數據和擴展數據映射到 X,Y 網格上,然后找到穿過它們的最小次數多項式(這個過程稱為拉格朗日插值)。這個多項式就是證明者將承諾的:
以下是關鍵點:
我們有一個「多項式」f(X)
證明者對多項式做出「承諾」C (f)
這依賴于具有可信設置的橢圓曲線密碼學。有關其工作原理的更多詳細信息,請參閱 Bartek 的一個很棒的帖子
對于該多項式的任何「評估」y = f(z),證明者可以計算「證明」π(f,z)
給定承諾 C(f)、證明 π(f,z)、任何位置 z 以及多項式在 z 處的評估 y,驗證者可以確認確實 f (z) = y
解釋:證明者將這些片段提供給任何驗證者,然后驗證者可以確認某個點的評估(其中評估代表基礎數據)正確地位于承諾的多項式上
這證明原始數據被正確擴展,因為所有評估都位于相同的多項式上
請注意,驗證者不需要多項式 f (X)
重要屬性 - 這具有 O(1) 承諾大小、O(1) 證明大小和 O(1) 驗證時間。即使對于證明者,承諾和證明生成也僅在 O(d) 上進行擴展,其中 d 是多項式的次數
解釋:即使 n(X 中的值的數量)增加(即,隨著數據集隨著更大的分片 blob 而增加)- 承諾和證明保持不變的大小,并且驗證需要持續的努力
承諾 C(f) 和證明 π(f,z) 都只是配對友好曲線上的一個橢圓曲線元素(這將使用 BL12-381)。在這種情況下,它們每個只有 48 個字節(非常小)
因此,證明者提交大量原始數據和擴展數據(表示多項式的多次評估)仍然只有 48 個字節,證明也只有 48 個字節
TLDR–這是高度可擴展的
然后,KZG 根(多項式承諾)類似于 Merkle 根(這是一個向量承諾):
原始數據是在 f (0) 到 f(3) 位置處計算的多項式 f (X),然后我們通過計算 f (4) 到 f(7) 處的多項式來擴展它。所有點 f(0) 到 f(7) 都保證在同一個多項式上。
底線:DAS 允許我們檢查糾刪碼數據是否可用。KZG 的承諾向我們證明了原始數據得到了適當的擴展并承諾了所有這些。
干得好,這就是今天的代數知識。
4) KZG 承諾與欺詐證明
既然我們了解了 KZG 的工作原理,請退后一步比較這兩種方法。
KZG 的缺點 —— 它不是后量子安全的,它需要一個可信的設置。這些并不令人擔憂。STARK 提供了一種后量子替代方案,而可信設置(開放參與)只需要一個誠實的參與者。
KZG 的優勢 - 比欺詐證明設置的延遲更低(盡管如前所述,GASPER 無論如何都不會具有快速確定性),并且它確保了正確的擦除編碼,而不會引入欺詐證明中固有的同步和誠實的少數假設。
然而,考慮到以太坊仍然會重新引入這些假設來進行區塊重建,所以你實際上并沒有刪除它們。DA 層總是需要為最初提供塊的場景進行規劃,但隨后節點需要相互通信以將其重新組合在一起。這種重建需要兩個假設:
您有足夠的節點(輕節點或全節點)對數據進行采樣,這樣它們就足以將它們重新組合在一起。這是一個相當弱且不可避免的誠實少數假設,因此不是一個大問題。
重新引入同步假設 —— 節點需要能夠在一段時間內進行通信才能將其重新組合在一起。
以太坊驗證器在 PDS 中完全下載分片 blob,并且使用 DS,他們將只執行 DAS(下載分配的行和列)。Celestia 將要求驗證者下載整個區塊。
請注意,無論哪種情況,我們都需要同步假設來進行重建。如果該區塊僅部分可用,則完整節點必須與其他節點通信以將其重新組合在一起。
如果 Celestia 想要從要求驗證者下載全部數據轉變為只執行 DAS(盡管目前尚未計劃這種轉變),那么 KZG 的延遲優勢就會顯現出來。然后,他們還需要實施 KZG 承諾 —— 等待欺詐證明將意味著顯著增加區塊間隔,并且驗證者投票支持錯誤編碼區塊的風險會非常高。
我推薦以下內容以更深入地探索 KZG 承諾的工作方式:
橢圓曲線密碼學(相對容易理解)入門?
探索橢圓曲線配對?–Vitalik
KZG 多項式承諾?–Dankrad
受信任的設置如何工作??–Vitalik
5) 協議內提議者 - 構建者分離
今天的共識節點(礦工)和合并后的(驗證者)扮演兩個角色。他們構建實際的區塊,然后將其提議給其他驗證它的共識節點。礦工通過在前一個區塊的基礎上進行「投票」,在合并之后,驗證者將直接對區塊的有效或無效進行投票。
PBS 將它們分開 —— 它明確地創建了一個新的協議內構建者角色。專業的構建者將把區塊放在一起并競標提議者(驗證者)來選擇他們的區塊。這與 MEV 的中心化力量作斗爭。
回想一下 Vitalik 的《終局之戰》一文 —— 所有道路都通向中心化區塊生產,具有去信任和去中心化的驗證。PBS 對此進行了編纂。我們需要一個誠實的構建者來為網絡提供服務以提高活躍度和抗審查能力(需要兩個來實現有效的市場),但驗證者集需要誠實的多數。PBS 使提議者角色盡可能簡單地支持驗證者去中心化。
Artmarket 將以太坊和比特幣添加至多幣種 Artprice 數據庫:9月17日消息,全球藝術市場信息參考機構 Artmarket 將以太坊和比特幣添加到其多幣種 Artprice 數據庫中,以滿足客戶的需求。(prnewswire)[2022/9/17 7:02:41]
構建者收到優先費用小費以及他們可以提取的任何 MEV。在一個有效的市場中,有競爭力的構建者將競標到他們可以從區塊中提取的全部價值(減去他們的攤銷成本,如強大的硬件等)。所有價值都滲透到去中心化的驗證器集 —— 正是我們想要的。
確切的 PBS 實現仍在討論中,但 two-slot PBS 可能如下所示:
構建者使用他們的出價承諾區塊頭
信標區塊提議者選擇獲勝的區塊頭和出價。即使構建者未能生產出 body,投標人也將無條件獲得中標
證明人委員會確認獲勝標頭
構建者公布獲勝的 body
獨立的證明人委員會選舉獲勝的機構(如果獲勝的構建者不同意,則投票決定它缺席)
提議者是使用標準 RANDAO 機制從驗證者集中選擇的。然后我們使用承諾 - 顯示(commit-reveal)方案,在委員會確認區塊頭之前,不會顯示完整的區塊 body。
commit-reveal 更有效(發送大約數百個完整的區塊 body 可能會壓倒 p2 p 層的帶寬),并且它還可以防止 MEV 竊取。如果構建者要提交他們的完整區塊,另一個構建者可以看到它,找出那個策略,合并它,并快速發布一個更好的區塊。此外,成熟的提議者可以檢測使用的 MEV 策略并復制它,而無需補償構建者。如果這種 MEV 竊取成為平衡,它將激勵合并構建者和提議者,因此我們使用 commit-reveal 來避免這種情況。
在提議者選出獲勝區塊頭后,委員會確認并固定在分叉選擇規則中。然后,獲勝的建造者發布他們獲勝的完整「構建者區塊」body。如果及時發布,下屆委員會將作證。如果他們未能及時發布,他們仍然向提議者支付全部出價(并失去所有 MEV 和費用)。這種無條件的支付消除了提議者信任構建者的需要。
這種「雙時隙(two-slot)」設計的缺點是延遲。合并后的區塊將是固定的 12 秒,所以如果我們不想引入任何新的假設,這里我們需要 24 秒來獲得完整的區塊時間(兩個 12 秒的時隙)。每個時隙 8 秒(16 秒的出塊時間)似乎是一個安全的折衷方案,盡管研究正在進行中。
6) 抗審查名單 (crList)
不幸的是,PBS 賦予了構建者更高的審查交易能力。也許構建者只是不喜歡你,所以他們忽略了你的交易。也許他們的工作非常出色,以至于所有其他構建者都放棄了,或者他們只是因為他們真的不喜歡你而對區塊出價過高。
crLists 對這種能力進行了檢查。確切的實現又是一個開放的設計空間,但「混合 PBS」似乎是最受歡迎的。提議者指定他們在內存池中看到的所有合格交易的列表,構建者將被強制包含它們(除非區塊已滿):
提議者發布一個 crList 和 crList 摘要,其中包括所有符合條件的交易
構建者創建一個提議的區塊 body,然后提交一個競標,其中包括 crList 摘要的哈希,證明他們已經看到它
提議者接受中標構建者的出價和區塊頭(他們還沒有看到 body)
構建者發布他們的區塊并包含他們已包含來自 crList 的所有交易或該區塊已滿的證明。否則分叉選擇規則不會接受該塊
證明者檢查已發布的 body 的有效性
這里仍有重要問題需要解決。例如,這里的主導經濟策略是讓提議者提交一個空列表。只要出價最高,即使是審查構建者也能贏得拍賣。有一些想法可以解決這個問題和其他問題,但只是強調這里的設計并不是一成不變的。
7) 二維 KZG 方案
我們看到了 KZG 承諾如何讓我們承諾數據并證明它被正確擴展。但是,我簡化了以太坊的實際操作。它不會在單個 KZG 承諾中承諾所有數據 —— 單個區塊將使用許多 KZG 承諾。
我們已經有一個專門的構建者,那么為什么不讓他們創造一個巨大的 KZG 承諾呢?問題是這需要一個強大的超級節點來重建。我們可以接受初始構建的超級節點要求,但我們需要避免這里的重建假設。我們需要資源較少的實體來處理重建,并將其拆分為許多 KZG 承諾使這變得可行。考慮到手頭的數據量,重建甚至可能相當普遍,或者是本設計中的基本情況假設。
為了使重建更容易,每個區塊將包含在 m 個 KZG 承諾中編碼的 m 個分片 blob。天真地這樣做會導致大量的采樣 —— 你會在每個分片 blob 上執行 DAS 以知道它都是可用的(m*k 個樣本,其中 k 是每個 blob 的樣本數)。
相反,以太坊將使用 2 D KZG 方案。我們再次使用 Reed-Solomon 代碼將 m 承諾擴展到 2 m 承諾:
我們通過擴展與 0-255 位于相同多項式上的額外 KZG 承諾(此處為 256-511)使其成為 2 D 方案。現在我們只需對上表進行 DAS,以確保所有分片的數據可用性。
≥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 帶寬
8) Danksharding
PBS 最初的設計目的是削弱 MEV 在驗證器集上的集中力。然而,Dankrad 最近利用了這種設計,意識到它解鎖了一個更好的分片結構 ——DS。
DS 利用專門的構建者來創建信標鏈執行區塊和分片的更緊密集成。我們現在有一個構建者一起創建整個區塊,一個提議者和一個委員會。如果沒有 PBS,DS 將是不可行的 —— 常規驗證者無法處理充滿 Rollup 數據 blob 的區塊的巨大帶寬:
分片 1.0 包括 64 個獨立的委員會和提議者,因此每個分片都可能單獨不可用。這里更緊密的集成使我們能夠一次性確保 DA。數據仍然在幕后「分片」,但從實際的角度來看,danksharding 開始感覺更像是大區塊,這很棒。
聲音 | V神:以太坊2.0“0階段”所有事情基本已敲定,已實現客戶端互相通信:在以色列特拉維夫舉行的以太坊會議上,V神在Q&A環節中討論了整個以太坊生態系統的發展。關于以太坊2.0的第一個開發階段——0階段,V神表示,除了在安全審計過程中出現的問題之外,所有的事情都已“定稿”。已經實現客戶端互相通信,下一步就是要確保他們能夠維持一個規模龐大的公共網絡。下一步就是要確保他們能夠維持一個規模龐大的公共網絡,這可能是聚集了大量交易的幾十萬個驗證器。對話還涉及了對那些愿意將大量以太坊鎖倉在智能合約、以幫助驗證網絡上的交易的驗證器進行獎勵。 (Decrypt)[2019/9/16]
9) Danksharding–誠實的多數驗證
驗證者證明數據可用如下:
這依賴于誠實的大多數驗證者 —— 作為一個單獨的驗證者,我的列和行可用并不足以讓我在統計上確信整個區塊可用。這取決于誠實的大多數人說它是。去中心化驗證很重要。
請注意,這與我們之前討論的 75 個隨機樣本不同。私人隨機抽樣是資源匱乏的個人能夠輕松檢查可用性的方式(例如,我可以運行 DAS 輕節點并知道該區塊可用)。但是,驗證者將繼續使用行和列方法來檢查可用性和引導區塊重建。
10) Danksharding -- 重構
只要單個行或列的 50% 可用,那么采樣驗證器就可以輕松地對其進行完全重建。當他們重建行 / 列中丟失的任何區塊時,他們將這些區塊重新分配到正交線。這有助于其他驗證器根據需要從相交的行和列中重建任何丟失的區塊。
這里重建可用區塊的安全假設是:
足夠多的節點來執行樣本請求,以便它們共同擁有足夠的數據來重建區塊
廣播各自區塊的節點之間的同步假設
那么,多少節點就足夠了?粗略估計大約有 64,000 個個體實例(到目前為止,目前已超過 380,000 個)。這也是一個非常悲觀的計算,它假設由同一驗證器運行的節點中沒有交叉(這與節點被限制為 32 個 ETH 實例的情況相去甚遠)。
如果您對超過 2 行和列進行采樣,則由于交叉,您可以集體檢索它們的幾率會增加。這開始以二次方的方式擴展 —— 如果驗證者運行 10 或 100 個驗證者,則 64,000 個可能會減少幾個數量級。
如果在線驗證器的數量開始變得異常低,可以設置 DS 以自動減少分片數據 blob 計數。因此,安全假設將降低到安全水平。
11) Danksharding–私人隨機抽樣的惡意多數安全
我們看到 DS 驗證依賴于誠實的多數來證明區塊。作為個人,我無法通過僅下載幾行和幾列來向自己證明一個區塊可用。但是,私人隨機抽樣可以在不信任任何人的情況下給我這種保證。如前所述,這是節點查驗這 75 個隨機樣本的地方。
DS 最初不會包含私有隨機抽樣,因為這在網絡方面是一個非常難以解決的問題(PSA:也許他們實際上可以在這里使用你的幫助!)。
請注意,「私有」很重要,因為如果攻擊者對您進行了去匿名化,他們就能夠欺騙少量的采樣節點。他們可以只返回您請求的確切區塊并保留其余部分。因此,您不會僅從自己的抽樣中知道所有數據都是可用的。
12) Danksharding–關鍵要點
除了是一個甜美的名字,DS 也非常令人興奮。它最終實現了以太坊統一結算和 DA 層的愿景。Beacon 區塊和分片的這種緊密耦合本質上是假裝沒有被分片。
事實上,讓我們定義為什么它甚至被認為是「分片」。「分片」的唯一殘余就是驗證者不負責下載所有數據。而已。
所以如果你現在質疑這是否真的仍然是分片,你并沒有瘋。這種區別就是為什么 PDS(我們將很快介紹)不被視為「分片」的原因(即使它的名稱中有「分片」,是的,我知道這很令人困惑)。PDS 要求每個驗證者完全下載所有分片 blob,以證明它們的可用性。然后 DS 引入了抽樣,因此各個驗證者只下載其中的一部分。
幸運的是,最小分片意味著比分片 1.0 更簡單的設計(交付速度如此之快,對吧?)。簡化來講,包括:
與分片 1.0 規范相比,DS 規范中的代碼可能少了數百行(客戶端少了數千行)
沒有分片委員會基礎設施,委員會只需要在主鏈上投票
沒有跟蹤單獨的分片 blob 確認,現在它們都在主鏈中得到確認,或者它們沒有
這樣做的一個很好的結果是數據的合并收費市場。由不同的提議者制作的具有不同區塊的分片 1.0 會分散這一點。
分片委員會的取消也加強了反賄賂。DS 驗證人每個 epoch 對整個區塊進行一次投票,因此數據立即得到整個驗證人集的 1/32 的確認(每個 epoch 32 個 slot)。分片 1.0 驗證者也在每個 epoch 投票一次,但每個分片都有自己的委員會被改組。因此,每個分片僅由驗證器集的 1/2048 確認(1/32 分為 64 個分片)。
如前所述,與 2D 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 的帶寬。無論如何,這是一個專門的角色,對他們來說這是一個可以忽略不計的業務成本。
動態 | 以太坊游戲Dragonereum單筆最高轉賬Gas費用超過2ETH:據第三方大數據評級機構RatingToken監測數據顯示,昨日上線的以太坊游戲Dragonereum
截至發稿已發生5868筆交易,其中為獲取龍蛋ClaimEgg發生了998筆成功交易。該游戲平均 轉賬Gas費用是普通ETH轉賬費用的154.8倍,單筆最高轉賬Gas費用超過2ETH。回顧盛極一時的Fomo3D單筆最高轉賬Gas費用超過6 ETH,黑客成功利用Gas Limit的限制實施交易阻塞攻擊獲取獎金。RatingToken溫馨提示,警惕此類游戲Gas Limit的限制實施交易阻塞攻擊,期待以太坊L1或L2的可擴展性實現后能提高TPS,降低Gas費用,給以太坊上應用的發展帶來突破。如需要查看詳情,請點擊原文鏈接。[2018/11/30]
13) Proto-danksharding (EIP-4844)
DS 很棒,但我們必須要有耐心。PDS 旨在幫助我們渡過難關 —— 它在加快的時間線(針對上海硬分叉)上對 DS 實施必要的前向兼容步驟,以在此期間提供數量級的擴展。但是,它實際上還沒有實現數據分片(即驗證者需要單獨下載所有數據)。
今天的 Rollups 使用 L1「calldata」進行存儲,它永遠存在于鏈上。然而,Rollup 只需要一段合理的時間段內的 DA,這樣任何有興趣的人都有足夠的時間下載它。
EIP-4844 引入了新的支持 blob 的事務格式,Rollup 將用于未來的數據存儲。Blob 攜帶大量數據(~125 KB),它們比類似數量的 calldata 便宜得多。然后在一個月后從節點中刪除數據 blob,這會降低存儲需求。這是足夠的時間來滿足我們的 DA 安全假設。
當前的以太坊區塊通常平均約為 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 會進一步添加:
數據采集系統
每個驗證者的托管證明或類似的協議內要求,以驗證每個區塊中分片數據的特定部分的可用性(可能大約一個月)
請注意,這些數據 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 被添加為新市場:
blob 費用以 gas 收取,但它是基于其自己的 EIP-1559 機制的可變金額調整。每個區塊的長期平均 blob 數應等于目標。
您實際上有兩個并行運行的拍賣 —— 一個用于計算,一個用于 DA。這是有效資源定價?的巨大飛躍。
這里有一些有趣的設計。例如,將當前的 gas 和 blob 定價機制從線性 EIP-1559 更改為一種新的指數 EIP-1559 機制可能是有意義的。當前的實現在實踐中并沒有平均到我們的目標區塊大小。今天,基本費用(basefee)沒有完全穩定,導致觀察到的每個區塊使用的平均 gas 平均超過目標約 3%。
第 II 部分:歷史 & 狀態管理
在這里快速回顧一些基礎知識:
歷史 —— 鏈上發生的一切。您可以將其粘貼在硬盤上,因為它不需要快速訪問。從長遠來看,1 of N 誠實假設。
狀態 —— 所有當前賬戶余額、智能合約等的快照。完整節點(當前)都需要這個來驗證交易。它對于 RAM 來說太大了,而硬盤驅動器又太慢了 —— 它放在你的 SSD 里。高吞吐量區塊鏈膨脹了它們的狀態,遠遠超出了我們普通人在筆記本電腦上所能保存的范圍。如果日常用戶不能持有狀態,他們就無法完全驗證,那么告別去中心化。
TLDR—— 這些東西變得非常大,所以如果你讓節點存儲 它們,就很難運行一個節點。如果運行一個節點太難,我們普通人不會這樣做。這很糟糕,所以我們需要確保不會發生這種情況。
1) Calldata Gas 成本降低與總 Calldata 限制 (EIP-4488)
PDS 是通向 DS 的重要墊腳石,它檢查了許多最終要求。在合理的時間跨度內實施 PDS 可以提前 DS 上的時間線。
更容易實現創可貼的是 EIP-4488。它不是那么優雅,但它仍然解決了費用緊急情況。不幸的是,它沒有在實現 DS 的過程中實施步驟,因此以后仍然需要進行所有不可避免的更改。如果它開始感覺 PDS 會比我們想要的慢一點,那么快速通過 EIP-4488(它只是幾行代碼更改)然后大約 6 個月之后實現 PDS 可能是有意義的。具體的時間表仍未確定。
動態 | 以太坊通脹率上漲 超出V神預計:此前根據V神預計,到了今年11月,以太坊總量應該是95,912,556。而如今,據統計以太坊總量已經達到了101,481,699,比V神預計的還多出了5,569,143,也就是多出了約15億美元。V神曾表示,區塊5,500,000將會在一個多世紀以后,也就是2128年被挖出,到時候以太坊供應量應為101,212,556。然而,現在以太坊的區塊高度已經達到6,193,065。[2018/8/24]
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),它的突發數據容量實際上會略有下降。
EIP-4488 的持續負載遠高于 PDS,因為這仍然是 calldata 與 blob,一個月后可以修剪的數據。EIP-4488 將顯著加速歷史增長,使其成為運行節點的瓶頸。即使 EIP-4444 與 EIP-4488 一起實施,這也只會在一年后刪除執行負載歷史。PDS 較低的持續負載顯然是可取的。
2) 在執行客戶端中綁定歷史數據 (EIP-4444)
EIP-4444 允許客戶端選擇在本地修剪超過一年的歷史數據(標題、正文和收據)。它要求客戶端停止在 p2 p 層上提供這些修剪過的歷史數據。修剪歷史允許客戶減少用戶的磁盤存儲需求(目前數百 GB 并且還在增長)。
這已經很重要了,但如果 EIP-4488 被實施(因為它顯著增長了歷史),這將基本上是強制性的。無論如何,希望這能在相對近期內完成。最終將需要某種形式的歷史到期,所以這是處理它的好時機。
鏈的完全同步需要歷史記錄,但驗證新區塊不需要它(這只需要狀態)。因此,一旦客戶端同步到鏈的頂端,只有在通過 JSON-RPC 明確請求或對等方嘗試同步鏈時,才會檢索歷史數據。隨著 EIP-4444 的實施,我們需要為這些找到替代解決方案。
客戶端將無法像現在一樣使用 devp2p 進行「完全同步」—— 他們將取而代之的是從弱主觀性檢查點「檢查點同步」,他們將其視為創世區塊。
請注意,弱主觀性不會是一個額外的假設 —— 無論如何,它是向 PoS 轉變所固有的。由于遠程攻擊的可能性,這需要使用有效的弱主觀性檢查點進行同步。這里的假設是客戶端不會從無效或舊的弱主觀性檢查點同步。該檢查點必須在我們開始修剪歷史數據的時期內(即此處為一年內),否則 p2 p 層將無法提供所需的數據。
隨著越來越多的客戶端采用輕量級同步策略,這也將減少網絡上的帶寬使用。
3) 找回歷史數據
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 信任假設。我們距離成為區塊鏈可擴展性的最終限制還有很多年。
4) 弱無狀態
好的,所以我們已經很好地處理了歷史記錄管理,但是如何處理狀態呢?狀態問題實際上是目前提高以太坊 TPS 的主要瓶頸。
全節點獲取前狀態根,執行區塊中的所有事務,并檢查后狀態根是否與它們在區塊中提供的內容相匹配。要知道這些交易是否有效,他們目前需要手頭的狀態 —— 驗證是有狀態的。
進入無狀態時代 —— 我們將不需要狀態來發揮作用。以太坊正在爭取「弱無狀態」,這意味著驗證區塊不需要狀態,但構建區塊需要狀態。驗證變成了一個純函數 —— 給我一個完全隔離的區塊,我可以告訴你它是否有效。基本上是這樣的:
由于 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)。
5) Verkle Tries
我們掩蓋了這些見證的實際工作方式。以太坊目前使用 Merkle-Patricia 樹來表示狀態,但所需的 Merkle 證明對于這些見證來說太大而無法實現。
以太坊將轉向 Verkle 嘗試進行狀態存儲。Verkle 證明的效率要高得多,因此它們可以作為可行的見證來實現弱無狀態。
首先讓我們回顧一下 Merkle 樹的樣子。每筆交易都經過哈希處理 —— 底部的這些哈希被稱為「葉子」。所有的哈希都稱為「節點」,它們是它們下面的兩個「子」節點的哈希。生成的最終哈希是「Merkle 根」。
這是一個有用的數據結構,用于證明包含事務,而無需下載整個樹。例如,如果您想驗證交易 H4 是否包含在內,則只需要 Merkle 證明中的 H12、H3 和 H5678。我們有來自區塊頭的 H12345678。因此,輕客戶端可以向完整節點詢問這些哈希,然后根據樹中的路由將它們哈希在一起。如果結果是 H12345678,那么我們已經成功證明 H4 在樹中。
但是,樹越深,到達底部的路徑就越長,因此您需要更多的項目來證明。因此,淺而寬的樹似乎有利于進行有效的證明。
問題是,如果你想通過在每個節點下添加更多子節點來使 Merkle 樹更寬,那將是非常低效的。您需要將所有兄弟姐妹哈希在一起才能爬上樹,因此您需要接收更多兄弟姐妹哈希以用于 Merkle 證明。這將使證明大小變得龐大。
這就是高效向量承諾的用武之地。請注意,Merkle 樹中使用的哈希實際上是向量承諾 —— 它們只是有效地只對兩個元素進行承諾。所以我們想要向量承諾,我們不需要接收所有的兄弟姐妹來驗證它。一旦我們有了它,我們就可以使樹更寬并減少它們的深度。這就是我們獲得有效證明大小的方式 —— 減少需要提供的信息量。
Verkle trie 類似于 Merkle 樹,但它使用有效的向量承諾(因此名稱為「Verkle」)而不是簡單的哈希來向其子節點承諾。所以基本思想是每個節點可以有很多孩子,但我不需要所有的孩子來驗證證明。無論寬度如何,它都是恒定尺寸的證明。
實際上,我們之前已經介紹了其中一種可能性的一個很好的例子 ——KZG 承諾也可以用作向量承諾。事實上,這就是以太坊開發者最初計劃在這里使用的東西。此后,他們轉向 Pedersen 承諾履行類似的職責。這些將基于橢圓曲線(在本例中為 Bandersnatch),并且它們將分別提交 256 個值(比兩個好得多!)。
那么為什么不擁有盡可能寬的深度樹呢?這對于現在擁有超級緊湊證明的驗證者來說非常有用。但是有一個實際的權衡是證明者需要能夠計算這個證明,而且它越寬就越難。因此,這些 Verkle 嘗試將位于 256 個值寬的極端之間。
6) 狀態到期
弱無狀態消除了驗證者的狀態膨脹約束,但狀態不會神奇地消失。交易成本是有限的,但它們通過增加狀態對網絡造成永久性稅收。狀態增長仍然是網絡的永久拖累。需要做一些事情來解決根本問題。
這就是狀態到期的地方。長時間處于非活動狀態(比如一兩年)的狀態甚至會從區塊構建者需要攜帶的東西中剔除。活躍用戶不會注意到任何事情,并且不再需要的無用狀態可以被丟棄。
如果您需要恢復過期狀態,您只需要顯示一個證明并重新激活它。這又回到了這里的 1 of N 存儲假設。只要有人仍然擁有完整的歷史記錄(區塊瀏覽器等),你就可以從他們那里得到你需要的東西。
弱無狀態會削弱基礎層對狀態到期的即時需求,但從長遠來看,特別是隨著 L1 吞吐量的增加,這是一件好事。對于高吞吐量匯總來說,這將是一個更有用的工具。L2 狀態將以更高數量級的速度增長,甚至會拖累高性能構建者。
第 III 部分--MEV
PBS 是安全實施 DS 所必需的,但請回想一下,它最初實際上是為了對抗 MEV 的中心化力量而設計的。你會注意到今天以太坊研究的一個反復出現的趨勢 ——MEV 現在是加密經濟學的前沿和中心。
設計具有 MEV 的區塊鏈對于保持安全性和去中心化至關重要。基本的協議級方法是:
盡可能減少有害的 MEV(例如,單個 slot 確定性、單一秘密領導者選舉)
使其余部分民主化(例如,MEV-Boost、PBS、MEV 平滑)
其余的必須很容易被捕獲并在驗證者之間傳播。否則,由于無法與復雜的搜索者競爭,它將集中驗證器集。合并后 MEV 將在驗證者獎勵中所占份額更高(質押發行遠低于給予礦工的通脹率)這一事實加劇了這種情況。不容忽視。
1) 當今的 MEV 供應鏈
今天的事件順序如下所示:
礦池在這里扮演了建設者的角色。MEV 搜索者通過 Flashbot 將交易包(及其各自的出價)中繼到礦池。礦池運營商聚合一個完整的區塊并將區塊頭傳遞給各個礦工。礦工通過 PoW 在分叉選擇規則中賦予其權重來證明這一點。
Flashbots 的出現是為了防止整個堆棧的垂直整合 —— 這將為審查制度和其他令人討厭的外部性打開大門。當 Flashbots 出現時,礦池已經開始與交易公司達成獨家交易以提取 MEV。相反,Flashbots 為他們提供了一種簡單的方法來匯總 MEV 出價并避免垂直整合(通過實施 MEV-geth)。
以太坊合并后,礦池將消失。我們希望為在家中能夠合理運行的驗證者節點打開大門。這需要找人擔任專門的構建角色。您的家庭驗證者節點在捕獲 MEV 方面可能不如擁有量化工資的對沖基金那么好。如果不加以控制,如果普通人無法競爭,這將集中驗證者集。如果結構合理,該協議可以將 MEV 收入重定向到日常驗證者的質押收益。
2) MEV-Boost
不幸的是,協議內的 PBS 根本無法在合并時準備好。Flashbots 再次提供了一個墊腳石解決方案 - MEV-Boost。
合并后的驗證者將默認將公共內存池交易直接接收到其執行客戶端中。他們可以將這些打包,交給共識客戶端,然后廣播到網絡。(如果您需要了解以太坊的共識和執行客戶端如何協同工作,我將在第四部分中介紹)。
但正如我們所討論的,您的驗證者不知道如何提取 MEV,因此 Flashbots 提供了另一種選擇。MEV-boost 將插入您的共識客戶端,允許您外包專門的區塊構建。重要的是,您仍然可以選擇使用自己的執行客戶端作為后備。
MEV 搜索者將繼續發揮他們今天的作用。他們將運行特定的策略(統計套利、原子套利、三明治等)并競標他們的捆綁交易包。然后,構建者將他們看到的所有捆綁包以及任何私人訂單流(例如,來自 Flashbots Protect)聚合到最佳完整區塊中。構建者僅通過運行到 MEV-Boost 的中繼將區塊頭傳遞給驗證者。Flashbots 打算運行中繼器和構建者,并計劃隨著時間的推移去中心化,但將其他構建者列入白名單可能會很慢。
MEV-Boost 要求驗證者信任中繼者 —— 共識客戶端收到區塊頭,對其進行簽名,然后才顯示區塊 body。中繼者的目的是向提議者證明 body 是有效且存在的,這樣驗證者就不必直接信任構建者。
當協議內 PBS 準備就緒時,它會在此期間編入 MEV-Boost 提供的內容。PBS 提供相同的權力分離,允許更容易的構建者去中心化,并消除了提議者信任任何人的需要。
3) 委員會驅動的 MEV 平滑
PBS 還為另一個很酷的想法打開了大門 ——?委員會驅動的 MEV 平滑?。
我們看到提取 MEV 的能力是驗證者集的中心化力量,但分布也是如此。從一個區塊到另一個區塊的 MEV 獎勵的高度可變性促使匯集許多驗證者來平滑你的回報(正如我們今天在礦池中看到的那樣,盡管在這里的程度較小)。
默認設置是向實際的區塊提議者提供構建者的全額付款。MEV 平滑將改為將支付分配給許多驗證者。驗證者委員會將檢查提議的區塊并證明這是否確實是出價最高的區塊。如果一切順利,則區塊繼續進行,獎勵將在委員會和提議者之間分配。
這也解決了另一個問題 —— 帶外賄賂。例如,可以激勵提議者提交次優區塊并直接接受帶外賄賂以向委托人隱瞞他們的付款。此證明可以檢查提議者。
協議內 PBS 是實現 MEV 平滑的先決條件。您需要了解構建者市場和提交的明確投標。這里有幾個開放的研究問題,但這是一個令人興奮的提議,對于確保去中心化的驗證者再次至關重要。
4) 單 slot 交易最終性
快速最終性很棒。等待約 15 分鐘對于 UX 或跨鏈通信來說不是最佳選擇。更重要的是,這會造成一個 MEV 重組問題。
合并后的以太坊已經提供了比今天更強大的確認 —— 成千上萬的驗證者證明每個區塊與礦工競爭并可能在相同區塊高度進行挖礦而無需投票。這將使重組極不可能。然而,這仍然不是真正的交易最終性。如果最后一個區塊有一些豐厚的 MEV,你可能只是誘使驗證者嘗試重組鏈并為自己竊取它。
單 slot 確定性消除了這種威脅。恢復一個最終確定的區塊至少需要三分之一的驗證者,并且他們的質押代幣會立即被削減(數百萬 ETH)。
我不會對這里的潛在機制過于關注。單 slot 最終性在以太坊的路線圖中已經發展的很遙遠了,它是一個非常開放的設計空間。
在今天的共識協議中(沒有 slot 最終確定性),以太坊只需要 1/32 的驗證者來證明每個 slot(目前大約 380,000 個中的大約 12,000 個)。將這種投票擴展到在單個 slot 中使用 BLS 簽名聚合的完整驗證器集需要更多的工作。這會將數十萬張選票壓縮為一次驗證:
Vitalik 在這里?分解了一些有趣的解決方案。
5) 單一秘密領袖選舉(SSLE)
SSLE 試圖修補合并后我們將面臨的另一個 MEV 攻擊向量。
信標鏈驗證者列表和即將到來的領導者選擇列表是公開的,并且很容易對它們進行去匿名化并映射它們的 IP 地址。您可能可以在這里看到問題。
更復雜的驗證者可以使用技巧來更好地隱藏自己,但小型驗證者特別容易受到 doxxed 和隨后的 DDOSd 的影響。這可以很容易地用于 MEV。
假設你是第 n 區塊的提議者,我是第 n+1 區塊的提議者。如果我知道你的 IP 地址,我可以廉價地對你進行 DDOS 攻擊,這樣你就會超時并且無法生成你的區塊。我現在可以捕獲我們 slot 的 MEV 并加倍我的獎勵。EIP-1559 的彈性區塊大小(每個區塊的最大 gas 是目標大小的兩倍)加劇了這種情況,因此我可以將本來應該是兩個區塊的交易塞進我現在兩倍長的單個區塊中。
家庭式驗證者節點可能會放棄驗證,因為他們被持續攻擊。SSLE 使得除了提議者之外沒有人知道何時輪到他們阻止這種攻擊。這不會在合并時生效,但希望它可以在不久之后實施。
Part IV – 合并
好吧,要清楚我之前是在開玩笑。我實際上認為(希望)以太坊合并發生得相對較快。
我們都在談論這個話題,所以我覺得有義務至少給它一個簡短的介紹。
1) 合并后的客戶端
今天,你運行一個可以處理所有事情的單體客戶端(例如,Go Ethereum、Nethermind 等)。具體來說,全節點同時執行以下操作:
執行 —— 執行區塊中的每筆交易以確保有效性。獲取前狀態根,執行所有操作,并檢查生成的后狀態根是否正確
共識 —— 驗證你是否在完成工作最多的最重(最高 PoW)鏈上(即中本聰共識)
它們是不可分割的,因為全節點不僅遵循最重的鏈,而且遵循最重的有效鏈。這就是為什么它們是完整節點而不是輕節點。即使發生 51% 攻擊,全節點也不會接受無效交易。
信標鏈目前只運行共識來給 PoS 一個測試運行。不包含執行。最終將決定最終的總難度,此時當前的以太坊執行區塊將合并到信標鏈塊中,形成一條鏈:
但是,全節點將在后臺運行兩個獨立的客戶端,它們可以互操作:
執行客戶端(又名「Eth1 客戶端」)—— 當前的 Eth 1.0 客戶端繼續處理執行。他們處理區塊,維護內存池,管理和同步狀態。PoW 部分被撕掉了。
共識客戶端(又名「Eth2 客戶端」)—— 當前信標鏈客戶端繼續處理 PoS 共識。他們跟蹤鏈的頭部,gossip 并證明區塊,并獲得驗證者獎勵。
客戶端接收信標鏈區塊,執行客戶端運行交易,如果一切順利,共識客戶端將遵循該鏈。您將能夠混合和匹配您選擇的執行和共識客戶端,所有這些都將是可互操作的。將引入一個新的引擎 API 供客戶端相互通信:
或者:
2) 合并后的共識
今天的中本聰共識很簡單。礦工創建新區塊,并將它們添加到觀察到的最重的有效鏈中。
合并后的以太坊轉向 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 設計中的最高價值 —— 實現貨幣溢價和經濟安全,正如我最近介紹的(現在在這里?開源)。
我希望你能更清楚地了解以太坊研究是如何相互交織的。我們有這么多動人的文章作品,非常前沿,而且有一個非常大的畫面環繞在你的腦海。
從根本上說,這一切都回到了那個單一的愿景。以太坊為實現大規模可擴展性提供了一條引人注目的道路,同時珍視了我們在這個領域非常關心的那些價值觀。
今天的研究主題是 stETH/ETH,其交易對流動性正在耗盡。眾所周知, stETH 是 ETH 在 Lido 上的質押版本,其用意在于保護 ETH 在合并后的安全性.
1900/1/1 0:00:002021年是新技術的爆發年:腦機接口技術、區塊鏈和非同質化代幣(NFT)、擴展現實技術(XR)等相關前沿加速發展,一個基于信任機制的、連接虛擬世界與現實世界的數字經濟發展新互聯網時代逐漸顯現.
1900/1/1 0:00:00市場依舊無聊,現在留給加密社區的是真正“為了技術”的人——或者只是像我一樣頑固的人。由于沒有牛市騙子和炒作的人,現在的討論往往集中在技術上.
1900/1/1 0:00:00元宇宙整體技術發展不僅需要底層硬件的支持,同樣也需要上層應用和算法的突破,隨著應用技術的迭代和算法的優化,現階段元宇宙已初步具備游戲、娛樂、教育、生產、社交、創作等現實功能.
1900/1/1 0:00:00Web3真正闖入大眾視野還是因為頂級VC和科技巨頭的激進押注和口水戰,就像先前在社交媒體上爆火的元宇宙.
1900/1/1 0:00:00總部位于洛杉磯的增強現實(AR)初創公司 Jadu 完成 3600 萬美元 A 輪融資,將用于構建一個游戲平臺,讓玩家可以通過其?NFT化身在現實世界中漫游.
1900/1/1 0:00:00