本文总结了关于 ERC-4337 和账户抽象(AA)的一些常见问题、疑虑和反对意见,并将它们分为三类:误解、模棱两可的观点和有效的担忧。文章详细解释了 AA 的优势和局限性,例如 AA 如何使智能合约钱包成为区块链上的“一等公民”,以及它与 MPC 和现有 DApp 的兼容性问题。此外,还讨论了 AA 交易的成本、中心化风险以及标准化状态。
在 ZeroDev,我们的工作是帮助开发者学习和采用 AA,所以很自然地,我们遇到了很多问题、担忧和反对意见。
在这篇文章中,我想总结一些针对 ERC-4337 和 AA 的常见抵触,我将它们分为三类:
让我们深入探讨吧!
在没有 AA 的情况下,像 Safe/Argent 这样的智能合约钱包并不是区块链上的“一等公民”,这意味着你不能直接从它们发起交易。相反,你必须执行以下操作之一:
然而,有了 AA,你可以像从 MetaMask 直接发送交易一样,从 SCW 直接发送交易。这使得使用 SCW 作为你的唯一钱包成为可能,这正是未来十亿 Web3 用户将要做的事情。
这个常见的困惑源于这样一个事实,即今天大多数 AA 钱包都由私钥拥有(就像 EOA 钱包一样),但这是被误导的,因为:
思考 MPC 与 AA 的最佳方式是:
有了 MPC,你实际上拥有一个“虚拟私钥”,而无需将其存储在任何地方,这比必须写下 12 个单词的助记词的现状有了巨大的改进。
AA 关注的是当你发送交易时会发生什么——谁支付 gas?使用什么 token 支付 gas?谁签署交易?所有这些都可以用 AA 抽象出来。
正如你所看到的,MPC 和 AA 实际上可以很好地互补——MPC 避免了用户处理密钥,而 AA 使交易顺畅。事实上,正是通过将 MPC 与 AA 相结合,我们才能够提供 社交 AA 钱包。
由于 AA 使用智能合约钱包,因此与同等的 EOA 交易相比,每笔交易必然有一些开销。还有将智能合约钱包部署到链上的成本。
但是,有多种因素降低了 AA 的交易成本:
因此,AA 交易或普通交易花费更多的 gas 实际上取决于工作负载。对于某些应用程序(尤其是 DeFi),AA 交易最终可能会更便宜!
毫无疑问,今天在 AA/ERC-4337 上构建任何东西的人都是开拓者——没有太多的先例可以参考或模式可以借鉴。从这个意义上讲,在 AA 上构建东西肯定比构建经典的 DApp 涉及更多的技术风险。
但是,构建完整的 AA 应用程序所需的一切(特别是 ERC-4337 本身)已经在生产/主网上运行。我们正处于一个拐点,你要么在构建最后的非 AA 应用程序之一,要么在构建第一个 AA 应用程序之一。 选择权在你。
在 AA 之前,有“元交易”,它可以通过使用中继器代表用户提交交易来移除 gas (或用 ERC20s 支付 gas)。然而,主要问题是 DApp 合约必须使用像 _msgSender()
这样的辅助函数而不是更直观的 msg.sender
来获取交易发送者的地址。毋庸置疑,大多数 DApp 没有这样做,因此元交易的兼容性受到严重限制。
然而,AA 没有这个问题,这使得它与绝大多数 DApp 兼容。然而,兼容性中断的地方是当 DApp 要求钱包签署消息时。事实证明,EOA 签名和智能合约钱包签名不能以相同的方式验证,因此有一个标准 ERC-1271,DApp 应该实现该标准以与智能合约钱包兼容。这是一个按是否支持 ERC-1271 分组的不完整且可能过时的 DApp 列表。
如果 DApp 需要消息签名但不支持 ERC-1271,那么 AA 确实无法与 DApp 一起使用。幸运的是,该领域完全一致,需要支持 ERC-1271,并且今天编写的新 DApp 如果使用像 OpenZeppelin 这样的库,通常默认支持 ERC-1271。
当有人说 ERC-4337 不是“真正的”AA 时,他们通常指的是 ERC-4337 没有集成到区块链协议本身中。相反,像 zksync 和 StarkNet 这样的新网络已经将“enshrined”AA 作为其协议的一部分。
以太坊和大多数其他 EVM 链没有 enshrined AA 的原因有两个:
将 AA enshrined 到协议本身也意味着每个 EVM 链都必须实施这种破坏性的更改,这可能需要很长时间。相反,由于 ERC-4337 是作为智能合约实现的,因此部署到新链实际上是部署一些智能合约的问题。这就是为什么 ERC-4337 今天已经在所有 EVM 链上运行的原因。
无论如何,“真正的 AA”和“ERC-4337 AA”之间的区别对于最终用户来说无关紧要。从他们的角度来看,他们的交易无论如何都可以“正常工作”。因此,鉴于社区对 ERC-4337 的认可程度,这是我们在短期内在 EVM 区块链上实现 AA 的最佳希望。
理论上,ERC-4337 的设计使得任何人都可以启动中继器(又名“bundler”),这与以前通常由单个实体运行的中继器网络不同。
然而,在实践中,除了 StackUp 之外,大多数 bundler 实现都没有为生产做好准备,因此今天大多数 ERC-4337 流量都通过 StackUp。这与大多数以太坊流量都通过 Geth 类似。希望这种情况会随着其他 bundler 投入生产而改变。
虽然 ERC-4337 已经部署在主网上,但从技术上讲,它还没有最终确定。EIP 仍然处于草案状态,核心团队已经承认 EIP 和智能合约仍然可能更改。
幸运的是,预计对 EIP 和核心智能合约的任何更改都不会影响核心帐户接口,因此今天与 ERC-4337 兼容的钱包很可能在将来仍然与 ERC-4337 兼容。
虽然 ERC-4337 已经过审计,但它尚未经过形式化验证,因此不能完全排除存在一些关键安全问题的可能性。
幸运的是,有一些团队正在进行 ERC-4337 的形式化验证(我们自己的 taek 是主要贡献者)。当 ERC-4337 经过形式化验证后,我们预计它会最终确定。
毫无疑问,今天在 AA 上构建的任何人都将是承担技术风险的开拓者。但风险伴随着回报——如果执行得当,你的项目将在可用性方面让你的竞争对手相形见绌。
在 ZeroDev,我们开发了一个 AA 框架,可以大大缩短开发人员在 AA 上构建钱包和 DApp 的时间——并降低风险。查看 ZeroDev 并立即开始构建 Web3 的未来!
- 原文链接: docs.zerodev.app/blog/er...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!