Alert Source Discuss
🚧 Stagnant Standards Track: Core

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.