币灵灵财经 2024-11-30 12:44 468
欧易交易所
软件大小:268.26MB
软件版本:v3.4.2
AA 的概念源于 EOA 账户的限制。EOA 账户(外部拥有账户)是以太坊中的典型用户账户,由公钥(区块链地址)表示,可通过私钥访问。它是以太坊生态系统的主要组成部分,允许用户与智能合约交互并在网络上执行交易。然而,使用 EOA 对人们来说可能具有挑战性,某些不便可能会影响用户体验。
EOA 的第一个不便之处与 Gas 的使用有关。每笔交易都会花费用户大量的 ETH 作为 Gas 费用(Gas 价格 25 Gwei 的简单 ETH 转账费用为 0.5 美元,合约交互或 Gas 价格更高的费用更多)。这使得小额交易的交易费用非常昂贵,尤其是在网络拥堵高峰期。此外,只有 ETH 可以用来支付 Gas,这意味着用户必须在他们的钱包中拥有 ETH,对许多用户来说,这是一个重要的入门障碍。
EOA 的第二个不便之处是无法进行条件交易,除非使用其他智能合约来实现某些逻辑。例如,如果用户想设置定时周期转账,他们必须将 ETH 转移到具有此功能的第三方智能合约中来实现此功能。
EOA 的第三个不便之处是签名加密算法。以太坊网络使用一种特定的数字签名算法,称为 secp 256 k 1 ,以确保交易的真实性和安全性。这是硬编码到系统中的,用户无法选择使用其他算法。
除了上文提到的 EOA 的三个不便之处,公钥和私钥之间的绑定关系也是一个问题。私钥是访问 EOA 的唯一方式,如果丢失,就没有办法恢复私钥。这意味着如果私钥丢失,所有与之关联的资产将无法找回。
随着人们对智能合约钱包的所有好处的讨论,以太坊社区实际上从一开始就一直在研究合约钱包。尽管已经提出了许多 EIP 来探索账户抽象化,但直到 2021 年都还没有建立统一的标准。以下是几个最具代表性的提案。
EIP-4337 最初在 2021 年 9 月提出,并在 2023 年 3 月被授权为 ERC-4337 。它的作者包括 Vitalik Buterin,Yoav Weiss,Kristof Gazso,Namra Patel,Dror Tirosh,Shahaf Nacson 和 Tjaden Hess。
EIP-4337 是一个改变游戏规则的提案,它引入了 AA,而无需对核心以太坊协议做任何改变。EIP-4337 引导了 ERC-4337 标准,构建者可以使用它来实现他们自己的智能合约钱包,还包括一些额外的基础设施,包括「Bundlers」和 UserOperation 内存池。通过这样做,它实际上在一个更高级的系统中复制了交易内存池的功能。用户不再发送交易,而是提交 UserOperation 对象,这些对象然后可以打包成一个单独的交易并包含在以太坊链中。
UserOperation — 描述代表用户发送的交易的结构。为避免混淆,它没有被命名为「交易」。它被发送给 Bundler 以与其他 UserOperations 打包在一起。然后,该包被作为一个单一的交易发送给区块创建者。
Sender — 发送新 UserOperation 的合约账户。智能合约钱包必须实现 ERC-4337 的 IAccount 接口。
EntryPoint — 执行 UserOperations 包的单例合约。Bundlers/Clients 将支持的 EntryPoint 加入白名单。此合约由 Infinitism 团队批准并审核,负责处理所有 UserOperations 并连接其他合约,包括 Wallet Factory、Aggregator、Paymaster。它在大多数兼容 EVM 的链上都将有相同的地址。
Bundler — 一个从内存池中捆绑多个 UserOperations 并创建 EntryPoint.handleOps() 交易的节点(区块构建器)。协议层的所有验证节点不必都是 Bundler。Bundler 服务可以独立于区块构建器运行,并使用 RPC 发送打包的 UserOperations。
Aggregator — 由账户信任的帮助合约,用于验证聚合签名。Bundlers/Clients 将支持的聚合器加入白名单。聚合器必须实现 ERC-4337 的 IAggregator 接口。
Paymaster — 一个合约,如果在 EntryPoint 合约中存放了足够的 ETH,它可以为 Sender 支付 UserOperation 的 Gas 费用。Paymaster 实现了有效的 Gas 抽象。Paymaster 必须实现 ERC-4337 的 Paymaster 接口。Paymaster 可以有自己的逻辑与 Sender 达成交易。例如,Sender 支付 USDC 给 Paymaster,然后 Paymaster 用 ETH 赞助其 UserOperations。实际上,只要 Paymaster 同意且在技术上可行,任何 ERC 20 代币甚至其他链上的代币都可以支持。
Wallet Factory — 一个可以被调用以为 ERC-4337 用户创建智能合约钱包的合约。部署钱包工厂是无需许可的。作为链上组件,它开放于公众审计和透明审查。广泛使用的 Wallet Factory 应由专业人士全面审计。
Bundlers 调用 EntryPoint 合约的 handleOps 函数,该函数以 UserOperation 为输入。
handleOps 在链上验证 UserOperation,检查是否由指定的智能合约钱包地址签名,以及钱包是否有足够的 Gas 来补偿 Bundler。
(来源:官方文档:https://eips.ethereum.org/EIPS/eip-4337)
ERC-4337 为用户和开发人员在以太坊平台上使用和构建 AA 提供了一个强大的框架。尽管这个框架是一个重要的前进步骤,但仍然需要解决和消除一些挑战和不确定性。
AA 的采用还处于初级阶段。根据 Dune ERC-4337 分析面板(ERC-4337 Account Abstraction from @niftytable),只有 65 k+ 的 UserOperations 在链上执行,其中 90% 来自 Polygon。因此,此时执行的 UserOperation 数量仍然非常小,其中大部分为开发者的测试,只有少部分归因于用户。我们注意到,已经整合了 AA 的产品仍处于初期阶段。同时,可以看到 Bundler 的利润为负(以 MATIC 计算为 -700)。这是因为 Polygon 上有一些 Bundler 没有正确计算预验证 gas。这种验证算法仍需要优化。
除此之外,还有一些问题需要解决。其中一个问题是 Bundlers 如何处理交易失败。在 Bundler 将几个 UserOperations 打包在一起后,Bundler 首先模拟交易以检查是否会回滚,然后计算由 Sender 或 Paymaster 返回的 Gas 费用是否大于交易支付的 Gas 费用。如果有利可图,Bundler 就将这批 UserOperations 一起作为一个交易提交给区块构建器。然而,交易可能仍然会失败,导致 Bundler 支付 Gas 费用但没有从 EntryPoint 收到退回的 Gas。例如,用户可能向不同的 Bundlers 发送操作。如果任何操作有利可图并且它们的模拟成功,Bundlers 愿意在链上提交它们。这意味着如果一个 UserOperation 同时被不同的 Bundlers 提交。只有一笔交易会成功,只有一个 Bundler 会从 EntryPoint 接收到 Gas 费用,所有其他 Bundlers 都会因链上失败而损失 Gas。虽然有人可能会争辩说,用户不应该这样做,这样的行为会被认为是恶意攻击,Bundler 可以禁止 Sender 地址,并拒绝来自这个地址的任何未来请求,但这并不是一个合理的方法,因为用户可能无意中提交了这个操作。这样的问题需要在代码中得到适当的解决,可能通过开发一个未完成的公共 mempool 网络。此外,由于突然的 Gas 波动,即使交易已经成功提交并被模拟为有利可图,Bundlers 也可能面临损失。
AA 对链上交易行为中的各种角色进行了抽象,包括发送者、Bundlers、Gas 支付者、合约钱包、签名者,从而允许用户在使用区块链时有更高的自由度。而且,AA 内的服务可以分别部署。
除此之外,基础设施提供者也需要整合不同的 Paymaster 服务,为客户提供免 Gas 的用户体验,并为他们提供不同的服务选项。这需要与第三方 Paymaster 服务提供商进行良好的沟通和集成工作,同时,根据市场需求,也可以设计基于现有 Paymaster 服务的更方便的集成解决方案。其他服务,如聚合签名,钱包工厂等,也是未来发展和集成的可能方向。
AA 的基础设施提供商需要为其用户提供 Bundler 服务和 Paymaster 服务,并且需要整合各种 Bundler 客户端和 Paymaster 服务提供商,以确保服务的健壮性。为了优化 API 和节点客户端之间的响应性,可能需要对 AA 数据进行索引,以减少单个请求的硬件消耗。为了提供更好的用户体验,基础设施提供商还需要为用户提供更多的服务选项。