各种复杂利益博弈的背后:以太坊还有很长的路要走( 六 )

EIP 1014 让使用 Plasma 在链下完成大量工作成为一种可行的方案。此外,CREATE2 允许在合约中生成合约,这是子链需要具备的重要功能。

EIP 1052:EXTCODEHASH opcode

提案内容:

EIP 1052 由 Nick Johnson 和 Pawe? Belic 提出,建议新增一个操作码 EXTCODEHASH,编号为 0x3F,并用它取代之前的操作码 EXTCODECOPY 来完成合约代码的检查工作。

EXTCODEHASH 返回的是合约代码的 keccak256 哈希值,EXTCODECOPY 返回的是合约代码本身。

提案目的:

我们常常需要检查某个合约代码,比如为了避免与恶意合约来往。以太坊过去使用的方法是通过 EXTCODECOPY 获得合约代码,它会产生两笔费用,一是 EXTCODECOPY 本身耗费的 700 gas,二是把合约代码复制到內存中的存储费用,若合约代码庞大,则 gas 花费也会巨大。

但我们检查合约并不一定需要合约代码本身,因此 EXTCODEHASH 采用的方法是返回合约代码基本数据的哈希值。它完成的功能与 EXTCODECOPY 一样,但花费仅为 400 gas。

推荐阅读