跳至内容
0%

Account abstraction(ERC-4337)与 meta transactions(ERC-2771)对比

发布于 2023年10月26日1 分钟阅读

Meta Transactions(元交易)和账户抽象是改善 Ethereum 用户体验的技术。Meta Transactions 需要更新智能合约,这也是它逐渐被淘汰的原因。

账户抽象与元交易有何不同?

账户抽象的目标是抽象掉比 gas 费用更多的 Ethereum 账户复杂性。

从技术角度看,元交易与账户抽象的区别在于消息的结构及其向后兼容性。

了解更多关于账户抽象的内容

账户抽象中的 UserOp 是什么?

在 Meta Transactions 的场景下,行业标准是使用基于 EIP712 的消息,这要求所有智能合约都进行升级。

账户抽象标准化了一种特殊的交易格式,称为 UserOperations

UserOperation 包含了确定用户意图执行何种交易所需的全部信息,包括用于决定使用哪个 Paymaster 的字段、用户愿意支付的金额(在自行赞助的情况下),以及已签名的 UserOperation。

账户抽象中的 paymaster 是什么?

ERC-4337 账户抽象标准中的 Gas 抽象部分引入了 Paymasters

Paymasters 是具有任意验证逻辑的链上智能合约,可用于定义有效的 gas 赞助规则。这里的区别在于执行是在链上进行的

DAOsapps 和其他团队可以部署自己的定制化 paymaster,具备 ERC-20 gas 支付等功能。

这些定制化 Paymasters 可以使用 ERC-4337 与现有的 Bundler 服务即插即用。这与需要 Provider 采纳的 Meta Transactions 不同。

使用 Gas Manager API 赞助交易

开始使用

Relayer 与 paymaster 对比

在 Meta Transaction 概念中,Relayer 是由 Infra 提供商控制的私钥,而账户抽象的 Bundler 则是标准化的节点。在不同的 Bundler 之间切换,就像更改 API key 和 API URL 一样简单。

账户抽象中不存在 MinimalForwarder 的概念,因为赞助验证是在 Paymaster 合约内部的链上完成的。

在 Meta Transaction 的情况下,一笔原生交易内只能包含一笔交易,而 Bundler 可以将多个 UserOperations 打包成一个 bundle(一笔原生交易)!

使用 Bundler API 可靠地将 userOps 上链

开始使用

账户抽象相较元交易的 5 个优势

1. 无需更改智能合约

Meta Transactions 需要对所有采用它的现有合约进行更新,而账户抽象建立在现有基础设施之上。这意味着所有智能合约默认就支持账户抽象,这使其成为优于 Meta Transactions 的选择。

2. 在 bundler 和 paymaster 服务之间无缝切换

在 ERC-4337 下,所有 Bundler 和 Paymaster 都遵循特定的标准进行通信。团队甚至可以为自己的应用创建具有条件逻辑的 Paymaster。

3. 无需采用专有的 relayer

专有的 Relayer 缺乏一致性;每个 Relayer 都可能针对自己的用例使用不同的消息格式。这导致需要修改智能合约才能兼容每一个不同的 Relayer。

4. 更高的去中心化程度

随着越来越多的提供商推出自己的 Bundler 服务,开发者可以实现交易流程的去中心化。这也让开发者能够放弃任何表现不佳的 Bundler。

5. 不受开发者工具的锁定

使用 Meta Transactions 时,还需要使用 Infra 提供商的 SDK。这会导致工具锁定,在迁移 Relayer 时增加了摩擦成本。

而在账户抽象中,所有 SDK 都支持标准功能,开发者可以根据自身的专业知识进行选择,并根据偏好随时切换!

此外,由于每个供应商都将采用 UserOperation 标准,构建诸如 UserOperation Explorer 之类的工具也变得可行。

如何将元交易升级为账户抽象?

如果你已经为支持 Meta Transactions 而对智能合约进行了修改,迁移过程可以很简单地撤销这些更改。

与 Meta Transactions 不同,msg.sender 和 msg.data 在账户抽象中可以直接照原样使用。

如果需要定制化的 Paymaster 或 Account Factory,那么开发这些组件将是迁移过程中的下一步。

对于标准实现,我们建议使用经过充分审计的现有 AA 提供商,以减少开发时间和自身引入的 bug。

Alchemy 的 Gas Manager 提供了细粒度的控制项,例如每个地址的 Gas 用量限制可赞助的 UserOperations 数量上限地址白名单、赞助截止时间以及域名级别的白名单

Alchemy Gas Manager 控制台:配置 gas 赞助支出规则
Alchemy Gas Manager 的支出规则界面
Alchemy Gas Manager 中用于设置赞助限额和地址白名单的策略配置
Gas Manager 界面(续)

Gas Manager Admin API 支持以编程方式创建、读取和更新 Gas 策略。除此之外,开发者还能获得一个直观的可视化仪表盘,查看每一笔已赞助的 UserOperation!

Gas Manager 支出控制台Gas Manager 操作视图
Gas Manager 支出控制台Gas Manager 操作视图

结论

账户抽象(ERC-4337)是将无 gas 交易融入应用的新方法,也是更优的方法,它具备避免合约层面代码更改、无缝切换供应商、与其他现有基础设施的可组合性,以及更高的去中心化程度等优势。

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。