本文档详解 EIP-7702 的技术原理、生命周期、Gas 成本和应用场景。EIP-7702 通过给 EOA 设置代码值,使其具备智能合约能力,是账户抽象演进的重要一步。
尽管 AA 钱包在推广,大量用户仍停留在 EOA。用户希望 EOA 具备 AA 能力,又不想理解复杂概念。
EIP-7702 由 V神牵头提出,在 Pectra 升级中包含(代替原来的 EIP-3074)。
MetaMask、WalletConnect、Biconomy、Uniswap、TrustWallet、Safe 等主流钱包团队都在关注。所有 EVM 系公链都在积极准备。
对现有 Web3 用户:
对新用户:
EIP-7702 将 EOA 指向一个智能合约的代码,让 EOA 同时具备 EOA 和智能合约的能力。
| 特性 | 说明 |
|---|---|
| 无需中心信任点 | 不需要 Bundler 和 EntryPoint |
| 兼容性 | 与 ERC-4337 基础设施完全兼容 |
| 验证执行结合 | 减少中断,简化调用 |
| 面向未来 | 技术负担低,无需硬分叉 |
graph LR
A[我的EOA] -->|签署授权| B[设置合约代码]
B --> C[EOA具备合约能力]
C --> D1[批量交易]
C --> D2[Gas代付]
C --> D3[策略执行]
C --> D4[Passkey控制]
C --> E[随时可恢复纯EOA]
用户感受:
EIP-7702 定义了交易类型 0x04,新增 authorization_list 字段:
authorization_list = [
[chain_id, address, nonce, y_parity, r, s],
[chain_id, address, nonce, y_parity, r, s],
...
]address 指向供 EOA 执行逻辑的合约代码chain_id = 0 代表授权多链有效(注意安全风险!)0xef0100 ++ address两层签名:
第一层(签消息): keccak(0x05 || rlp([chain_id, address, nonce]))
第二层(签交易): rlp(整个 type=4 交易)rlp([
chain_id,
nonce,
max_priority_fee_per_gas,
max_fee_per_gas,
gas_limit,
destination, // 交易目标地址
value,
data,
access_list,
authorization_list, // 新增!
signature_y_parity,
signature_r,
signature_s
])sequenceDiagram
participant Alice as Alice(EOA)
participant Chain as 以太坊
Alice->>Alice: 签署 authorization<br/>(chain_id, contract_addr, nonce)
Alice->>Chain: 发送 0x04 类型交易<br/>携带 authorization_list
Chain->>Chain: 验证 authorization 签名
Chain->>Chain: 设置 Alice.code = 0xef0100 + contract_addr
Chain->>Chain: Alice.nonce += 1
Note over Chain: Alice 的 EOA 现在具备合约能力
重要注意事项:
to 和 calldata,可同时做合约设置和其他交互chainId = 0 时一次钓鱼可能损失全链资产设置完成后,EOA 具有两大特性:
| 特性 | 说明 | 交易类型 |
|---|---|---|
| 作为 EOA 使用 | 完全控制权:转账、合约调用、重设/删除 | 普通交易 |
| 作为 CA 使用 | 发交易给自己,触发智能合约功能 | 普通交易(不需要0x04) |
⚠️ 注意:别人对此地址的转账可能触发合约回调,存在交易失败的可能。
0x0000...0000 即取消,恢复为普通 EOA基础成本 = 21,000 + 16 * 非零calldata字节 + 4 * 零calldata字节
+ PER_EMPTY_ACCOUNT_COST(25,000) * authorization数量两种费用:
| 操作类型 | 原 Gas | 7702 Gas | 变化 |
|---|---|---|---|
| 转账 ETH | 21,000 | 34,193 | +63% |
| 转账 Token | 35,287 | 41,937 | +19% |
| 转账 ETH + Token | 56,287 | 54,317 | -3.5% ✅ |
注:以上为最简单的执行合约,无权限控制。实际使用 Gas 可能更高。
现有逻辑:
接入 7702 后:
| 场景 | 结论 |
|---|---|
| 只有 ETH 充值 | 永远老逻辑更省 |
| 单个 Token 充值 | n > 15 次后 7702 更省 |
| 多个 Token 充值 | 2-3 个 Token 后 7702 更省 |
💡 建议:在用户有多个 token 需要归集时开启 7702,或直接开启提现大地址的 7702 功能。
graph LR
A[传统方式] -->|"1.充Gas到用户地址<br/>2.发起归集交易"| B[需要两笔交易]
C[7702方式] -->|"设置转账逻辑合约<br/>专门地址触发转账"| D[一键完成]
传统:先 approve → 再 swap(两笔交易) 7702:一笔交易完成(approve + swap 批量执行)
sequenceDiagram
participant User as Web2用户
participant App as 应用
participant Chain as 链上
User->>App: 使用 Passkey 签署
App->>App: 生成随机私钥签署 authorization
App->>Chain: 打包 passkey权限设置 + authorization → 一笔7702交易
Note over Chain: 随机私钥只用这一次,无人知晓
Note over User: 用户得到 Passkey 控制的 EOA 钱包
| 场景 | 说明 |
|---|---|
| DeFi 策略批量执行 | 一笔交易完成多个 DeFi 操作 |
| 策略交易 | 会话密钥免 EOA 私钥签名 |
| 家庭模式 | 多成员 Passkey 管理同一 EOA |
| CeFi + DeFi | Passkey 同时管理 DeFi 和 CeFi |
| Gas 赞助 | EOA 实现 Paymaster 接口 |
| 风险 | 说明 | 影响方 |
|---|---|---|
| ⚠️ 钓鱼风险 | 用户签署不明授权损失巨大,比 4337 更高 | 钱包团队 |
| ⚠️ 多链重放 | chainId=0 时多链有效,一次钓鱼全链损失 | 钱包团队 |
| 撤销延迟 | 需要额外交易重新委托 | 用户 |
| 向前兼容 | tx.origin/code 判断逻辑受影响 | 开发人员 |
| 存储残留 | 重新委托后存储不清除 | 开发人员 |
应对措施:
| 特性 | EOA (before) | EOA (7702) | ERC-4337 |
|---|---|---|---|
| 无需中心信任点 | ✅ | ✅ | ❌ (需Bundler/EP) |
| 无需每账户部署合约 | ✅ | ✅ | ❌ |
| 低 Gas 消耗 | ✅ | ✅ | ❌ |
| 无需特定钱包服务商 | ✅ | ✅ | ❌ |
| 可使用相同地址 | ✅ | ✅ | ❌ |
| 低授权风险 | ❌ | ❌ | ✅ |
| 多签 | ❌ | ❌ | ✅ |
| 外部执行者 | ❌ | ✅ | ✅ |
| 批量交易 | ❌ | ✅ | ✅ |
| Gas 赞助 | ❌ | ✅ | ✅ |
| 自定义签名(Passkey) | ❌ | ✅ | ✅ |
| Recovery | ❌ | ❌ | ✅ |
EIP-7702 上线后,多个以太坊"定律"被打破:
tx.origin == msg.sender 的防护逻辑graph LR
subgraph "EOA 传统"
A1[签名] --> A2[广播]
end
subgraph "ERC-4337"
B1[部署CA] --> B2[多算法签名UO] --> B3[广播到Bundler池] --> B4[等待打包上链]
end
subgraph "EIP-7702"
C1[部署CA] --> C2[EOA签名] --> C3[广播]
end
| 问题 | 能否解决 | 说明 |
|---|---|---|
| 私钥难保护 | ❌ | CA 本质由原 EOA 私钥驱动 |
| 签名算法少 | ❌ | 但可伴随 BLS 升级 |
| 签名权限高 | 部分 ✅ | CA 可设置分级权限地址 |
| 交易手续费 | ✅ | 批量操作可降低费用 |
| 交易隐私 | ❌ | - |
| 交易代付 | ✅ | 项目方可驱动用户 EOA 执行 |
| 抗 DoS | ✅ | 符合 EIP-1559 逻辑 |
| 中心化风险 | 无 | 不需要 EntryPoint 等中心 |
| 多币种支付 | ✅ | 代付时操作 |
EIP-7702 通过模糊 EOA 和合约账户之间的界限,让用户无缝体验复杂功能。它与 ERC-4337 并行发展,适合不同场景:
- 7702:轻量、低 Gas、保留 EOA 体验,适合存量用户升级
- 4337:完整 AA 能力(多签、恢复),适合需要完整智能合约钱包的场景
对 CeFi 最大的价值在于优化多 Token 归集场景的 Gas 成本,对 DeFi 用户则带来批量操作和 Gas 赞助能力。