作者:0XNATALIE
谈及 ERC-4337 想必大家已经不陌生了,最初于 2021 年 9 月由 Vitalik 提出,在 2023 年 3 月部署到以太坊主网,目前多个 L2 已将其改进版本引入核心执行层。但目前为止并没有看到 ERC-4337 被钱包广泛采纳,为推动标准化账户抽象和网络效应,以太坊协议贡献者Alexander Forshtat提出 RIP-7560 提案(Vitalik 为第一作者),这是首个以太坊 RIP,旨在制定可被所有 L2 和 L1 采用的原生帐户抽象标准。
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 之前,可以阅读之前的文章回顾一下「账户抽象」的概念:《EIP-7377:全面实现账户抽象(AA)的加速器?》
与 ERC-4337 的兼容性和共存
RIP-7560 的原生账户抽象与 ERC-4337 兼容,这两种账户抽象方式将长期共存。RIP-7560 为采用 ERC-4337 的项目提供了迁移路径。不过,目前采用 ERC-4337 的项目需要进行修改,才能确在未来支持原生账户抽象:
- 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 时,会导致其中一个交易失败)。
社区关于 RIP-7560 讨论
社区对 RIP-7560 的讨论展现出多元的观点。Stackup 的联合创始人John Rising认为 RIP-7560 解决了 ERC-4337 中的一些问题可能是件好事,他指出当前 ERC-4337 实施的一些关键问题,在 EIP-4337 实施后,大部分活动都集中在三家云服务提供商或公司。这意味着账户抽象的基础设施相对于整个生态系统来说过于中心化,并且账户的留存率非常低,运行 EIP-4337 的捆绑者盈利性也非常有限。
Polygon 工程师Jarrod Watts也表示尚未看到像 Metamask 这样的主流钱包在实现 EIP-4337 的账户抽象方式上取得重大进展。这可能意味着应用层对于新特性的采纳尚未达到理想水平。所以 RIP-7560 的提出是一个突破口。
Particle Network联合创始人Peter Pan非常看好这个提案,认为保持了 4337 的兼容性,优化了 Gas,并且解决了捆绑者私有的问题,这对于账户抽象的采用非常重要。
Delegate 创始人foobar认为4337 是因为增加了太多的开销,根本无法得到广泛采用。7560 这个提案正在朝着在协议层面将账户抽象正式固定下来的方向发展,所以最好的做法是直接去除这些冗余的部分,而不是试图使其与 4337 保持「向后兼容」,尤其是考虑到 4337 还没有存在很长时间。
尽管意见不一,RIP-7560 也为账户抽象标准化提供一种新的参考方法。随着以太坊社区的深入讨论,账户抽象框架的发展将继续向前推进。我们相信,无论哪种方式,账户抽象最终将被广泛采用。