ERC-4337:通过账户抽象革新以太坊
大家好,欢迎再次来到我们的区块链博客!今天,我们将深入探讨一个令人振奋的新提案——ERC-4337,它在无需任何共识层协议更改的情况下为以太坊引入账户抽象。该提案依赖于更高层的基础设施来实现其目标。让我们一起了解 ERC-4337 能提供什么,以及它如何解决当前以太坊生态系统的局限性。
ERC-4337 是什么?
ERC-4337 是一个提案,通过使用独立的 mempool 和一种称为 UserOperation 的新型伪交易对象,将账户抽象引入以太坊。用户将 UserOperation 对象发送到替代的 mempool,特殊类别的参与者——捆绑者(bundlers)将其打包成交易,并调用专用合约的 handleOps 方法。这些交易随后被包含进区块。
该提案旨在实现以下目标:
- 让用户能够使用具有任意验证逻辑的智能合约钱包作为其主要账户。
- 完全消除用户拥有外部拥有账户(EOA)的需求。
- 通过允许任何捆绑者参与包含账户抽象用户操作的过程,确保去中心化。
- 使所有活动都在公共 mempool 上进行,消除用户需要了解特定参与者直接通信地址的需求。
- 避免对捆绑者的信任假设。
- 无需任何以太坊共识层的更改,以实现更快的采纳。
- 支持其他用例,例如隐私保护应用、原子多操作、使用 ERC-20 代币支付交易费用以及开发者 赞助的交易。
向后兼容性
由于 ERC-4337 不改变共识层,对以太坊没有直接的向后兼容性问题。然而,ERC-4337 之前的账户由于缺少必要的 validateUserOp 函数,难以直接兼容新系统。可以通过创建一个兼容 ERC-4337 的账户,将验证逻辑重新实现为包装器,并将其设置为原始账户的受信任操作提交者来解决此问题。
参考实现
想深入了解 ERC-4337 技术细节的朋友,可以在 https://github.com/eth-infinitism/account-abstraction/tree/main/contracts 查看参考实现。
安全性考虑
ERC-4337 的入口点合约必须经过严格审计和形式化验证,因为它是整个系统的核心信任点。虽然这种方式降低了单个账户的审计和形式化验证负担,但也将安全风险集中在入口点合约上,必须进行稳健的验证。
验证应覆盖两个主要声明:
- 防止任意劫持的安全性:入口点仅在 validateUserOp 对特定账户通过后才通用调用该账户。
- 防止费用耗尽的安全性:如果入口点调用 validateUserOp 并通过,它还必须使用 calldata 等于 op.calldata 的通用调用。
结论
ERC-4337 是一个令人振奋的提案,旨在无需共识层协议更改就为以太坊引入账户抽象。通过使用更高层的基础设施,它为去中心化、灵活性以及各种用例打开了新可能。虽然仍需解决安全性问题,但该提案有望显著提升以太坊生态系统和用户体验。