ERC-4337 是部署在以太坊主网上的最新 ERC 标准,它实现了用户们期待已久的账户抽象功能。
账户抽象是一种将外部账户和智能合约相结合的技术。它允许用户使用由智能合约控制的外部账户(即“智能合约钱包”)进行交易。
更多关于账户抽象的知识,请参考“什么是账户抽象”。
在成为 ERC 标准之前,EIP-4337 最初于 2021 年 9 月被 Vitalik Buterin 与其他 6 人共同提出,而后在 2023 年 3 月 1 日在 WalletCon 上正式发布,成为 ERC-4337,开启了“智能合约钱包”的新篇章。
但其实早在 9 年前,Vitalik 就提出了账户抽象的概念。中间经历过数个 EIP 提案,但都未获得批准。这是因为之前的所有提案都需要对以太坊底层协议进行更改,会致使以太坊进行硬分叉。而 ERC-4337 则规避了这一点。它是唯一一个不用更改以太坊协议就可实现账户抽象的提案。
那么,ERC-4337 是如何在不需要更改协议的情况下实现账户抽象的呢?
ERC-4337 没有对以太坊的底层共识进行更改,而是引入了 UserOperation 的概念来实现账户抽象。
UserOperation 是由用户单独发起的交易操作。包含交易发起人(用户)、交易需求、签名等交易相关信息。UserOperation 可以被“智能合约钱包”内的智能合约调用函数读取并验证,然后上传至以太坊主网成功执行交易。
在 ERC-4337 标准中,多个 UserOperation 可以组成 UserOperation mempool。UserOperation mempool 的功能和传统的 mempool 类似,是一个包含多笔交易的内存池。
UserOperation mempool 中的 UserOperation 会被汇集起来由使用 Flashbots 等服务的矿工或打包者进行处理。打包者会将多个 UserOperation 利用 Bundler 捆绑成一个单笔的 Bundle Transaction 进行验证,从而实现交易批量处理。
在处理交易时,打包者们会为 Bundle Transaction 先支付 Gas 费用,后续再收取用户为每个 UserOperation 所支付的费用进行补偿。UserOperation 的处理顺序也和传统 mempool 的处理顺序一样,按费用优先级逻辑排列。
ERC-4337 的发布对于加密钱包的发展有着重要意义,主要体现在两个方面:
ERC-4337 实现的账户抽象大幅提升了加密钱包的安全性。它可以支持更加安全且高效的验证逻辑和签名方案,而不是依赖单一私钥和冗杂的助记词。其中,依靠多签方案实现的社交恢复功能和生物识别签名都进一步增强了用户资产的安全性。
ERC-4337 为加密钱包带来了多种灵活且便捷的交易功能。这些功能可以提高交易的互操作性,增加用户友好度并节省交易时间。举例来说,如 ERC-20 代币费用支付、EVM-兼容网络支持、批量捆绑交易、一键支付等功能。