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







