把Gas价格并成一张账:EIP-8007给Glamsterdam打包重定价提案 图 1
把Gas价格并成一张账:EIP-8007给Glamsterdam打包重定价提案 · 图 1

以太坊的费用单位Gas诞生时是一张通用代金券:无论调用什么操作码,账本上都只写一个数字。十几年过去,这张代金券暴露出一个尴尬的裂缝——同样标注一份Gas,做一次哈希、读一次冷存储、塞一个calldata字节,消耗的真实资源根本不相等。有人钻价格错配的空子,也有人的合理需求被过高的单价压住。EIP-8007不直接改任何价格,它是一份Meta提案:把围绕Glamsterdam升级讨论的Gas重定价工作全部登记在同一页清单上,给散兵游勇式的调价提案装上统一的账本。

一个Gas,几种汇率

为什么价格错配会成为扩容的瓶颈?可以把区块想象成一间同时限重限体积的仓库。执行Gas约束时间,内存、状态、数据带宽各自还有隐形的墙。如果某一类操作按现行价目表能在时间维度上比别的维度先撞墙,构建区块的人就会被激励去塞满那一维,把其他维度的容量白白闲置——瓶颈不是最紧的那根弦决定的,而是被定价错误地提前收紧的那根决定。EIP-8007的动机段说得直白:单一Gas单位意味着一次计算单元在不同操作之间并不等价,把各操作和各资源的单价标准化,才能把每根弦都拧到该在的松紧度,为进一步扩容铺路。

这种思路并不新鲜。2016年的Tangerine Whistle升级就是历史上第一次大规模重定价,当时是为了解决一类特别贵的状态读取被低价滥用;2021年的EIP-1884又把随状态增长变慢的几个操作码调了价。EIP-8007的特别之处在于形式:它不做提案,只做收纳。

清单里装了什么

按Meta页面上的依赖列表,这份清单至少收编了这些方向的提案:把calldata地板单价继续上调的费用提案(7976)、给访问列表字节补地板价的(7981)、给状态增长单独立一本状态Gas账的(8037)、按操作码逐项重定基准价的(8038),以及围绕哈希、模幂等预编译的定价修订。每条子提案在各自的页面上单独推进状态,Meta页负责记录哪些被采纳进重定价框架、哪些被列入考虑、哪些被明确婉拒——包括它自己的两个小节:考虑中、婉拒收录。

对普通读者来说,这份清单的实际用途是一张路线图:想知道Glamsterdam升级会不会让某类操作变贵或变便宜,先查这张表比逐条追提案省力。清单也会随时间被改写,所以看的时候留意它最后一次更新离现在多久。

一次调价的完整旅程

把一份重定价提案从想法走到链上生效摊开看,能看清Meta清单存在的意义。第一步是测量:客户端在标准负载下记录每种操作的真实耗时与内存占用,找到标价和成本比值最离谱的几项。第二步是校准:按资源折算给出新价目,同时用回溯模拟器在历史区块上重放,检查有没有哪类合约会因为涨价突然变得不可用。第三步才是提案落地:改价代码、写测试向量、等待硬分叉打包。EIP-8007登记的正是第二步和第三步之间的对齐工作——当十几条提案各自宣布重定一段价格时,如果没有统一清单,很容易出现同一段资源被两条提案各涨一次、叠加后偏离设计意图的事故。清单上被婉拒收录的条目同样有价值:它们记录了社区试过但放弃的定价思路,避免后人重复提交。

快速问答

问:EIP-8007本身会改变Gas价格吗? 答:不会。它是Meta类型,只登记和归类。价格变动发生在被它收录的各条子提案里,子提案各自走自己的激活流程。

问:Glamsterdam还没升级,这份清单有什么意义? 答:升级主题包本来就是先有工作清单再有硬分叉。Meta提案的作用相当于招标公示板,帮社区、钱包和研究者看清哪些价格调整在同期被认真讨论。

问:和2021年的账本变厚加价(EIP-1884)是什么关系? 答:同一类问题的两代答案。1884处理的是状态读取,用的是逐项调价;8007收录的路线想把定价方法论整体统一,一次把多本账并成一本书。

一把尺子

评估任何重定价提案,拿资源换Gas的汇率去量:一次操作真实占用多少时间、多少字节、多少带宽,折算后与标价的比值是否接近一。比值离谱,套利就会来;汇率齐平,区块的每一维容量才用得干净。

风险提示:本文内容为协议机制科普,不构成任何投资建议;Gas定价与升级清单仍在讨论中,实际参数以官方规格与发布说明为准。