把状态预算折算成同一把尺:EIP-8372 归一化状态 Gas 上限 图 1
把状态预算折算成同一把尺:EIP-8372 归一化状态 Gas 上限 · 图 1

两条预算线为什么会打架

以太坊的成本模型即将出现一条新维度:状态增长。EIP-8037 的框架是把区块里新增状态占用的资源单独计价,独立于执行 Gas 记账,让”往状态里写字节”这个动作不再搭执行费的便车。这套框架留下一个校准难题:状态预算与执行预算共享同一个区块上限,如果按同一把尺直接对齐,需求两端很难同时逼近各自的健康水位——状态需求弱时状态写得比目标少、执行空间也没被填满;需求强时又可能一边溢出、一边闲置。EIP-8372 处理的就是这把尺本身的刻度问题。

把状态预算折算成同一把尺:EIP-8372 归一化状态 Gas 上限 图 2
把状态预算折算成同一把尺:EIP-8372 归一化状态 Gas 上限 · 图 2

提案的机制:先放大,再归一

规范的做法分两步。第一步给状态一个放大的原始上限:以区块 Gas 上限乘以 STATE_GAS_LIMIT_SCALE、再除以分母一百,得到原始状态 Gas 限额。第二步在区块级记账前做归一化:把原始状态用量按比例换算回与执行 Gas 同量纲的数值后再计算区块有效用量。配套地,每状态字节价格 CPSB 参数被设定为能反映预估需求,而增长目标继续对应五成归一化利用率。两个关键参数在提案里都标着待定——作者把公式与校准方法论写清楚,数值留给后续用主网数据标定。

为什么绕这一道:让需求信号有效

直觉账是这样的:状态价格靠需求调节才有意义(写得太多价格自动上浮),但如果状态预算和执行预算量纲相同、上限相同,价格调节会连带挤压执行空间,网络吞吐被状态需求反向牵制。放大原始上限再归一化,等于先把状态空间在坐标系里拉开、再把结果投影回同一根轴——价格在拉宽的尺度上自由波动,投影后不喧宾夺主。这套处理让”利用率百分之五十”这个目标在两种需求情形下都能各自逼近,提案的动机段落把这描述为让两条需求曲线互不绑架。

校验层与区块层的分工改动

提案的改动精确落在两个算式上。交易校验里可用状态 Gas 的定义改为从新算出的状态上限里减去本区块已用的状态 Gas;区块有效性条件则把状态用量在汇总前先按分母归一。两条都是纯算术替换,不引入新的执行语义,也不动交易池与 Gas 价的交互。这类”只改聚合口径”的提案在协议里属于低风险高敏感的类型:改动小,但每个客户端的区块校验代码必须逐字一致,参数表里的待定值必须经全客户端会议敲定后同步写死。

它停在哪、往前看什么

以起草时的状态,EIP-8372 与 EIP-8037 同属一个议题簇——状态定价如何落地,两者先后关系是校准层叠在框架层上。往前看有两件事值得盯:参数标定的方法学结果(状态增长目标到底是多少、价格曲线多陡),以及它最终是与母提案并入同一次升级还是分开。这类机制的落地节奏历来取决于状态膨胀的可观测压力:当节点磁盘与状态维护成本的数据足够扎眼,校准工具才会被要求上线——在那之前,它是一份写给未来的调参说明书,把”怎么算”先于”算成多少”固定下来。

快速问答

问:这条提案会让我今天写合约更贵吗? 答:不会,它还在草案阶段,主网没有状态 Gas 双轨计费;今天写存储的成本仍由现有 Gas 规则决定。

问:为什么关键参数全是待定? 答:这类校准参数必须用真实主网负载标定,草案阶段锁死数字反而危险,作者只锁公式与目标口径。

风险提示:本文是 Gas 机制科普,不构成任何投资建议;参数与公式以提案原文与客户端实现文档为准。