以太坊的区块头里有一个字段叫 gas limit,它决定这一块最多能装下多少计算。多数共识参数由协议公式算出,唯独这个由出块的验证者(提案写作时还是矿工)自己挑:可以慢慢改——每块相对上一块最多变动千分之一点零二四——但最终走向哪,是人的选择。2021 年 3 月 13 日提交的 EIP-3382 对这种例外状态发起质问,作者 Philippe Castonguay 的动机段写得很集中:以太坊的设计处处假设出块者是自利的经济人,不做善人假设,「唯独选择区块 Gas 上限这一件事上,协议假设出块者关心链的长期健康与去中心化」。这个假设当初是为了保留紧急改参数的通道,可急迫情形罕见、作恶通道常开,作者认为这笔交换不划算,于是给出最干脆的方案:焊死。
规范只有一条等式
提案的规范部分接近一行代码:自分叉区块高度起,区块头的 gasLimit 字段必须等于硬编码常量 BLOCK_GAS_LIMIT,提案取值一千二百五十万——恰好是起草时主网的实际上限,作者说明这个数字日后可以靠后续 EIP 修改,但不改「由 EIP 修改」这件事本身。规范还处理了一个措辞问题:EIP-1559 之后 gas target 与 gas limit 分家,提案声明文中的 gasLimit 在 1559 语境下指 gasTarget。两个细节见设计功力:其一,字段保留在区块头里不删除——删字段会改变被哈希的数据结构,牵连面太大,留着常量值最省事;其二,提案自称向后兼容,因为「等于常数」是「在合法区间内」的子集。

反对意见长什么样
安全考量一节提案自己先交底:改上限会变得更难,若真出现需要紧急扩容的局面,硬编码反而碍事。这是最常被引用的反对理由。更深的分歧在哲学层:以太坊社区的主流答案是「不焊死、也不放养」——上限由验证者客户端默认值与缓慢调整规则共同约束,配合客户端社区的社会压力,出块者大幅乱选会被同行与中继基础设施无视。后来的演化验证了中间路线的生命力:2022 年 EIP-3756 提议给上限设死一个接近当时现实值(三千万)的硬顶,思路从「焊死一个值」变成「限制选择的上界」,EIP-3382 的头部因此标注了撤回原因:作者本人转投 EIP-3756——先要求全网同意才能改数,不如只锁死天花板、把地板留给现实。两份提案同出一人之手,是一次罕见的公开路线自我修正。
为什么这个参数值得单拎
理解这份提案的执念,要理解 Gas 上限的双重身份。对普通用户,它像带宽:上限越高,拥堵与手续费越低;对节点运营者,它像账单:上限越高,全节点同步与验证成本越大,想跑轻设备的群体越小,链就越依赖大机器。出块者两头都不站在最疼的位置:他们多收手续费的收益是即时的,网络可验证性被稀释的代价却是全社区分摊的。EIP-3382 的本质,是不信任这种「收益私有、成本公有」结构下的人为选择,宁可接受一个可能过时的常数,也不接受一个可能被逐利拉偏的变量。参数治理里「信任公式还是信任人」的老问题,这份 Withdrawn 提案给出了公式派的极端答案。
快速问答
问:今天区块 Gas 上限由谁决定? 答:验证者客户端的配置提议、受每块变动幅度约束地逐步逼近,社会层面由主流客户端默认值与质押池配置共同塑形。
问:EIP-3382 会伤害矿工收益吗? 答:不涉及收益分配,只限制单块可承载的总计算量,间接影响手续费市场。
问:硬编码参数改一次要多久? 答:要走完整 EIP 与升级排期,以月为单位;这正是提案者想要的庄重,也是反对者担心的迟钝。
常见误区
一是把「硬编码上限」与「固定区块大小」类比比特币块大小之争,二者动机有亲戚关系,但机制不同物——Gas 上限管计算量,字节上限管数据体积;二是以为 EIP-3756 是 EIP-3382 的通过版,实际上 3756 是锁顶帽而非定值,两者思路相反(前者剥夺选择、后者约束选择);三是忽略提案文本对 1559 前语义的适配声明,拿 gasTarget 去读草案早期版本会算错约束对象。
风险提示:本文为共识参数机制科普,不构成投资建议;网络容量与费率变化请以当期链上数据为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。