账户抽象(Account Abstraction)
约 1621 字大约 5 分钟
2026-05-12
账户抽象把“账户如何验证操作、谁来付 gas、哪些权限可以自动执行”从固定的 EOA 模式里释放出来,让钱包更像可编程账户系统。
为什么要学这个
普通 EOA 钱包的限制很明显:用户必须保管私钥,必须用原生代币付 gas,签名权限很粗,自动化很难做,恢复体验也不友好。
Account Abstraction 试图把账户变成智能合约,让账户自己定义验证逻辑和执行策略。这样就可以支持多签、社交恢复、gas sponsorship、session key、限额、批量交易和更细粒度权限。
账户抽象的核心不是“免 gas”,而是把账户控制权从单一私钥扩展成可编程规则。
第一性原理
当账户本身可以编程,权限就可以从“有私钥/没私钥”变成“在什么条件下允许什么动作”。
这对 AI x Web3 特别重要。Agent 不应该拿用户主私钥,也不应该拥有无限交易权限。更合理的方式是给 Agent 一个可限制、可过期、可撤销、可审计的行动空间。
- 验证逻辑可定制:账户可以用多签、Passkey、社交恢复或模块规则验证操作。
- 支付逻辑可定制:gas 可以由用户、应用、paymaster 或其他资产承担。
- 权限可以最小化:session key 可以只允许特定合约、额度、时间和方法。
知识节点
ERC-4337
难度:中级。 ERC-4337 是以太坊生态最重要的账户抽象标准之一,用 alt mempool 和 EntryPoint 实现智能账户交易流程。
在 ERC-4337 里,用户不直接发送普通交易,而是创建 UserOperation。Bundler 收集这些操作,提交到链上的 EntryPoint 合约。EntryPoint 再调用智能账户验证和执行逻辑。
可以把流程简化成:
- 用户或应用生成
UserOperation。 - 智能账户验证签名、nonce、余额或策略。
- Bundler 打包并提交操作。
- EntryPoint 调用账户执行目标动作。
- Paymaster 可选择赞助 gas。
相关 topic
- EIP-4337:标准原文,适合理解
UserOperation、EntryPoint、Bundler 和 Paymaster。 - ERC-4337 Documentation:开发者文档,适合了解账户抽象组件和生态实现。
Smart Account
难度:中级。 Smart Account 是由合约控制的账户,可以把权限、恢复、批量执行和策略写进账户逻辑。
EOA 的验证逻辑基本固定:谁有私钥,谁就能签名。Smart Account 则可以规定:
- 需要多个签名才能转移大额资产。
- 小额交易可以自动通过。
- 某些 dApp 可以在一定额度内调用。
- 钱包丢失后可以通过恢复人或设备找回。
- 交易可以批量执行,减少用户确认次数。
风险也随之增加。智能账户本身是合约,合约 bug、模块权限、升级逻辑和外部依赖都会变成账户风险。
相关 topic
- 钱包(Wallet):先理解 EOA、签名、交易和 gas 的基础体验。
- 智能合约(Smart Contract):Smart Account 本质上也是管理资产和权限的合约系统。
Bundler
难度:中级。 Bundler 负责收集 UserOperation,模拟验证并提交到 EntryPoint。
在 ERC-4337 里,Bundler 类似交易打包服务,但它处理的是 UserOperation,不是普通钱包直接发出的交易。Bundler 需要判断操作是否有效、是否能支付 gas、是否会在执行中失败。
对应用来说,Bundler 是基础设施依赖。Bundler 不稳定,用户操作就可能卡住;模拟不充分,失败交易会带来体验和成本问题。
Paymaster
难度:中级。 Paymaster 允许第三方为用户操作支付 gas,或者让用户用非原生资产承担费用。
Paymaster 常用于 onboarding:新用户没有 ETH,也可以完成第一笔操作。它也可以用于活动补贴、订阅、白名单交易或应用内 gas 抽象。
但 Paymaster 不是免费午餐。它需要风控:
- 赞助哪些方法?
- 每个用户额度是多少?
- 是否限制目标合约?
- 如何防止 spam 和套利?
- 谁承担失败操作成本?
Session Key
难度:高级。 Session Key 是给应用或 Agent 的临时权限,不应该等同于用户主私钥。
Session Key 可以被限制为:只在某段时间有效,只能调用某个合约,只能使用某些方法,只能花费某个额度,只能在特定链上执行。
这正是 Agent Wallet 的关键基础。你不希望 AI Agent 每次都打断用户签名,也不希望它拥有无限权限。Session Key 提供中间状态:让 Agent 可以自动执行低风险动作,但高风险动作仍然需要用户确认。
在 AI x Web3 中的位置
Account Abstraction 是 AI Agent 上链执行的重要底座。没有账户抽象,Agent 往往只能停留在“给建议”或“让用户每一步都签名”。有了智能账户、Paymaster 和 Session Key,Agent 才可能在受限范围内自动执行。
但越自动化,越需要清楚的 policy:能调用什么、额度多少、多久过期、谁能撤销、日志在哪里、失败后怎么处理。账户抽象不是让 AI 更自由,而是让 AI 的自由被规则包起来。
最小实践
设计一个 Agent Session Key 策略:
- 选择一个具体场景,例如“每小时最多再平衡一次测试网小额资产”。
- 写清楚允许调用的合约地址和方法。
- 设置额度、过期时间、链 ID 和最大交易次数。
- 写出哪些动作必须回到用户钱包确认。
- 说明如何撤销 session key,以及如何审计它执行过什么。
重点不是马上部署完整 AA 钱包,而是学会把权限从“全部允许”拆成可验证规则。
扩展阅读
- EIP-4337:账户抽象标准原文。
- ERC-4337 Documentation:开发者视角理解 EntryPoint、Bundler、Paymaster 和 Smart Account。
- Ethereum Account Abstraction:从以太坊路线图角度理解账户抽象为什么重要。
- Safe Smart Accounts:了解多签和智能账户在真实项目中的使用方式。
- Rhinestone Smart Sessions:学习 session key、权限策略和模块化智能账户设计。