(colinlyguo)提交,Magicians 讨论帖 22:10,即 EIP-8298。思路来自 ACDE 上 benaadams 的提议,把 EIP-7851 与 EIP-8058 的目标结合:新 EVM 指令让当前账户采用一个已部署合约的 code hash。来源是一个活跃账户地址而非原始 code hash,因此被采用的代码与当前共识状态绑定。两个主要用途:一是部署成本(EIP-8058 的问题),代码相同的合约先初始化各自的存储,再采用共享代码,不必为客户端已存储的字节码重复支付代码存储 gas,在 EIP-8037 让部署更贵后尤其有用;二是停用 ECDSA 的 EOA 迁移(EIP-7851 的问题),迁移代码先初始化钱包状态(包括后量子钱包状态),再采用常规钱包代码,账户有了常规代码后,按 EIP-3607 不能再由 ECDSA 发起交易,也不能再用旧 ECDSA 密钥做 EIP-7702 重新委托。
https://github.com/ethereum/EIPs/pull/11800
新 EIP:SETCODEFROM 代码复用指令(colinlyguo)提交,Magicians 讨论帖 22:10,即 EIP-8298。思路来自 ACDE 上 benaadams 的提议,把 EIP-7851 与 EIP-8058 的目标结合:新 EVM 指令让当前账户采用一个已部署合约的 code hash。来源是一个活跃账户地址而非原始 code hash,因此被采用的代码与当前共识状态绑定。两个主要用途:一是部署成本(EIP-8058 的问题),代码相同的合约先初始化各自的存储,再采用共享代码,不必为客户端已存储的字节码重复支付代码存储 gas,在 EIP-8037 让部署更贵后尤其有用;二是停用 ECDSA 的 EOA 迁移(EIP-7851 的问题),迁移代码先初始化钱包状态(包括后量子钱包状态),再采用常规钱包代码,账户有了常规代码后,按 EIP-3607 不能再由 ECDSA 发起交易,也不能再用旧 ECDSA 密钥做 EIP-7702 重新委托。
https://ethereum-magicians.org/t/eip-8298-setcodefrom-code-reuse-instruction/28779