节点必须扛得住的攻击区块,不是平均水平的区块,而是一个人手搓出来的最坏情况区块。给”用户可控字节”设地板价,是以太坊近年防最坏区块的主工具:花同样的 gas,攻击者能塞进区块的字节越少,每个节点要转发的带宽、解析的体积就越可控。这条工具线已经走了好几步——EIP-7623 引入 calldata 地板、EIP-7976 把地板统一抬到每字节 64 gas、EIP-7981 给访问列表按条目加价——但补丁摞补丁的账本上还剩两个没标价的角落:EIP-7702 的授权元组和 EIP-4844 的 blob 版本哈希。EIP-8131(2025 年 1 月创建,状态 Draft)提出把这些角落并进同一条规则:一切用户可控的交易内容,每字节一律 64 gas 地板。
统一公式与那张表
提案的地板费公式一行写完:每笔交易的地板等于基础 21000 gas,加 64 gas 乘以下内容项字节数——calldata 长度、访问列表地址按每个 20 字节、存储键按每个 32 字节、EIP-7702 授权元组按每个 108 字节、blob 版本哈希按每个 32 字节。实际执行时 gas 用量取”执行真实消耗”与”地板”的较大者,形式沿用 7623 的 max(intrinsic, floor) 骨架,内部计价(零字节 4 gas、非零 16 gas 的 EIP-2028 标准价)原样保留——地板管的是带宽,内部价管的是 EVM 与状态工作,两本账各干各的。对照表一摆就懂:calldata 每字节 64(7976)、访问列表地址 1280 与键 2048(7981 的折字节价),而授权元组和 blob 哈希目前是零。本提案的增量就是把后两行填进同一公式。
算术锁死的区块上限
统一定价的真正卖点是那条可以写在白皮书里的硬界:既然每种内容字段都输出每 gas 六十四分之一字节,攻击者的最优化问题被压扁,最坏情况区块内容总量等于区块 gas 上限除以 64——按 6000 万 gas 算约 0.89 MB。这个界与攻击者选哪个字段、字节是零是非零、用哪种交易类型、网络用哪家压缩器全部无关。此前逐字段打补丁的路线每加一种新交易特性都可能重新破口(7702 与 4844 就是两个现成案例),统一按字节定价后,未来的变长字段自动落进同一条规则,不用再为每个字段单开一个 EIP。提案还给了兼容性证据:主网不足 4% 的交易会碰到新地板,绝大多数交易感受不到变化。
授权元组为什么按 108 记常数
EIP-7702 授权元组的实际 RLP 编码随链 ID 与 nonce 大小浮动,最坏 108 字节(2 字节列表头加 9 链 ID 加 21 地址加 9 nonce 加 1 奇偶加 33 加 33)。提案选择按最坏值记常数而不是逐笔测长:地板从计数就能算出,实现无需 RLP 尺寸探询;代价是主网常见的小 nonce 授权略多付约 1024 gas,被视为可接受的粗略性。另一个刻意取舍是只按内容计费、不含信封与签名——各类型信封加签名不超过约 130 字节、折合不到 8300 gas,本就低于 21000 的基础费,将其计入反而让遗留格式比 1559 类型更便宜,破坏类型对称。
地板之上还有哪本账
值得再强调一次的是,地板与内部价目表是两个互不替代的维度。EIP-2028 定下的每字节 4 与 16 gas 标准价,补偿的是每个 calldata 字节带来的 EVM 解析与状态工作量;地板补偿的是与工作量无关的纯带宽与解析成本——哪怕整块全是零字节,传播它也要花真金白银的网络资源。攻击史上正是这一点被反复验证:零字节能以极低标准价堆出巨型区块,工作量近乎为零、带宽伤害拉满。把两本账分开,还意味着扩容讨论里两种药方不再互相绊脚:想让区块装更多真实计算,动 gas 上限;想让最坏情况区块更小更便宜转发,动地板。EIP-8131 的自我定位就是后一种——在 gas 上限纹丝不动的前提下,用算术把一个更小的最坏情况区块免费送给全网,剩余额度要么原样留作稳健性缓冲,要么留给后续提案去兑换吞吐。
快速问答
问:地板价提高了,普通用户手续费变贵吗? 答:提案测算主网不足 4% 的交易触到新地板,其余交易的实际执行 gas 仍高于地板,不受影响。
问:blob 数据本身也按 64 收了吗? 答:不是。blob 载荷走 EIP-4844 独立的 blob gas 体系;这里只给交易里那串 32 字节的版本哈希补地板。
问:与 7623、7976 是什么关系? 答:吸收合并——7623 与 7976、7981 被并成一条按字节的规则,同时填上两处零价缺口。
风险提示:gas 参数变动直接影响费用,请以激活后的官方参数表为准,本文不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。