🚧 Stagnant
Standards Track: Core
EIP-2488: 弃用 CALLCODE 操作码
EIP-2488: 弃用 CALLCODE 操作码
Authors | Alex Beregszaszi (@axic) |
---|---|
Created | 2019-12-20 |
Discussion Link | https://ethereum-magicians.org/t/eip-2488-deprecate-the-callcode-opcode/3957 |
Requires | EIP-7 |
摘要
以某种程度上向后兼容的方式弃用 CALLCODE
,使其始终返回失败。
动机
CALLCODE
是以太坊 Frontier 版本的一部分。在最初的几周/几个月里,很明显它无法实现其预期的设计目标。这一点通过在 Homestead 更新(2016 年初)中引入 DELEGATECALL
(EIP-7) 得到了纠正。
CALLCODE
变得从未被使用,但它仍然给 EVM 实现带来了负担。
禁用它不会改善任何旨在从创世区块同步的客户端的状况,但会帮助轻客户端或计划从稍后时间点同步的客户端。
规范
如果 block.number >= FORK_BLOCK
,则 CALLCODE
(0xf2
) 指令始终返回 0
,这表示失败。
理由
可以直接删除操作码,并在遇到它时异常中止。但是,通过返回失败,合约有机会对其采取行动并可能恢复。
向后兼容性
这是一个重大更改,并且有可能破坏合约。作者预计不会有任何有价值的合约受到影响。
待办事项:验证此声明。
安全注意事项
待定
测试用例
待定
实现
待定
版权
通过 CC0 放弃版权及相关权利。
Citation
Please cite this document as:
Alex Beregszaszi (@axic), "EIP-2488: 弃用 CALLCODE 操作码 [DRAFT]," Ethereum Improvement Proposals, no. 2488, December 2019. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-2488.