EVM执行了十年只进不出的JUMP,没有真正的函数调用。EIP-7979用三条新操作码CALLSUB、CALLDEST、RETURNSUB给字节码加上调用与返回,靠一条返回栈记账,不依赖EOF容器格式。本文拆解三条指令的分工与异常规则。
汇总与「EVM」相关的文章,帮助你系统了解该主题。
EVM执行了十年只进不出的JUMP,没有真正的函数调用。EIP-7979用三条新操作码CALLSUB、CALLDEST、RETURNSUB给字节码加上调用与返回,靠一条返回栈记账,不依赖EOF容器格式。本文拆解三条指令的分工与异常规则。
EIP-152引入的blake2f预编译自2019年伊斯坦布尔上线以来调用量极低,EIP-7266提议把0x09地址改为调用即异常中止,并把它当作预编译淘汰机制的首次试验。本文复盘这个插槽七年的使用数据、预编译为何只进不出的惯性,以及移除操作对存量应用的影响评估。
EOF格式取消了合约运行前的initcode机制,经典CREATE与CREATE2因此失去存在前提。EIP-7620用EOFCREATE与RETURNCODE一对新指令补上合约创建的缺口,规则大量类比CREATE2。本文讲清这对指令的分工、与旧指令的异同,以及它随EOF一起搁置的现状。
按 Sei 官方文档拆解 Twin Turbo:为什么它不是新共识算法而是对 Tendermint BFT 的工程提速,提案到达前的并发解码与写集估算在做什么,链上超时参数与带 Unsafe 字样的本地覆写是什么关系,即时最终性给开发者与节点运维各带来什么。
EVM代码执行到一半才炸栈上溢或下溢,是运行时错误里最常见也最浪费的一种。EOF系列改进中的EIP-5450把检查挪到部署时:对每个函数做一遍控制流分析,逐指令记录栈高度上下界,凡可能触界的代码直接拒绝部署。本文拆解它的两阶段验证、界值传递规则,以及省掉哪些运行时检查。
EIP-2565在2021年柏林升级中为0x05地址的ModExp预编译换上了按输入长度与指数规模动态计算的Gas公式,并设置200的最低收费。本文拆解这条公式的三段结构、它与EIP-198旧算法的差异,以及后来为什么又出现上调价格的提案。
EIP-8120提议为EVM增加单字节读取指令MLOAD8与CALLDATALOAD8,替代CALLDATALOAD加PUSH加右移的三条指令组合,单次读取从9 gas降到3 gas、每处省约3字节部署码。本文拆解语义、边界与定价。
EIP-8013提出RJUMP、RJUMPI、RJUMPV、RJUMPSUB与RJUMPSUBV五条相对跳转指令,把跳转目的地以带符号立即数直接编码进字节码,降低gas开销并让静态分析重新可行。本文拆解五条指令的编码规则、验证算法与定价思路。
EIP-8360引入TCREATE操作码,为生命周期不超过一笔交易的临时合约提供官方低成本的部署机制,按状态字节计费并在交易结束自然消失,取代部署后自毁的旧剧本。本文拆解其gas结构与对SELFDESTRUCT的迁移意义。
EIP-8298引入SETCODEFROM指令,把当前账户的代码哈希指向一个已部署源码账户,免付重复代码存款费,同时为禁用ECDSA交易权限提供账户迁移路径。本文拆解其与普通工厂部署、EIP-7702委托的差异与gas口径。