跳转到内容

账户抽象演进

账户抽象演进

本页内容正在整理中,欢迎贡献

概述

账户抽象(Account Abstraction,AA)是以太坊用户体验革命的核心技术,目标是让用户不再受到 EOA 私钥模式的限制,实现无 Gas 费体验、批量交易、社交恢复、生物识别登录等功能。本文梳理从最早的提案到最新落地方案的完整演进历史。

主要内容

账户抽象演进时间线

2016 EIP-86: 最早的 AA 提案
2021 EIP-2938: 原生协议层 AA(未采纳)
2021 EIP-3074: AUTHCALL 操作码(未采纳,被 7702 取代)
2022 ERC-4337: 非侵入式 AA,不改协议层(✅ 已部署)
2023 EIP-4337 EntryPoint v0.6/v0.7 主网部署
2025 EIP-7702: Pectra 升级(✅ 已激活),EOA 原生 AA
未来 原生 AA: 协议层完全支持(长期目标)

ERC-4337:当前主流方案

ERC-4337 不修改以太坊协议,通过智能合约实现 AA:

核心组件:

UserOperation(用户操作)
↓ 用户签名并广播到 alt mempool
Bundler(打包器)
↓ 打包多个 UserOp 为一笔普通交易
EntryPoint 合约(0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789)
↓ 验证并执行所有 UserOp
SmartAccount 合约(每个用户一个)
↓ 执行实际操作
Paymaster(可选,代付 Gas)

SmartAccount 示例(Simple Account):

contract SimpleAccount is BaseAccount {
address public owner;
// 验证签名(用户可以自定义验证逻辑)
function _validateSignature(PackedUserOperation calldata userOp, bytes32 userOpHash)
internal override returns (uint256 validationData) {
bytes32 hash = userOpHash.toEthSignedMessageHash();
if (owner != hash.recover(userOp.signature))
return SIG_VALIDATION_FAILED;
return SIG_VALIDATION_SUCCESS;
}
}

Paymaster(Gas 代付):

contract MyPaymaster is BasePaymaster {
// 决定是否为某个 UserOp 代付 Gas
function _validatePaymasterUserOp(
PackedUserOperation calldata userOp,
bytes32 userOpHash,
uint256 maxCost
) internal override returns (bytes memory context, uint256 validationData) {
// 可以根据 Token 余额、白名单、签名等条件决定是否代付
require(isSponsored(userOp.sender), "Not sponsored");
return ("", PAYMASTER_VALIDATION_SUCCESS);
}
}

EIP-7702:Pectra 带来的原生 AA

EIP-7702 让现有 EOA 无需迁移即可获得 AA 能力:

// Type 4 交易:将 EOA 的代码设置为 SmartAccount 实现
const tx = {
type: 4,
authorizationList: [
{
chainId: 1,
address: SIMPLE_ACCOUNT_IMPL, // SmartAccount 实现合约
nonce: currentNonce,
// EOA 对此进行 ECDSA 签名
yParity: ...,
r: ...,
s: ...,
}
],
// 可以同时在同一笔交易中执行操作
to: MY_CONTRACT,
data: encodeFunctionData({ ... }),
};

ERC-4337 vs EIP-7702 并不互斥:

  • EIP-7702 可以将 EOA 的代码设置为一个 ERC-4337 兼容的 SmartAccount
  • 这样 EOA 就能同时享受 ERC-4337 的 Paymaster、Bundler 基础设施

智能账户功能对比

功能普通 EOAERC-4337 SmartAccountEIP-7702 EOA
Gas 代付✅ Paymaster✅(结合 4337)
批量交易
社交恢复
多签❌(需合约)✅ 原生
会话密钥
ERC-20 支付 Gas
保持原地址❌(新地址)

关键基础设施

工具/服务功能
PimlicoBundler + Paymaster 服务
Alchemy AA SDK完整 AA 开发套件
ZeroDev基于 Kernel 的 SmartAccount
Safe多签 + 模块化 SmartAccount
BiconomyAA 基础设施

未来:原生账户抽象

长期目标是在协议层原生支持 AA(不依赖 EntryPoint 合约):

  • 移除 EOA 与合约账户的区别
  • 所有账户都有可编程的验证逻辑
  • 更好的共识层集成

深入阅读