基於執行層記憶體池的理論Blob命中率
這項工作是與我在ProbeLab的同事合作,並得到以太坊基金會的支援。該報告旨在分析共識客戶端在查詢其執行層客戶端關於提議的信標塊中包含的Blob交易時可以預期的理論Blob命中率。
非常感謝以太坊基金會網路團隊和EthPandaOps團隊提供的寶貴反饋。
動機
以太坊正在透過PeerDAS尋求提高Blob吞吐量,這是一個有希望的步驟,可以在不要求每個節點自行下載和處理所有資料的情況下顯著增加Blob數量。雖然這對可擴充套件性很有幫助,但為本地構建塊的驗證者帶來了新的挑戰。這些本地構建者仍然需要在4秒的塊傳播視窗內廣播他們引用的所有Blob,在頻寬限制下這並不總是可行的。
為了減輕這種負擔,提出了分散式區塊構建的概念。這種方法允許本地驗證者包含他們已經知道的任何Blob交易,假設網路中的其他節點也可能看到這些Blob。不是透過GossipSub重新廣播整個Blob集,而是依靠網路來填補空白。當節點發現一個Blob交易被包含在塊中,而它本地也持有該Blob(透過對執行層的engine_getBlobs RPC呼叫驗證),它可以承擔發起GossipSub廣播的責任,從而有效地減輕原始塊提議者的負擔。
為了評估這種協作式Blob分發在實踐中是否可行,我們旨在量化在塊提議時刻Blob交易的理論可用性。這項研究將研究記憶體池趨勢和Blob交易可見性,以瞭解分散式區塊構建是否能切實支援更高的Blob數量,而不會使本地驗證者負擔過重。
總結
- 假設美國和澳大利亞代表網路中連線性最好和最差的地區(就網路延遲而言),我們發現公共記憶體池中的
99%的Blob交易在首次和最後一次看到之間的延遲為1秒內,都出現在這兩個地點的記憶體池中。 - 總的來說,我們的結果顯示,在提議的Blob交易中:
14.5%在塊到達前未在公共記憶體池中出現,81.91%的Blob交易不僅是公開的,而且在時隙開始前就已到達,- 只有
4.12%的Blob交易在時隙開始後才在公共記憶體池中出現。
- 這些數字表明,至少在理論上,只要公共Blob交易保持當前速率,分散式區塊構建就應該能正常工作。
- 分散式區塊構建的潛在最佳化:本地構建者可以按照記憶體池到達的相反順序開始透過GossipSub廣播Blob側車,這將確保人們不太可能知道的Blob與需要它們的塊一起共享。
14.76%的提議的 blob 交易來自"私有來源"(*),其他85.78%來自公共記憶體池16.28%的公共 blob 交易從未被包含在後續的信標區塊有效載荷中81.91%的提議的 blob 交易在被包含的時段開始之前已在公共記憶體池中被看到,只有4.12%是之後出現的(其餘為私有)
注意:(*)因為我們需要定義所請求資料的日期,我們認為的"私有"交易可能之前已被記憶體池看到,但由於落在請求時間之前,我們無法獲取(這是基於 Xatu 查詢引數能獲得的最佳結果)。這可能最終在識別"私有交易"時產生誤報。
注意:圖中顯示的交易百分比是相對於其"父"集合的總體代表性。
常見問題
"無效"交易會怎樣?
在以太坊中,只要交易還在記憶體池中且尚未上鍊,就可以被撤銷或替換。透過提交一個相同隨機數但手續費更高的新交易,可以覆蓋原交易。這同樣適用於 blob 交易 - 只要隨機數保持不變,它們就可以被更新。
我們認為圖中標記為"無效"的交易屬於這一類別,而非任何形式的審查結果。
"私有交易"會怎樣?
(非常感謝 @pop 對此事的意見。)在以太坊中使用私有記憶體池很常見 - 作為抵禦第三方 MEV 提取的對策,以實現更快的包含,或simply為了在被包含之前保持交易私密。(關於更多內容,請參見 @nero_eth 的 帖子)。
然而,blob 交易的性質與通用交易非常不同。它們主要由二層網路用於提交其操作的證明或資料 blob - 對於大多數網路來說,這些只是任意位元組。這降低了保持私密或遮蔽 MEV 的動機。
我們的研究表明,在general情況下,網路依賴公共記憶體池來廣播這些交易,至少在絕大多數情況下是如此。儘管如此,大約 15% 的 blob 交易似乎源自私有記憶體池,其中 Taiko(ZK-rollup)是主要貢獻者(參考圖表)。
結論
- 研究表明,目前網路處理的主要是公共 blob 交易,節點在區塊到達之前就已知曉這些交易。
- 以當前公共 blob 交易率和它們進入記憶體池的時間來看,分散式區塊構建等解決方案可以更快地處理和傳播更多的 blob。
- 這也意味著網路正在分配資源傳播冗餘資訊,因為大多數提議的 blob 交易首先在執行層記憶體池中傳播,然後在共識層的 gossipsub 主題中重新廣播。
- 不可避免地,這可能導致大型 blob 交易消費者進行一些資源削減,因為他們可以只將 blob 提交到私有記憶體池或構建者中,將這些 blob 的傳播委託給他們,僅在釋出區塊時進行。
- 儘管這對網路有利,因為意味著有更多頻寬可用(節點不必下載和傳播相同的資訊兩次),但這可能為 MEV 構建者帶來一些中心化風險。





