本地打包者的 blob 数量旋钮:EIP-7872 与带宽自限 图 1
本地打包者的 blob 数量旋钮:EIP-7872 与带宽自限 · 图 1

以太坊的区块生产并不是”谁想装多少就装多少”:对用 MEV-boost 一类外部构建者的验证者来说,装什么由构建者决定;对自己出块的节点来说,装什么由本地打包逻辑决定。EIP-7872 处理的是后一种场景里一个非常具体的运维问题:本地打包者应该被允许自己设定每个区块最多带多少个 blob。这条 2025 年 1 月创建、目前处于 Review 阶段的提案把改动写得只有几行,但牵涉的是 blob 经济与节点稳健性之间的一条真实裂缝。

问题形状:贪多则失语

blob 是 EIP-4844 引入的大宗数据载体,给 Layer2 rollup 用。协议的默认逻辑是:本地打包者会把内存池里能找到的 blob 都装进区块,直到顶到协议允许的上限。这个默认在带宽充足的机器上没问题,但提案点出了一个尴尬:如果一个打包者带宽偏低,装了太多 blob,区块本身连同 blob 可能来不及在网络里传开——出块方自己都证明不了数据的可得性,网络就会拒绝这个块。结果是双输:blob 提交方没有入账,打包方丢掉了这个-slot 的收入。多装不但无益,反而可能颗粒无收。

本地打包者的 blob 数量旋钮:EIP-7872 与带宽自限 图 2
本地打包者的 blob 数量旋钮:EIP-7872 与带宽自限 · 图 2

规范只有三步

提案要求的实现很小:在区块打包者的配置里增加一个参数 USER_CONFIGURED_MAX_BLOBS_PER_BLOCK;出块时取”协议上限(MAX_BLOB_GAS_PER_BLOCK 换算的 blob 数)“与”用户配置值”两者的较小者;如果这个较小值算出来是零,则强制设成一,避免整块一个 blob 都不带导致的病态状态;然后按这个数决定装多少个 blob。默认行为也交代了:配置项可以默认取当前分叉的协议最大值——也就是说,不改配置的节点行为与今天完全一致,这是一条纯增量的选择退出通道,而不是新的强制规则。

为什么这是一个 Meta 类提案

在 EIP 的类型划分里,EIP-7872 标的是 Meta 类型。原因值得展开:真正的 blob 规则(每块 blob 数上限、目标数、价格机制)在 EIP-4844 及其后续里;共识层的取值语义、blob 的 gas 折算同样在别处已成文。本提案只给打包侧增加一个”客户端自身配置”的钩子,作为对整个 blob 路线图的一个补充说明页。这类轻量改动选 Meta/工具类编号方式,是为了不重复修订核心规范文档,也不引入任何共识规则变化——共识层依旧按协议上限验证,谁多带会被拒;谁少带完全合法,只是自愿放弃一部分 blob 收入。这也是”执行层 only”的确切含义:不需要分叉,装个客户端新版本即可生效。

一笔取舍账

可以把它理解成打包者的”接单限额”。假设某周期协议上限是每块六个 blob:带宽富余的打包者保持默认,照单全收;带宽紧张的操作员把旋钮拧到三,每块少赚三笔 blob 费,换来区块更轻、传播更快、被网络接受更稳。对整条链来说,这种自限不是损耗——少带的 blob 会落进下一个块或被其他打包者接走,拥挤时 blob 基准费自然上浮,价格机制负责把需求重新分配。旋钮存在的意义,是把”稳”与”赚”的权衡从事故复盘搬进配置文件。顺带一提,这个开关与协议层的 blob 目标数、上限数是三件不同的事:目标数与上限由共识规范定义、所有人生同一套账;本旋钮只在打包侧决定”这次接几单”,改了它不会改变任何验证规则,也因此不需要协调全网升级——这是它作为纯执行层改动的便利,也是它永远管不住恶意打包者的原因:规则管住的下界在共识层,这里只调自愿的上界。

快速问答

问:普通质押者需要关心这个开关吗? 答:用外部构建者出块的验证者通常用不到——决定权在构建者侧;自己跑本地打包的节点才需要按机房带宽考虑。

问:调低这个值会损害网络吗? 答:协议上限不变、少带合法,拥挤时价格机制接管;它影响的是单个打包者的收入构成。

问:提案现在可用吗? 答:状态 Review,等待随相关客户端发布落地,具体支持情况以当期客户端发行说明为准。

风险提示:涉及质押与出块运维的决策请核对当期客户端文档,本文不构成投资建议。