Conflux 计划在下一次系统 Hardfok 升级中激活并实施包括CIP-150、CIP-151、CIP-152、CIP-154、CIP-156、CIP-165、CIP-645 以及 CIP-7702 共 8 个不同的 CIP(改进提案)的更改以及 RPC 的变更。
相关详情可查看该链接:https://www.confluxdocs.com/docs/general/hardforks/v3.0
CIP更改:
CIP 主要分为以下几类:
-
EVM 兼容:CIP-150, CIP-151, CIP-152, CIP-165, CIP-645, CIP-7702
-
Bug 修复:CIP-154
-
规范调整:CIP-156
以下是上述 8个 CIP 的概述,供大家交流讨论。
CIP 150
本提案对应 EIP-3541,禁止部署以 0xEF
字节开头的新代码。
CIP 151
本提案对应 EIP-6780,该提案在大多数情况下禁止使用 SELFDESTRUCT
操作销毁合约,唯一的例外是:合约可以在与其创建同一笔交易中被销毁。
CIP 152
本提案对应 EIP-3607,解决了因地址碰撞攻击可能导致外部账户(EOA)与合约共享同一地址的潜在安全问题。为特定用途设计并带有代码的 EOA(如 EIP-7702)不受影响。
CIP 154
本提案修复了 CIP-142 的实现错误,该错误将 TLOAD
操作码错误地实现为 SLOAD
。
CIP 156
本提案将 PoS 恶意行为的惩罚机制由永久质押没收改为临时锁定质押。
CIP 165
按照 EIP-2537 的定义引入 BLS12-381 曲线操作的预编译合约,用于高效执行 BLS 签名验证等操作。
CIP 645
本提案旨在使 Conflux eSpace 的行为与以太坊 EVM 保持一致,从而兼容以太坊开发工具,并为开发者提供一致的体验。同时也处理了新 EIP 对 Conflux Core Space 的影响。
引入或适配的以太坊 EIP 包括:
描述 | 链接 |
---|---|
EIP-1108:降低 alt_bn128 预编译操作的 gas 成本 | EIP-1108 |
EIP-1884:调整依赖状态树大小的操作码 gas 成本 | EIP-1884 |
EIP-2028:降低 Calldata 的 gas 成本 | EIP-2028 |
EIP-2200:调整 SSTORE 操作的 gas 成本结构 | EIP-2200 |
EIP-2565:降低模幂运算的 gas 成本 | EIP-2565 |
EIP-2929:提高某些操作码的 gas 成本以防御 DDoS 攻击 | EIP-2929 |
EIP-3529:取消 SELFDESTRUCT 的 gas 返还并减少 SSTORE 的返还 | EIP-3529 |
EIP-3651:降低访问 COINBASE 地址的 gas 费用 | EIP-3651 |
EIP-3860:将 initcode 的大小限制为 49152 字节 | EIP-3860 |
此外,本提案还解决了以太坊行为对齐测试中发现的以下差异:
-
实现了与 EIP-4844 相关的操作码(
BLOBHASH
和BLOBBASEFEE
),其返回值始终为零; -
对失败的 CREATE2 操作进行 nonce 对齐,符合 EIP-684 要求。
-
正确验证交易的费用相关条件,符合 EIP-1559 要求。
-
处理 MCOPY 操作中的内存边界问题,符合 EIP-5656 规范。
-
调整临时存储的生命周期管理,符合 EIP-1153 规范。
-
详情链接:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-645.md
CIP 7702
本提案在 Conflux eSpace 中引入 EIP-7702。
RPC 变更
以下 RPC 接口新增对 EIP-7702 交易的支持:
-
eth_call
和eth_estimateGas
-
与交易相关的 RPC 接口:
eth_getTransactionByHash
、eth_blockByNumber
、eth_blockByHash
其他变更:
-
eSpace RPC 的交易回执中支持
gasFee
-
eSpace 中的
block.gasLimit
修改为共识 gas 限额的一半,新增block.espaceGasLimit
以返回 eSpace 交易的真实 gas 限额 -
eSpace Parity 风格的 trace RPC 接口更新:
a. Trace RPC 方法现在兼容 Parity 和 Erigon,包括
trace_block
、trace_transaction
、trace_filter
,这是一次 API 不兼容变更b. 新增两个 RPC 接口:
trace_get
和trace_blockSetAuth
c.
trace_blockSetAuth
是 Conflux 特有的 RPC,用于获取区块设置授权结果,详细信息请查阅 trace 文档d. 这些 trace 方法现在支持
SelfDestruct(Suicide)
追踪,若需访问历史自毁交易数据,需重新同步相关数据 -
eSpace 现在支持 Geth 风格的 txpool 命名空间方法,包括:
txpool_status
、txpool_inspect
、txpool_content
、txpool_contentFrom
-
eth_call
和eth_estimateGas
增加对stateoverride
功能的支持