经过代理和委托调用的连环转发后,合约里的CALLER只能看到上一跳,看不到最初发起交易的用户。EIP-3520提出一条ENTRYPOINT指令,返回当前交易最开始的接收地址。这份2021年的提案停在Stagnant,但身份认错的麻烦每天都在发生。
汇总与「EVM」相关的文章,帮助你系统了解该主题。
经过代理和委托调用的连环转发后,合约里的CALLER只能看到上一跳,看不到最初发起交易的用户。EIP-3520提出一条ENTRYPOINT指令,返回当前交易最开始的接收地址。这份2021年的提案停在Stagnant,但身份认错的麻烦每天都在发生。
账户抽象想让普通地址也能像合约一样验证签名和代付,但预验证调用可能在模拟阶段被拒。EIP-2970提出一条IS_STATIC指令,让合约区分自己正在真实执行还是静态模拟。这份Vitalik的提案停在Stagnant,问题本身却随着4337的落地越发真实。
EVM的内存没有静态变量概念,合约里的每个变量访问都要先执行一次地址加法。EIP-3337提出引入帧指针:GETFP、SETFP和带偏移的存取指令,让编译器把变量放进可寻址范围后直接读。这份2021年的提案现在处于Stagnant,但它记录了EVM内存模型的一个真实痛点。
零知识证明、后量子签名这些新密码学要把数算到768位,可EVM的寄存器只有256位宽。EIP-6690提出一套带虚拟寄存器的模运算扩展指令。本文拆解字段上下文、宽数搬运和按模数分档计费的三层设计。
EVM的字节码天生没有函数边界,参数怎么传、返回到哪、局部变量放哪儿全靠编译器口头约定。EIP-4573提出用一组指令把过程正式写进指令集。本文介绍它依赖的跳转表与容器框架,以及五条新指令各自管什么。
EVM 的 gas 是整数,ADD 这类最便宜的指令至少收3,砍到1就是地板。EIP-2045提出一个更细的记账单位——粒子,1 Gas 等于一万粒子,让便宜指令的成本可以继续往下探。本文讲清这套双计数器账本的算法与它的止步原因。
EOF格式把合约字节码装进带数据段的容器,旧的CODECOPY读码指令被弃用,读数据段需要新工具。EIP-7480提出DATALOAD、DATALOADN、DATASIZE、DATACOPY四条指令。本文逐条拆解它们的语义、Gas定价和越界补零规则。
以太坊上最常用的一步算术是乘一个数再除一个数,但EVM里做全精度乘除要靠基于mulmod的几十条指令模拟。EIP-5000提议给EVM加一条MULDIV指令,用512位中间精度一次算完。本文拆解它的规格、那个特殊的除零约定,以及它为什么停在Stagnant。
EVM 按被触碰的最高地址给内存算账,编译器只能把变量塞得尽量紧。EIP-3336 提出按固定大小的页来计费:用了哪几页付哪几页的钱,地址空间随便分配。这份 2021 年的提案解释了计费规则如何反过来塑造合约代码的形态。
EIP-1153把TLOAD/TSTORE定成暖存储同价,稳妥但保守。EIP-7609想用随用量上升的非线性定价替代固定单价,让常见场景便宜、极端场景仍然昂贵。本文拆解这条草案的动机与它的防滥用逻辑。