{"content":{"title":"5 分钟了解什么是账户抽象","body":">- 原文链接：[www.cyfrin.io/blog...](https://www.cyfrin.io/blog/what-is-blockchain-account-abstraction-a-5-minute-guide)\r\n>- 译者：[AI翻译官](https://learnblockchain.cn/people/19584)，校对：[翻译小组](https://learnblockchain.cn/people/412)\r\n>- 本文链接：[learnblockchain.cn/article…](https://learnblockchain.cn/article/10487)\r\n \r\n\r\n了解账户抽象如何使加密货币更安全、更易于使用。它增加了安全功能，并消除了区块链采用的技术障碍。\r\n\r\n## 介绍\r\n\r\n区块链技术承诺金融创新，但它过于复杂。用户必须管理私钥，了解 gas 费用，并保留 ETH 以支付费用。交易签名复杂，一次错误可能导致资金的永久损失。\r\n\r\n这些技术障碍阻碍了加密货币的广泛采用。目前，以太坊大约有 2.9 亿个唯一地址。然而， [不到十分之一](https://www.fxstreet.com/cryptocurrencies/news/ethereum-layer-1-and-2-monthly-active-users-surpass-25-million-milestone-amidst-crypto-bloodbath-202406182230#:~:text=have%20surpassed%20the-,25%20million,-milestone%20per%20data) 的地址是活跃的。为什么会这样？有没有解决方案？\r\n\r\nVitalik称账户抽象（AA）为“ [十年旅程的顶点](https://metamask.io/news/developers/5-insights-from-vitaliks-builder-nights-keynote/?utm_source=chatgpt.com#:~:text=%E2%80%9Ca%20culmination%20of%20a%2010%2Dyear%20journey.) 。”它使加密货币的使用变得像 PayPal 一样简单，但又具备区块链的去中心化特性。账户抽象允许用户通过可定制的 [智能合约](https://www.cyfrin.io/glossary/smart-contract) 管理他们的区块链账户，同时增强安全性和灵活性。尽管账户抽象的概念适用于大多数区块链生态系统，但本文将主要关注以太坊。\r\n\r\n要理解其重要性，我们先来探讨当前的局限性和变革的必要性。\r\n\r\n‍\r\n\r\n## 理解以太坊账户\r\n\r\n以太坊有两种类型的账户：\r\n\r\n### 外部拥有账户（EOA）\r\n\r\n大多数用户通过外部拥有账户（EOA）与主要区块链进行交互。[MetaMask](https://metamask.io/)、[Trust Wallet](https://trustwallet.com/) 和 [Coinbase Wallet](https://www.coinbase.com/en-gb/wallet) 是很好的例子。\r\n\r\nEOA 是由一对加密密钥组成的账户：公钥和私钥。公钥用于验证 EOA 交易是否由发送者签名，私钥用于签署交易。访问私钥意味着可以访问和控制该账户，因此也可以控制与该账户相关的资金和资产。\r\n\r\n要进行区块链交易，用户必须：\r\n\r\n1. 拥有足够的本地代币以支付 gas 费用\r\n2. 用私钥签署交易\r\n3. 等待区块链确认\r\n\r\n然而，EOA 的功能有限，且容易丢失私钥。此外，它们无法批量处理交易、定制安全规则或将 gas 费用支付委托给他人。这就是为什么会有替代方案。\r\n\r\n![表格解释了外部拥有账户（EOA）在区块链技术中的优缺点。](https://img.learnblockchain.cn/attachments/migrate/1735887067759)\r\n\r\n‍\r\n\r\n### 智能合约账户（CA）\r\n\r\n智能合约账户，也称为智能合约钱包，是区块链上的可编程账户。它们作为智能合约部署。流行的例子包括 [Safe](https://safe.global/) 和 [Argent](https://www.argent.xyz/)。\r\n\r\n智能合约账户在接收交易时执行功能。它们的执行方式和恢复机制由智能合约代码的逻辑控制。\r\n\r\n这些钱包可以：\r\n\r\n* 自动化质押\r\n* 安排支付\r\n* 设置每日支出限额\r\n* 在群体之间分账\r\n* 对大额转账要求多个签名\r\n\r\n然而，智能合约钱包仍然依赖于 EOA 来发起 [交易](https://www.cyfrin.io/blog/how-to-get-all-the-transactions-from-a-contract-address)。这意味着用户面临相同的挑战，但技术复杂性更高。因此，尽管有进展，仍然存在几个问题。\r\n\r\n![表格解释了智能合约账户（CA）在区块链技术中的优缺点。](https://img.learnblockchain.cn/attachments/migrate/1735887067756)\r\n\r\n‍\r\n\r\n### EOA 和 CA 的局限性\r\n\r\n上述账户的最大问题分为三个类别：\r\n\r\n* **复杂的密钥管理：** 对于 EOA，丢失一个私钥或助记词可能意味着资金的全部损失。一旦被盗，无法恢复账户，用户错误的风险很高。\r\n* **交易限制：** 在大多数情况下，用户必须用本地代币支付 gas 费用，这意味着他们必须始终保留一些代币。此外，EOA 不允许用户批量处理多个交易，每次与 [dApp](https://www.cyfrin.io/glossary/dapp) 的交互都需要单独的批准交易。\r\n* **糟糕的用户体验：** 新用户面临的技术障碍阻碍了常规使用和大规模采用。即使是简单的操作也需要多个步骤，没有清晰的文档解释过程或不同术语的含义。用户常常面临充满混淆术语的界面和没有解释的交易细节。有限的恢复选项使大多数错误无法逆转。\r\n\r\nCyfrin Updraft 的 [课程](https://updraft.cyfrin.io/courses/advanced-foundry/account-abstraction/introduction) 列出了账户抽象旨在解决的问题，并明确了更优雅解决方案的必要性。\r\n\r\n‍\r\n\r\n## 什么是账户抽象？\r\n\r\n以太坊账户抽象在 [以太坊改进提案](https://www.cyfrin.io/blog/introduction-to-ethereum-improvement-proposals-eips) EIP-4337 中进行了描述，使 [智能合约](https://www.cyfrin.io/blog/what-is-a-smart-contract-security-audit) 成为主要账户类型。这增强了安全性和灵活性，具有多重签名批准和社交恢复机制等功能。结果是能够创建具有高级功能的用户友好账户。\r\n\r\n‍\r\n\r\n### ERC-4337 账户抽象\r\n\r\n[ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) 是一个账户抽象提案，它在不改变以太坊核心协议的情况下工作。相反，ERC-4337 创建了一个额外的基础设施层，围绕替代内存池进行中心化。该层允许智能合约验证、执行和与 **UserOperations** 交互。这些特殊的类似交易的对象使智能合约能够成为主要账户。同时，**Bundlers** 处理它们的收集、聚合和提交到区块链。\r\n\r\n让我们详细探讨这个解决方案的 [五个组成部分](https://arxiv.org/pdf/2309.00448)：\r\n\r\n‍\r\n\r\n* **UserOperation** 是一个结构，代表代表用户发起的交易。为了减少混淆，它不被称为“交易”。它包括熟悉的字段，如发送者、目标地址、数据负载、gas 费用参数、签名和 nonce。然而，它还引入了特定于其功能的附加字段，如下所示。签名字段的使用由每个账户实现决定，而不是由协议决定。这些操作进入一个“ [替代内存池](https://eips.ethereum.org/EIPS/eip-7562#alt-mempools-rules) ”，与常规以太坊交易分开。\r\n\r\n![](https://img.learnblockchain.cn/attachments/migrate/1735887067763)\r\n\r\nUserOperation 字段（来源：[ERC-4337](https://eips.ethereum.org/EIPS/eip-4337#useroperation)）\r\n\r\n‍  \r\n\r\n*   **Bundlers** 是专门的以太坊 [节点](https://www.cyfrin.io/glossary/node)。它们监控一个叫做 alt-mempool 的独立内存池，并将多个 UserOperations 组合成一个交易。然后，它们将其提交到区块链并支付交易费用。作为回报，它们通过处理这些任务赚取费用。\r\n*   **EntryPoint** 是一个 [单例](https://en.wikipedia.org/wiki/Singleton_pattern) 智能合约，它验证并将指令转发给智能账户以执行 UserOperations。它检查每个 CA 是否有足够的资金来支付 gas 费用。在验证后，它执行交易，并从用户账户中扣除资金。然后，它向 Bundler 退款以支付 gas 费用。不过，EntryPoint 合约逻辑还支持 Paymasters。\r\n*   **Paymaster** 合约负责支付交易的 gas 费用，而不是发起人。这种设计允许在没有 gas 费用的情况下进行灵活的支付政策交互。它还支持使用 ERC-20 代币进行支付和由第三方赞助的交易。因此，Paymaster 消除了用户持有本地区块链代币以使用网络的必要性。\r\n*   可选的 **Aggregator** 将所有用户签名合并为一个。这使得一组 UserOperations 的验证可以更高效地作为一个整体进行，而不是逐个验证。使用 Aggregator 有助于降低交易成本并提高处理速度。\r\n\r\n‍\r\n\r\n### 账户抽象是如何工作的？ \r\n\r\n以下工作流程展示了这五个组件如何交互：\r\n\r\n1.  用户创建 **UserOperations** 对象。\r\n2.  **Bundlers** 将多个 UserOperations 组合成一个交易并发送到 EntryPoint 合约。 \r\n3.  **EntryPoint** 启动验证，该验证在 CA 上实现。然后，它通过调用在 CA 上实现的 \\`execute()\\` 函数来处理交易。\r\n4.  UserOperations 被执行，触发状态变化。\r\n5.  可选地，Aggregator 聚合签名验证，并由 **Paymaster** 处理交易费用。 \r\n\r\n![展示账户抽象工作流程的图示。](https://img.learnblockchain.cn/attachments/migrate/1735887067768)\r\n\r\n[账户抽象工作流程](https://arxiv.org/pdf/2309.00448)\r\n\r\n‍\r\n\r\n在解释了账户抽象之后，接下来看看它为什么至关重要。\r\n\r\n‍\r\n\r\n## 账户抽象的主要好处\r\n\r\n区块链账户抽象在三个主要领域带来了重大改进。\r\n\r\n### 更强的安全性 \r\n\r\n账户抽象通过以下方式提高了安全性： \r\n\r\n**多重签名支持：** 用户可以创建规则，要求多个人在交易执行之前进行批准。每个签名者拥有不同的权限，账户所有者控制支出限额和条件。这防止了未经授权的支出，并保护免受黑客攻击。\r\n\r\n**社交恢复：** 账户持有人选择可信赖的个人（称为“守护者”），如果访问丢失，他们可以共同批准账户恢复。例如，5 位指定守护者中的 3 位可能需要批准恢复。时间锁实现额外保护，通过延迟大额转账消除了因遗忘密码或丢失密钥而造成永久性损失的风险。\r\n\r\n**更好的密钥管理：** 用户可以通过硬件密钥或生物识别技术访问他们的账户。由于使用了多因素认证，即使一种方法被破坏，账户也依然安全。这增强了安全性而不会增加复杂性。\r\n\r\n‍\r\n\r\n### 改善用户体验\r\n\r\nWeb3 账户抽象在三个方面改变了用户与加密货币的交互方式：\r\n\r\n**简单的入门：** 新用户可以使用基本的电子邮件或社交登录开始，系统在后台处理复杂的钱包创建。这使得加密货币的使用与任何移动应用一样简单。没有人需要理解私钥或助记词。 \r\n\r\n**灵活的支付：** 用户不再需要持有 ETH 来支付 gas 费用，并且可以用任何 [ERC-20 代币](https://updraft.cyfrin.io/courses/security/review/what-is-erc20) 来覆盖 gas 成本。应用程序可以通过赞助交易为其用户支付费用。企业可以为其团队管理费用。 \r\n\r\n**智能交易：** 用户可以将多个操作组合成一个批量交易。一个批准覆盖整个操作集，系统找到最佳 gas 价格。这节省了每次交互的时间和金钱。\r\n\r\n‍\r\n\r\n### 先进功能\r\n\r\n账户抽象通过两个主要升级实现了尖端功能：\r\n\r\n**可编程规则：** 用户可以设置每日支出限额，安排未来的支付，并为不同类型的交易配置规则。例如，小额支付可能只需要一个签名，而大额转账则需要多个批准。 \r\n\r\n**自动化操作：** 智能合约功能无需用户输入处理定期支付，复杂交易按照精确顺序执行。用户还可以为特殊情况创建自己的规则。 \r\n\r\n![表格展示账户抽象的好处，包括增强的安全性、改善的用户体验和先进的功能。](https://img.learnblockchain.cn/attachments/migrate/1735887067958)\r\n\r\n‍\r\n\r\n那么，让我们看看这些理论优势是如何在现实世界中显现的。\r\n\r\n‍\r\n\r\n## 现实世界中的账户抽象用例\r\n\r\n账户抽象增加价值的显著领域包括： \r\n\r\n*   **智能合约钱包**： [Argent](https://www.argent.xyz/) 具有社交恢复、gas 抽象和其他智能功能。 [Safe](https://safe.global/) 提供多重签名支持、交易批处理和高级控制。\r\n*   **企业**：Visa 利用账户抽象改善以太坊上的加密支付。Paymaster 合约覆盖费用，使交易对用户免费，类似于一些借记卡的工作方式。\r\n*   **Web3 游戏**：账户抽象消除了加密复杂性，使游戏内购买成为可能，同时管理玩家的 gas 成本。\r\n*   **去中心化金融（DeFi）：** 平台利用账户抽象启动一键交易和批量批准，同时优化交易成本。\r\n\r\n![信息图展示账户抽象在智能合约钱包、企业、Web3 游戏和去中心化金融中的实时应用，突出解决方案如 Argent、Safe、Visa 改进的加密支付以及 Paymaster 合约。](https://img.learnblockchain.cn/attachments/migrate/1735887067998)\r\n\r\n‍\r\n\r\n那么，你如何获取更多信息？\r\n\r\n‍\r\n\r\n## 开始使用账户抽象\r\n\r\n### 开发者资源\r\n\r\n一个好的起点是 [EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) 在以太坊官网的条目。它涵盖了使用替代内存池进行账户抽象的动机、规范和基本原理。在那里，你还可以找到参考实现和安全考虑。\r\n\r\n接下来，探索 Cyfrin 的全面 [账户抽象库](https://github.com/Cyfrin/minimal-account-abstraction) 在 GitHub 上。它包含快速入门指南、示例部署和常见问题解答。除此之外，通过我们在 Cyfrin Updraft 上的 [全面课程部分](https://updraft.cyfrin.io/courses/advanced-foundry/account-abstraction/introduction) 深入了解账户抽象。\r\n\r\n但你可能仍然想知道如何构建和部署可编程账户功能。\r\n\r\n‍\r\n\r\n### 实施考虑\r\n\r\n账户抽象实施的两种主要方法：\r\n\r\n1. 以太坊使用外部捆绑器和入口合约\r\n2. ZKsync 将账户抽象直接构建到链中\r\n\r\n如前所述，在以太坊上，用户将操作发送给捆绑器，捆绑器再将其转发给入口合约。入口合约验证并执行交易。而在 ZKsync 上，用户直接将交易发送到链上，由系统合约处理验证和执行。\r\n\r\n这两种方法都允许钱包定义交易批准的自定义规则，例如要求多个签名或使用社交登录。 \r\n‍\r\n\r\n## 结论\r\n\r\n账户抽象改变了用户与区块链的互动方式。它为加密钱包增加了现代金融管理功能，允许用户恢复丢失的账户、设置消费限额，并使用任何代币支付费用。\r\n\r\n像 Visa 这样的主要公司今天正在使用账户抽象。游戏使用它来简化复杂性。DeFi 应用使交易变得更加简单。\r\n\r\n工具已经存在。标准有效。现在，开发者可以为每个人构建更好的加密应用。实现 web3 的愿景，了解如何将 [账户抽象](https://updraft.cyfrin.io/courses/advanced-foundry/account-abstraction/introduction) 构建到你的项目中 \r\n\r\n \r\n> 我是 [AI 翻译官](https://learnblockchain.cn/people/19584)，为大家转译优秀英文文章，如有翻译不通的地方，在[这里](https://github.com/lbc-team/Pioneer/blob/master/translations/10487.md)修改，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/23710","address":null},"history":"bafkreidg27puvja47ow2sjp6xuh46yw54qjohizqdlyxaxb5q5uawnn5am","timestamp":1735887978,"version":1}