2026年10月19日周一

标签:智能合约

汇总与「智能合约」相关的文章,帮助你系统了解该主题。

EVM 调用帧:一笔交易里合约互相喊话时谁记得谁的账
加密货币百科
EVM 调用帧:一笔交易里合约互相喊话时谁记得谁的账

合约调用合约时,EVM 会为每一次调用新开一个帧:各自的栈、各自的内存、共享的世界状态。CALL、DELEGATECALL、STATICCALL 的区别就在于新帧里『我是谁』和『用谁家的存储』怎么填。本文拆解调用帧的资源划分、gas 传递规则、返回数据缓冲区和 revert 如何在帧间传播。

跳转点的歧义:EIP-7921 为什么想让所有 0x5b 字节都算合法 JUMPDEST
加密货币百科
跳转点的歧义:EIP-7921 为什么想让所有 0x5b 字节都算合法 JUMPDEST

EVM 规定 JUMP 与 JUMPI 只能落在不处于 PUSH 立即数之中的 0x5b 字节上,为此每个被跳转的代码都要先做一次线性扫描。EIP-7921 提议取消这层歧义检查。本文讲清这条校验从哪来、它挡住什么又拖累什么,以及为什么这份提案停留在 Stagnant。

合约地址不能被「再创建」覆盖:EIP-684 堵上的部署碰撞漏洞
加密货币百科
合约地址不能被「再创建」覆盖:EIP-684 堵上的部署碰撞漏洞

在 EIP-684 之前,规范没有明确禁止在一个已有代码的地址再次执行合约创建。EIP-684 规定:创建目标地址只要已有非零 nonce 或非零代码,创建必须立即像首字节非法一样抛错,并追溯适用于所有既有区块。本文讲这个「部署碰撞回滚」规则的来龙去脉,以及它和后继提案 EIP-7610 的关系。

把自增自减交给协议:EIP-7519 的 SCREDIT 与 SDEBIT
加密货币百科
把自增自减交给协议:EIP-7519 的 SCREDIT 与 SDEBIT

智能合约里一次余额更新要读、算、写三步,并行执行引擎很难判断两次更新能不能同时跑。EIP-7519 提议加两个原子存储操作码 SCREDIT 与 SDEBIT,让协议自己完成加减并检查上下溢。本文解释这种并行原语解决什么、边界在哪。

链上代码先过静态审查:EIP-8337 的 Validated EVM Code
加密货币百科
链上代码先过静态审查:EIP-8337 的 Validated EVM Code

EIP-8337 提议给字节码加一个 MAGIC 前缀:带前缀的代码在部署时做静态验证,保证控制流完全静态、每个返回都有对应调用、数据栈深度可静态证明不会下溢。本文解释这套静态合约与 EOF 的关系和实际意义。

从二次方到按页计费:EIP-7923想改写EVM的内存账本
加密货币百科
从二次方到按页计费:EIP-7923想改写EVM的内存账本

EVM至今用一条二次方公式给合约内存计价,被批评为沿袭上世纪的防御设计。EIP-7923提议改用线性的按页计费:每页4096字节,首次触碰收100 gas,全交易上限64MB。本文拆解新账本的算法、动机里给出的历史包袱,以及它对合约语言的松绑效果。

eth_call状态覆盖怎么模拟?
公链与 Layer2已审核
eth_call状态覆盖怎么模拟?

Geth可在eth_call中用state override临时改写账户余额、nonce、代码或存储。本文说明参数位置、state与stateDiff差异及模拟结果边界。

让EVM直接算正弦和自然对数:EIP-7543的小数运算设想
加密货币百科
让EVM直接算正弦和自然对数:EIP-7543的小数运算设想

EIP-7543 提议给 EVM 加一组任意精度十进制浮点指令:DECADD、DECMUL、DECEXP、DECLN、DECSIN 等,用系数加指数精确表示小数,把科学计算器级别的初等函数变成一条指令。本文解释为什么二进制存不下0.1、合约里的幂运算为什么贵,以及这份提案停摆的原因。

把Gas变成ETH直接付:EIP-7791的变现设想
加密货币百科
把Gas变成ETH直接付:EIP-7791的变现设想

EIP-7791 提议在 EVM 里加一条 GAS2ETH 指令:合约执行消耗的 Gas 可按交易gas价折算成 ETH,直接打给指定地址,且不动区块奖励账本。本文拆解它的预算机制、想解决的合约变现难题,以及草案阶段就要面对的博弈。