ERC-4377:不用改变共识层实现账户抽象;RIP-7560:从共识层实现标准化的原生账户抽象

RIP 全称 Rollup Improvement Proposal, 从 10 月 18 日首次 RollCall 开始建设,RollCall 目的是帮助 L2 建立可选的规范和标准,以便 L2 能够扩展 EVM 和相关工具,同时限制与 L1 EVM 的冲突。RIP-7560:原生账户抽象的引入为了更好的标准化,RIP-7560 引入共识层协议变更的原生账户抽象(Native Account Abstraction),并将 EIP-2938 和 ERC-4337 合并为一个全面的账户抽象提案。在深入了解 RIP-7560 之前,可以阅读之前的文章回顾一下「账户抽象」的概念:

- UserOperation 变更为 TransactionType4: 原本的 UserOperation 结构及其名称是为了避免与实际的以太坊交易混淆。由于原生账户抽象将 UserOperation 变成了实际的以太坊交易,因此将其更名为 TransactionType4。虽然名称发生变化,但在链上的操作方式和 UserOperation 类似。
- 智能合约账户升级: 智能合约账户需要升级其实现以支持原生账户抽象协议。具体的修改包括 EntryPoint 地址设置为系统范围内的常量值以简化操作、validateUserOp 函数更名及参数变化,以及账户不再需要在 EntryPoint 合约中维护存款来支付 Gas,而是直接从其余额中扣除。
- Paymaster 合约升级: Paymaster 合约需要进行升级或重新部署。对于 ERC-20 代币和其他资产,包括状态,需要手动迁移批准。validatePaymasterUserOp 函数需要更名并具有不同的参数,Paymaster 合约不再需要在 EntryPoint 合约中维持存款以支付 Gas,而是直接从其余额中扣除。
- 账户工厂(Account Factories):仍然可以使用相同的合约,通过 ERC-4337 或原生账户抽象流程创建的账户地址将保持一致。
- 捆绑者(Bundlers):原生账户抽象中的捆绑者仍然需要与区块构建者保持利益关系,以便包含捆绑交易。捆绑者具有对区块构建者的特权 API 访问权限,也就是说捆绑者可以与区块构建者直接通信,并在打包交易之前协商相关事宜,包括处理 nonce 碰撞的情况(在 EIP-4337 中用户向两个捆绑者发送具有相同 nonce 的 UserOperation 时,会导致其中一个交易失败)。