Gas 也要换更细的秤:EIP-8059 把计价刻度整体放大一千倍 图 1
Gas 也要换更细的秤:EIP-8059 把计价刻度整体放大一千倍 · 图 1

一句话定位

EIP-8059 是 2025 年 10 月 22 日创建、截至本文撰写时状态为 Draft 的提案。它不调任何一条操作码的相对价格,而是把整个 gas 体系的秤砣换掉:所有 gas 相关参数与变量统一乘以 REBASE_FACTOR,提案定值为 1000。原来 1 gas 的加法还是等价于 1,原来 36M 的区块上限换算成 36B。所有数字变大三个数量级,价格结构原封不动——变的只是刻度的分辨率。

舍入误差从哪来

gas 是整数。当一次纯计算操作的真实成本只有零点几 gas 时,计价系统只能向上取整到 1,一个区块因此装不下理论数量的这类操作,缩放空间被整数刻度卡死。提案的动机段把这层错配拆成两条曲线:硬件和客户端优化让纯计算越来越便宜,状态膨胀让触碰状态的 I/O 越来越贵。想做”计算降价、状态提价”的重新定价,就必须挑一个锚点给全体操作码定标,而锚点与整数刻度之间立刻产生矛盾。

锚点算术

提案给了具体对照。若以每秒 50M gas 的执行力为锚(对应约 100M 的区块上限),把最快操作码定成 1 gas、其余按真实成本比例定价后取整,纯计算操作的平均舍入误差约 59.3%——一半以上的理论优化空间被取整吃掉。要把误差压到可忽略,锚点需要推到每秒 400M gas 以上,对应约 8 亿 gas 的区块上限,是当前 36M 的二十多倍。与其把一切涨价到那个量级,提案选择另一条路:价格数值整体乘一千,等价于把尺子的最小刻度切细一千刀,而不动任何操作码的相对价格。

连带改写的清单

乘 1000 不只发生在价目表上。按规范,区块 gas 上限、每笔交易的 gasLimit 与 gasUsed 全部随之放大;分叉边界上,基础费计算函数读入的上一个区块 gas 用量与上一区块基础费也要同步按倍率缩放,否则 EIP-1559 的递推公式在切换块立刻算错。提案还在安全考量里点了一个工程细节:这两个字段数值变大,区块头的 RLP 编码会多出约两个字节,带宽影响需要另行评估。提案明确这是不向后兼容、需要预定升级激活的改动。

一笔直觉账

拿 21000 gas 的普通转账举例:rebase 后它是 2100 万新 gas,数字大了千倍,但用户付出与收到的 wei 不变——因为每单位 gas 的单价等比缩小千倍。真正受益的是下一次重新定价的窗口:当未来讨论把某个操作从 3 gas 降到零点三时,毫米刻度上 0.3 有位置(记作 300),不必再为一装就溢出而吵一轮整数方案。就像把厘米尺换成毫米尺:今天量什么都一样,明天想精确半厘米的人不再被迫四舍五入。

谁最关心刻度

rebase 类提案的读者画像很清楚:做 gas 参数建模的研究者、给客户端写计价常量的工程师、以及所有准备提交重定价 EIP 的作者。普通用户侧的数字几乎不动,钱包与行情工具显示的 Gwei 单价由 base fee 换算而来,与刻度大小无关。真正会立刻感到重量的是测试套件——每个断言里的 gas 数字都要重写,每条参考测试都要乘系数,这正是提案把它标成需要预定升级的原因:刻度切换是共识事件,一天之内所有节点必须数同一套数字,慢一秒都会分裂。

快速问答

问:rebase 之后 gas 更便宜吗? 答:不改变任何操作码的相对价格,也不改变真实 wei 成本,只是把整数刻度切细,方便未来微调。

问:普通用户能感知到吗? 答:几乎不能。钱包继续显示 Gwei 层面的单价,主要是客户端、资源管理器与测试套件要迁移字段口径。

问:它和给计算降价、给状态提价的提案是什么关系? 答:互为前提类。先换细刻度,那些重定价提案才有能表达零点几成本的空间,否则提案再好也被取整卡死。

一个常见误会

最顺手的误读是把 rebase 读成涨价或扩容。都不是。它不动货币供给、不动区块真实能装多少计算、不动用户余额,只动计价体系的度量衡。真正决定吞吐天花板的变量永远是区块上限与硬件执行速度,而不是同一把尺被切成多细的刻度。

风险提示:本文仅作技术科普,不构成任何投资建议。