零知识证明、后量子签名这些新密码学要把数算到768位,可EVM的寄存器只有256位宽。EIP-6690提出一套带虚拟寄存器的模运算扩展指令。本文拆解字段上下文、宽数搬运和按模数分档计费的三层设计。
汇总与「EVM」相关的文章,帮助你系统了解该主题。
零知识证明、后量子签名这些新密码学要把数算到768位,可EVM的寄存器只有256位宽。EIP-6690提出一套带虚拟寄存器的模运算扩展指令。本文拆解字段上下文、宽数搬运和按模数分档计费的三层设计。
EVM的内存没有静态变量概念,合约里的每个变量访问都要先执行一次地址加法。EIP-3337提出引入帧指针:GETFP、SETFP和带偏移的存取指令,让编译器把变量放进可寻址范围后直接读。这份2021年的提案现在处于Stagnant,但它记录了EVM内存模型的一个真实痛点。
账户抽象想让普通地址也能像合约一样验证签名和代付,但预验证调用可能在模拟阶段被拒。EIP-2970提出一条IS_STATIC指令,让合约区分自己正在真实执行还是静态模拟。这份Vitalik的提案停在Stagnant,问题本身却随着4337的落地越发真实。
经过代理和委托调用的连环转发后,合约里的CALLER只能看到上一跳,看不到最初发起交易的用户。EIP-3520提出一条ENTRYPOINT指令,返回当前交易最开始的接收地址。这份2021年的提案停在Stagnant,但身份认错的麻烦每天都在发生。
以太坊上的隐私协议和ZK应用都绕不开alt_bn128曲线的三条预编译指令,EIP-1108在2018年把它们的Gas价格大幅下调:加法从五百降到一百五,配对检查的固定成本砍掉近六成。这份Final提案的定价方法本身就是一次成本审计。
EVM的CALL指令把Gas参数当上限而不是配额,给不够就少给点也要跑。EIP-1930在2019年提出严格语义:指定多少必须给多少,给不出就revert,并提出用高位标志区分新旧语义的免加指令方案。提案停在Stagnant,但它点破了Gas语义里一个沿用至今的模糊地带。
以太坊地址固定一百六十位,但 EIP-7676 曾提议在 EOF 字节码里取消执行时的地址高位截断,为将来扩展地址空间做兼容准备。本文解释为什么 EVM 操作码把地址当两百五十六位栈值又只用低九十六位、7676 提出的 EXTBALANCE 与高位非零即停机规则、它与状态过期和账户地址映射的关系,以及普通用户要不要担心地址格式改变。
EVM 操作码单字节意味着最多二百五十六格,编号 4520 的提案提议把 0xEB 与 0xEC 保留为前缀字节,用双字节甚至三字节指令把空间扩出五百多格,未定义位置按 INVALID 处理。本文讲清单字节操作码的空间账、前缀方案的解析规则与向后兼容代价、它和 0xEF 保留字节的邻居关系,以及为什么这个提案停在 Stagnant。
EOF格式取消了合约运行前的initcode机制,经典CREATE与CREATE2因此失去存在前提。EIP-7620用EOFCREATE与RETURNCODE一对新指令补上合约创建的缺口,规则大量类比CREATE2。本文讲清这对指令的分工、与旧指令的异同,以及它随EOF一起搁置的现状。
EIP-152引入的blake2f预编译自2019年伊斯坦布尔上线以来调用量极低,EIP-7266提议把0x09地址改为调用即异常中止,并把它当作预编译淘汰机制的首次试验。本文复盘这个插槽七年的使用数据、预编译为何只进不出的惯性,以及移除操作对存量应用的影响评估。