加密货币

账户抽象

定义

账户抽象是一种钱包设计,允许账户使用智能合约规则进行签名、安全性和燃料费用支付,而不是固定的协议逻辑。

什么是账户抽象?

账户抽象是一种加密钱包的方法,其中在区块链上发起操作的“账户”可以由可编程规则管理,而不是仅限于链的默认签名和费用模型。在以太坊上,默认账户类型是外部拥有账户(eoa),由私钥直接控制,并遵循严格的协议检查(签名、随机数和以太币作为燃料费)。通过账户抽象,这些检查可以移入合约代码中,以便钱包可以强制执行自定义的安全性和可用性功能。这个概念是理解加密钱包类型的核心构建块,因为它改变了“钱包”可以做的事情,不仅仅是持有密钥。在以太坊上逐步解释账户抽象通常从交易如何进入区块开始。通过erc 4337,用户不从外部拥有账户(eoa)发送普通交易;他们签署一个描述他们想要做什么的“用户操作”消息。专门的参与者(通常称为捆绑者)收集许多用户操作并将其提交给链上的入口点合约,该合约调用每个钱包合约进行验证和执行。验证可以包括签名检查、随机数逻辑和自定义政策(例如,通过会话密钥“仅允许此dapp在接下来的10分钟内使用”)。另外,eip 7702针对一个不同的痛点:它提供了一种方法,使现有的外部拥有账户能够暂时将行为委托给合约代码,帮助用户在不立即迁移到全新地址的情况下采用智能合约式的钱包功能。账户抽象加密在账户抽象加密讨论中,关键思想是将“谁控制账户”与“网络如何验证操作”分开。协议不再假设每个用户都使用一种方案签名并以相同方式支付费用,账户可以定义自己的验证逻辑:多重签名阈值、支出限制、会话密钥或恢复规则。在实践中,以太坊追求了两条主要路径:通过erc 4337的应用层方法,以及通过eip 7702的协议级升级路径,帮助现有的基于密钥的账户表现得更像合约控制的账户。这两条路径的目标是相同的:用户通过可编程账户进行交互,同时保持底层链的安全性和无权限性。AA钱包AA钱包是围绕智能合约钱包构建的钱包,这意味着钱包的“账户”是一个合约,可以根据代码验证和执行操作。该代码可以允许一些现代应用程序中熟悉的功能:一步批准和交换、每日转账限额,或要求两个设备签署大额提款。AA钱包还可以支持燃料费灵活性,例如让第三方赞助费用或通过支付者机制以代币支付费用(在erc 4337系统中常见)。重要的是,用户体验可以在不改变自我保管核心理念的情况下得到改善:你仍然控制钱包,但控制是通过可编程规则表达的,而不是一个无法恢复的单一私钥。为什么账户抽象很重要

账户抽象很重要,因为它将钱包从“密钥容器”升级为可编程的安全性和用户体验层,这对于主流可用性和更安全的自我保管至关重要。它通过启用恢复、默认多重签名和细粒度权限来减少单点故障(丢失密钥、被盗密钥)——这些功能仅用外部拥有账户(eoa)很难或不可能安全实现。它还使更好的入门成为可能:应用程序可以赞助燃料费、批量操作,并消除“批准然后执行”等混淆步骤,同时仍然在链上结算。随着时间的推移,AA钱包的更广泛采用可以使加密货币感觉更像安全的互联网银行——而不牺牲用户所有权——这个想法直接符合关于加密钱包类型的更广泛指南。[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

常见问题

以太坊上的账户抽象是如何工作的?

它允许账户使用智能合约逻辑来验证和执行操作,而不仅仅依赖于固定的EOA规则。通常,erc 4337通过一个EntryPoint合约路由签名的用户操作,而eip 7702则使EOA能够将行为委托给合约代码。

EOA和账户抽象钱包有什么区别?

EOA由私钥直接控制,只能遵循协议内置的签名和燃气规则。账户抽象钱包通常是一个智能合约钱包,可以强制执行自定义的安全性、恢复和费用支付逻辑。

ERC 4337和账户抽象是一样的吗?

Erc 4337是一个广泛使用的账户抽象实现路径,避免了改变以太坊共识规则。账户抽象是一个更广泛的概念,也可以通过协议升级(如eip 7702)来实现。

账户抽象可以让你用代币支付燃气费吗?

是的,许多AA设计支持替代费用流,例如支付方赞助燃气或在执行过程中交换代币以覆盖费用。具体能力取决于钱包的合约逻辑和所使用的基础设施。

账户抽象使钱包更安全吗?

可以,因为安全策略可以被编程:多重签名、支出限制、基于设备的批准和恢复机制。然而,安全性也取决于钱包智能合约代码的质量和审计。

账户抽象:定义、AA钱包、ERC-4337