EIP-8077:隨機數間隙模擬報告
執行摘要
本報告展示了蒙特卡羅模擬的結果,該模擬分析了分片 blob 內存池環境中nonce 間隙的出現頻率。當來自同一發送方的連續 blob 交易(類型 3)被分配到同一槽位內的不同分片時,就會出現 nonce 間隙,這可能會導致區塊提議者遇到交易排序問題。
主要發現:在隨機分片分配的情況下,相當一部分 Blob 事務(最壞情況下高達約 36%)會受到 nonce 間隔的影響。其頻率取決於分片數量和事務在發送方之間的分佈偏斜程度。這凸顯了改進事務公告機制的必要性,正如 EIP-8077 中所提出的。
1. 動機:支持 EIP-8077
1.1 範圍:Blob 事務和內存池分片
本分析僅關注 EIP-4844 中引入的第 3 類事務(blob 事務) 。我們特別關注blob 內存池的分片,而不是常規事務內存池的分片,原因如下:
- Blob 大小:每個 blob 為 128KB,遠大於常規事務(通常 < 1KB)。
- 帶寬消耗:Blob 傳播主導網絡帶寬使用
- 可擴展性壓力:隨著 L2 內存使用量的增加,對 blob 存儲的需求也隨之增加,這使得內存池分片變得至關重要。
- 發送方集中:Blob 交易主要來自 L2 序列器(Base、 Optimism、 ArbitrumETC),導致發送方分佈高度偏斜。
對 blob 內存池進行分片允許節點訂閱部分 blob,從而在保持網絡連接的同時降低帶寬需求。然而,這引入了 nonce 間隙問題,本研究對此進行了量化。
1.2 問題
EIP-8077提議擴展以太坊的 devp2p 協議,使其在交易公告中包含發送方地址和 nonce 信息。本仿真研究提供了量化證據,說明了這項改進的必要性。
在分片 blob 內存池中,來自同一發送方(例如 L2 序列器)的 blob 交易可能分佈在不同的分片中,或者到達時間不同。當區塊提議者收到 blob 交易時,他們需要:
- 根據每個發送方的隨機數正確排序交易。
- 識別可能導致交易暫時無法計入的 nonce 值缺口
- 優先獲取填補空白的交易,而不是獲取創建新的交易。
如果公告中沒有發送者和隨機數信息,節點必須:
- 盲目獲取交易信息,存在 nonce 值缺失的風險
- 使用低效的試錯法來填補空白
- 維護大型交易哈希緩存
- 錯失按源地址選擇性獲取數據的機會
1.3 這項研究的重要性
該模擬量化了實際條件下nonce 差距問題的規模:
- 在高偏斜、高分片場景下,高達 36% 的交易可能受到 nonce 值缺失的影響。
- 偏度對間隙頻率有顯著影響——擁有主導發送者(例如 Base、 Optimism、 Arbitrum等主要 L2 序列器)的網絡面臨更高的間隙率。
- 同時段分析側重於提案者關注的重點——單個區塊建設週期內的空檔期。
這些研究結果表明,隨著以太坊規模的擴大(更多分片、更高吞吐量),智能交易獲取變得至關重要。EIP-8077 的元數據使節點能夠根據信息做出明智的交易獲取決策,從而減少帶寬浪費並提高內存池的一致性。
1.4 對 EIP-8077 的主要影響
| 尋找 | 對 EIP-8077 的影響 |
|---|---|
| 高達 36% 的差距率 | 很大一部分blob事務在沒有智能獲取的情況下受到影響 |
| 偏度很重要 | 高容量 L2 音序器(Base、 Optimism、 Arbitrum)受到的影響尤為嚴重 |
| 同槽間隙很常見 | 提案者需要實時隨機數信息以高效構建區塊。 |
| 碎片越多,縫隙就越多 | 隨著 blob 內存池分片的增加,問題會更加嚴重。 |
2. 仿真參數
2.1 可配置參數
| 範圍 | 價值 | 描述 |
|---|---|---|
| 插槽數量 | 216,000 | 30 天的老虎機 |
| AVG_TX_PER_SLOT | 14 | 每個交易槽的目標平均交易量 |
| 每個插槽最大發送次數 | 21 | 每個槽位最大交易量(鏈容量) |
| NUM_SENDERS | 100 | 唯一發件人數量 |
2.2 衍生值
| 指標 | 價值 |
|---|---|
| 模擬期 | 30天 |
| 每小時槽位 | 300 |
| 每小時最大交易量 | 6,300 |
| 交易總額(約) | 約300萬 |
2.3 分片配置
我們測試了六種分片配置:
| 配置 | 碎片數量 |
|---|---|
| 1 | 1(基線) |
| 2 | 2 |
| 3 | 4 |
| 4 | 8 |
| 5 | 16 |
| 6 | 32 |
2.4 偏度配置
使用指數衰減函數P(i) = exp(-λ * i)對六種發送者分佈模式進行建模:
| 偏度水平 | 衰減率(λ) | 描述 |
|---|---|---|
| 非常高 | 0.15 | 過度集中於少數幾個發件人(例如,像 Base、 Optimism這樣的主要 L2 發件人) |
| 高的 | 0.10 | 高濃度(例如,多個活躍的L2測序器) |
| 中高 | 0.07 | 中高濃度 |
| 中低 | 0.04 | 中低濃度 |
| 低的 | 0.02 | 輕微濃度 |
| 制服 | 0.00 | 所有發送者的概率均等 |
3. 方法論
3.1 交易隨時間分佈
交易在整個模擬期間以隨機、非週期性的模式分佈,以模擬真實的網絡活動:
- 隨機基準噪聲:每個槽位都以圍繞目標平均值的隨機交易率開始。
- 隨機爆發:200 次隨機活動爆發,持續時間(50-2000 個槽位)和強度(1.2 倍-2.0 倍)各不相同。
- 隨機平靜期:100 個隨機的低活動期,持續時間(100-1500 個時段)和強度(0.3 倍-0.7 倍)各不相同。
- 容量上限:所有插槽的發送次數上限為 MAX_TX_PER_SLOT
圖 1:30 天模擬期內的交易率,顯示隨機的爆發和低谷(沒有人工週期)。
3.2 發件人分佈
發送者i發送交易的概率服從指數分佈:
P (sender = i) = exp (-λ * i) / Σ exp (-λ * j)其中λ是控制偏度的衰減率。
圖 2:概率分佈圖,顯示不同偏度水平下,不同發送方之間的交易頻率如何變化。
圖 3:每種分發類型的每個發送者的絕對交易數。
3.3 同發件人交易距離
nonce 間隔頻率的一個重要因素是同一發送方在同一時隙內進行多筆交易的頻率。這取決於分佈的偏度。
圖 4:來自同一發送方的連續交易之間的時隙距離分佈。分佈越偏斜,距離越短(相同時隙的交易對越多)。
3.4 分片分配
每筆交易都會被隨機均勻地分配到一個分片中:
shard = random.randint( 0 , num_shards - 1 )這模擬了分片分配與發送者身份無關的場景。
3.5 隨機數間隙測量
關鍵設計決策:我們僅統計同一時隙內連續發生的同一發送方事務之間的 nonce 間隔。這是因為:
- 不同的槽位是由不同的提案者建造的
- 提議者只關心其自身區塊內的 nonce 間隙。
- 橫向槽縫與積木搭建無關
我們衡量的指標是:
Nonce Gap Frequency = (Shard Switches in Same-Slot Pairs) / (Total Transactions)這表示所有交易中涉及同一槽位 nonce 間隙的百分比。
4. 結果
4.1 Nonce 間隙頻率熱圖
圖 5:熱圖顯示所有分片和傾斜配置中的 nonce 間隙頻率(佔總交易量的百分比)。
4.2 數值結果
| 碎片 | 非常高 | 高的 | 中高 | 中低 | 低的 | 制服 |
|---|---|---|---|---|---|---|
| 1 | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% | 0.0% |
| 2 | 18.6% | 13.7% | 10.8% | 6.9% | 4.6% | 3.6% |
| 4 | 27.6% | 21.1% | 16.1% | 10.5% | 7.0% | 5.5% |
| 8 | 32.3% | 24.4% | 19.0% | 12.2% | 8.1% | 6.4% |
| 16 | 34.6% | 26.0% | 19.8% | 12.8% | 8.8% | 6.7% |
| 32 | 36.0% | 27.2% | 20.9% | 13.5% | 9.1% | 6.9% |
4.3 關鍵模式
- 垂直模式(更多碎片) :增加碎片數量會增加間隙頻率,但收益遞減。
- 水平模式(偏度較高) :偏度越高,間隙頻率顯著增加。
- 最壞情況:極高的偏斜度 + 32 個分片 = 約 36% 的交易受到影響
- 最佳情況:均勻分佈 + 2 個分片 = 約 3.6% 的交易受到影響
5. 分析
5.1 為什麼偏度很重要
與我們最初的假設不同,偏度對 nonce 間隙頻率有顯著影響。這是因為:
- 分佈不均導致交易集中在少數發送方手中。
- 集中發送者擁有更多相同時隙的連續配對。
- 更多相同槽位配對 = 更多出現 nonce 間隙的機會
在均勻分佈的情況下,blob 交易分散在 100 個發送者之間,因此來自同一發送者的同一時隙連續交易對很少見。在高度偏斜的情況下(反映出網絡由像 Base 這樣的大型 L2 序列器主導),少數主導發送者會產生大量同一時隙連續的交易對,每對交易對有 (N-1)/N 的概率是間隙。
5.2 為什麼這支持 EIP-8077
| 觀察 | EIP-8077 福利 |
|---|---|
| 高容量 L2 音序器會造成更多空隙 | 節點可以優先獲取主要 L2 的完整 nonce 序列 |
| 同槽間隙會影響積木搭建 | 提案者需要立即提供 nonce 信息來構建有效的區塊。 |
| 發送方之間的間隔頻率各不相同 | 按發件人地址進行選擇性獲取變得很有價值 |
| 高達 36% 的 blob 交易受到影響 | 智能獲取可以顯著提高效率。 |
5.3 對不同網絡條件的影響
| 設想 | 差距率 | EIP-8077 值 |
|---|---|---|
| L2 主導型(高偏度,多碎片) | 27-36% | 關鍵——主要L2序列器需要優先處理 |
| 混合型 L2 生態系統(高偏斜度,少量分片) | 14-19% | 高 - 多個 L2 需要一致的排序。 |
| 多樣化的數據塊發送者(低偏度) | 4-9% | 適中——仍然有利於提高效率 |
| 單碎片 | 0% | 低 - 無分片意味著沒有間隙 |
6. 結論
6.1 主要發現
Nonce 間隙是一個重大問題:在高偏斜、高分片場景下,高達 36% 的交易可能會受到影響。
偏斜是一個主要因素:以數據塊發送器(如 Base、 Optimism、 Arbitrum等主要 L2 序列器)為主的網絡,其數據間隙率遠高於交易分佈均勻的網絡。
分片加劇了這個問題:分片越多,間隙就越多,每個相同槽位對的概率為 (N-1)/N。
同時段分析至關重要:關注提案者關心的問題(其區塊構建窗口內的空白),可以提供可操作的見解。
6.2 支持 EIP-8077
該模擬結果為 EIP-8077 提供了強有力的定量支持:
- 問題確實存在:相當一部分交易受到 nonce 值缺失的影響。
- 這個問題具有可擴展性:隨著以太坊增加分片/吞吐量,問題會變得更加嚴重。
- 該解決方案具有針對性:發送方/隨機數元數據可實現智能獲取
- 其益處顯而易見:節點可以減少帶寬浪費並提高區塊構建效率。
6.3 建議
- 採用 EIP-8077為節點提供智能 blob 事務獲取所需的元數據
- 在獲取數據時,優先考慮主要的 L2 測序器,以維護高容量 blob 發送器的完整 nonce 序列。
- 考慮將發送方感知分片分配作為一種補充策略,以減少協議層面的差距。
7. 未來工作
- 模擬 EIP-8077 元數據對獲取效率的影響
- 根據發送者/隨機數信息,對不同的獲取策略進行建模
- 分析以太坊主網網的真實交易模式以進行偏斜校準
- 考慮動態分片重新平衡場景
- 研究與其他擴展方案(彙總、數據可用性抽樣)的交互作用
附錄:代碼結構
該仿真在EIP-8077/simu.py中實現,包含以下組件:
| 功能 | 目的 |
|---|---|
get_sender_distribution() | 生成用於選擇發送者的概率分佈 |
generate_transaction_rate() | 創建隨機的、非週期性的交易模式 |
simulate_nonce_gaps() | 主要仿真功能(同槽分析) |
plot_distributions() | 可視化發送者概率分佈 |
plot_transactions_per_sender() | 顯示絕對交易次數。 |
plot_transactions_over_time() | 顯示時間突發性(柱狀圖,每小時) |
plot_sender_distance_boxplot() | 顯示同一發件人交易距離的分佈情況 |
可配置參數(位於EIP-8077/simu.py頂部):
NUM_SLOTS = 216000 # 30 days worth of slots AVG_TX_PER_SLOT = 14 # Target average transactions per slot MAX_TX_PER_SLOT = 21 # Maximum transactions per slot NUM_SENDERS = 100 # Number of unique senders依賴項:numpy、matplotlib、random







