六个操作码都该改名:EIP-1803 列出的名字与真相之差 图 1
六个操作码都该改名:EIP-1803 列出的名字与真相之差 · 图 1

名字会教错人

以太坊虚拟机的一层核心机制是操作码:一段字节码由这些数字指令串成,人类习惯用助记符代称它们。2017 年 7 月 28 日提交的 EIP-1803 指出,一批常用助记符与真实语义存在偏差,于是给六个名字开出改名清单,提案状态目前是 Stagnant。清单值得逐项抄下来:BALANCE(0x31)改为 EXTBALANCE,与 EXTCODESIZEEXTCODECOPY 等”读外部账户”家族对齐——它查的从来不是自己的余额,而是要先压入一个地址;SHA3(0x20)改为 KECCAK256,因为它算的算法是 Keccak 而非后来标准化的 SHA-3,两者填充规则不同;NUMBER(0x43)改为 BLOCKNUMBER,明确它取的是区块号;GASLIMIT(0x45)改为 BLOCKGASLIMIT,与交易自己的 Gas 上限区分开;GAS(0x5a)改为 GASLEFT,强调返回的是剩余量;INVALID(0xfe)改为 ABORT,避免与”任意非法操作码”混淆。

六个操作码都该改名:EIP-1803 列出的名字与真相之差 图 2
六个操作码都该改名:EIP-1803 列出的名字与真相之差 · 图 2

只改字典,不改机器

1803 的兼容性一节是它最聪明的地方:改名不影响任何已部署代码。原因很简单——链上存的是数字编码,0x20 永远是 0x20;助记符只是汇编器与反汇编工具查表显示的文字层。提案因此自我定位为”只影响助记符”的文档级修订,这也是它能以零成本姿态提出、却又永远停在半路的原因:没有硬分叉作为截止线,各工具想什么时候改就什么时候改,于是大家永远不急着改。同类对照可以先看更早的一个操作码数出三种空:EXTCODEHASH 怎么区分不存在、空壳与EOA——EXTCODEHASH 家族的存在正是这套命名体系不断自我修正的产物。

名字之争其实早有先例

1803 的参考一节自己引了前辈:2015 年的 EIP-6 把 SUICIDE 改名为 SELFDESTRUCT,理由是照顾开发者群体的心理健康,并引用安全审计报告建议换掉带情绪联想的词。那次改名以别名方式落地——数字编码 0xff 不变,工具层新增 SELFDESTRUCT 作为正式称呼,旧名保留兼容——今天所有主流工具显示的都是新名,堪称这场命名运动唯一的全胜案例。这段历史还有后续:自毁语义本身后来被 EIP-6780 收窄,但那是另一篇文章的事。把 EIP-6 与 1803 放在一起读,能看清一条清晰的分界线:改一个词的公关动机与改六个词的工程动机,落地的概率完全不同。

这些名字偏差今天害过谁

别把命名考古当 trivia,每一条都对应真实误读。SHA3 是历史事故重灾区:早期教程按名字用 SHA3 库复刻链上哈希,结果与 Keccak-256 对不上,空串的链上哈希 0xc5d2...a470 这一标准测试向量就是用来分辨两派的照妖镜。GASGASLIMIT 的混淆则常见于账单核对:日志里看到 gas 字段以为是本次交易上限,实际上它常指”剩余额度”,反推实付费用时张冠李戴——重入锁如果写进虚拟机:EIP-7705 想用两条操作码换掉每份合约里的锁代码讨论 Gas 相关操作码时也会碰到同一组易混词。读旧文档时养成一个习惯:名字后面追一句”它取什么参数、返回什么”,比信任助记符本身可靠得多。

怎么确认某个工具用的是哪套名字

实操上有三个口径可以交叉核验:反汇编器的输出表、语言编译器的内置函数名(Solidity 的 block.number 之类是另一套高层词汇,映射关系各编译器文档有表)、以及操作码清单类站点。改名运动里 EIP-6 的成果最彻底——今天多数工具显示 0xff 时已经用 SELFDESTRUCT;其余五个名字的普及程度则各工具不一,旧教程与旧代码库里的 SHA3GAS 会长期存在——你不需要说服它们,只需要在读到这些名字时自动加一层翻译。对内容作者的提醒更直接:写中文教程时不要机械翻译助记符,“余额操作码”这类译法会把 1803 试图纠正的误解原样复制进中文圈。

中文教程里的正确写法

给写中文内容的人一条实操建议:碰到这六个操作码,首次出现时写”数字编码+助记符+它实际做什么”三件套,例如”0x20(KECCAK256,Keccak-256 哈希)“。这样做的好处是双向免疫:读者拿着任何版本的工具、任何年份的教程回来对照都不会迷路,你的内容也不会因工具改名而过期。对比另一个方向的反例:把 GASLEFT 直译成”Gas 剩余量”看似直白,但中文社区实际流通的是”剩余 Gas”,命名类翻译永远以现有社区用词优先,规范词形只作括注——这也是为什么 1803 至今没有整体落地,中文资料里新旧两套名字仍会长期并存。读旧提案的最终收获其实就一句:名字的变迁史本身就是机制史的一部分,知道哪个名字在哪个年代通行,能帮你把五年前的教程安全地用到今天。

风险提示:本文为技术机制与提案历史说明,不构成投资建议。