账户抽象与元交易

  • Alchemy
  • 发布于 2023-11-08 15:36
  • 阅读 25

本文详细探讨了账户抽象(Account Abstraction)与元交易(Meta Transactions)之间的区别,强调了账户抽象在用户体验、智能合约适应性和去中心化方面的优势。

Meta Transactions 和 Account Abstraction 是用来改善以太坊用户体验的技术。Meta Transactions 需要更新智能合约,这就是它们逐步被淘汰的原因。

Account Abstraction 与 Meta Transactions 有何不同?

Account Abstraction 旨在抽象化以太坊账户中更多的复杂性,而不仅仅是Gas费。

从技术角度来看,Meta Transactions 和 Account Abstraction 的区别在于消息的结构及其向后兼容性。

Account Abstraction 修复 Web3 - YouTube

Account Abstraction 中的 UserOps 是什么?

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

Account Abstraction 标准化了一种特殊的交易格式,称为 UserOperations

UserOperation 包含了用户意图执行的交易所需的所有信息,包括决定使用哪个 Paymaster、用户愿意支付多少(在自赞助的情况下)及已签名的 UserOperation 的字段。

Account Abstraction 中的 Paymasters 是什么?

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

Paymasters 是具有 任意验证逻辑的链上智能合约,可用于定义有效的Gas赞助。同样,这里的不同之处是 执行是在链上

DAOs、dapps 和其他团队可以部署他们自定义的 Paymasters,具有 ERC-20 Gas支付等功能。

这些自定义的 Paymasters 可以使用 ERC-4337 与现有的 Bundler 服务进行插拔。这与需要提供商采纳的 Meta Transactions 不同。

通过我们的 Gas Manager API 赞助交易

开始入门

Relayers 与 Paymasters

在 Meta Transaction 概念中,Relayers 是由基础设施提供商控制的私钥,而 Account Abstraction Bundlers 是标准化的节点。切换不同的 Bundlers 只需要更改 API 密钥和 API URLs。

Account Abstraction 中没有 MinimalForwarder 的概念,因为赞助验证是在 Paymaster 合约内链上完成的。

与 Meta Transaction 的一种原生交易内部仅有一个交易不同,Bundlers 将多个 UserOperations 打包成一个捆绑(一个原生交易)!

通过我们的 Bundler API 可靠地将 userOps 上链

开始入门

Account Abstraction 优于 Meta Transactions 的 5 大好处

1. 无需更改智能合约

虽然 Meta Transactions 需要更新所有现有合约来采纳它们,但 Account Abstraction 建立在现有基础设施之上。这意味着所有智能合约默认支持 Account Abstraction,使其成为优于 Meta Transactions 的选择。

2. 在 Bundler 和 Paymaster 服务之间无摩擦切换

在 ERC-4337 下,所有 Bundlers 和 Paymasters 都按照特定标准进行通信。团队甚至可以为他们的应用创建具有条件逻辑的自定义 Paymasters。

3. 无需采纳专有 Relayers

专有 Relayers 缺乏一致性;每个 Relayer 对其用例可以有自己的消息格式。这导致需要对智能合约进行更改以与每个不同的 Relayer 兼容。

4. 更高的去中心化

随着更多提供商提供 Bundler 服务,开发者获得了去中心化其交易流的能力。这也为开发者提供了放弃任何劣质 Bundlers 的机会。

5. 无开发者工具锁定

使用 Meta Transactions 时,你还需要使用基础设施提供商的 SDK。这会导致工具锁定,增加迁移 Relayers 的摩擦。

在 Account Abstraction 的情况下,所有标准功能都由所有 SDK 支持,从而允许根据专业知识选择,并根据偏好进行切换!

此外,由于 UserOperation 标准将由每个供应商采纳,构建如 UserOperation Explorer 这样的工具也是可行的。

如何将 Meta Transactions 更新为 Account Abstraction?

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

与 Meta Transactions 不同,msg.sender 和 msg.data 可以直接用于 Account Abstraction。

如果需要自定义的 Paymasters 或账户工厂,它们的开发将成为迁移的下一步。

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

Alchemy 的 Gas Manager 提供了细粒度控制,如 每地址Gas使用限制最大赞助的 UserOperations 数量列入白名单的地址、赞助截止日期、以及域级别的白名单

Alchemy Gas Manager 的支出规则用户界面Alchemy Gas Manager 的支出规则用户界面

Gas Manager 的用户界面继续Gas Manager 的用户界面继续

Gas Manager 管理 API 允许以编程方式创建、读取和更新Gas政策。更重要的是,开发者能够获得每个 UserOperation 赞助的精彩可视化仪表板!

Gas Manager 支出仪表板Gas Manager 操作视图Gas Manager 支出仪表板Gas Manager 操作视图

结论

Account Abstraction(ERC-4337)是将无Gas交易纳入你的 dapps 的新方法,具有避免合约级代码更改、无摩擦供应商切换、与其他现有基础设施的可组合性以及更高的去中心化等优势。

  • 原文链接: alchemy.com/overviews/43...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Alchemy
Alchemy
江湖只有他的大名,没有他的介绍。