返回架构笔记
Arch Day 204

Arch Day 204: ERC-7702与Pectra — EOA升级为智能账户

ERC-7702(随Pectra升级于2025.05.07上线)让现有EOA地址临时委托智能合约代码执行——不需要创建新的智能账户合约,用户保留原有地址的同时获得批量交易、Gas代付和Session Keys等能力。这是"让10亿EOA用户原地升级"的方案。

2026-10-20
第七阶段 - Web3专题深度
ERC7702PectraEOA升级智能账户以太坊升级

日期: 2026-10-20 (Day 204) 阶段: 第七阶段 - Web3专题深度 标签: #ERC7702 #Pectra #EOA升级 #智能账户 #以太坊升级


核心概念

一句话定义

ERC-7702(随Pectra升级于2025.05.07上线)让现有EOA地址临时委托智能合约代码执行——不需要创建新的智能账户合约,用户保留原有地址的同时获得批量交易、Gas代付和Session Keys等能力。这是"让10亿EOA用户原地升级"的方案。


知识点详解

1. Pectra升级概览

Pectra(Prague/Electra)于2025年5月7日在以太坊主网激活:

EIP内容影响
EIP-7702EOA可临时委托智能合约代码AA最大突破
EIP-7251验证者最大有效余额从32→2048 ETH节点运营简化
EIP-7002执行层触发验证者退出质押灵活性↑
EIP-2537BLS12-381曲线预编译ZK验证Gas↓
EIP-2935存储最近8192个区块hash跨链证明支持
EIP-7685执行层→共识层通用请求L1/L2协调

2. ERC-7702工作原理

ERC-7702核心机制:

传统EOA:
├── 地址 = hash(公钥)
├── 代码 = 空(EOA没有代码)
├── 只能发起交易,不能有自定义逻辑
└── 一个签名 = 一笔交易

ERC-7702:
├── 地址 = 不变(保留原EOA地址!)
├── 代码 = 临时指向一个智能合约
├── 执行时使用该合约的逻辑
└── 执行后可以恢复为普通EOA

具体流程:
1. 用户签署"Authorization" = (chain_id, contract_address, nonce)
2. 交易发起时,EOA的代码字段临时设置为contract_address的代码
3. 在该交易中,EOA表现得像一个智能合约
4. 交易结束后,委托关系可以保持或撤销

关键创新: "set_code"指令
├── tx.authorization_list = [(chain_id, address, nonce, sig)]
├── EOA code = contract_code(临时)
├── 支持批量交易(一笔交易内执行多个操作)
└── 支持Gas代付(Paymaster逻辑)

3. ERC-7702 vs ERC-4337对比

维度ERC-4337ERC-7702
实现方式部署新的智能账户合约EOA临时委托合约代码
地址新地址(合约地址)保留原地址(EOA)
Gas开销+42K Gas(UserOp验证)+低(原生支持)
协议层不修改以太坊协议修改以太坊协议(硬分叉)
灵活性★★★★★(完全可编程)★★★★(委托限制)
用户体验需要迁移到新地址零迁移(原地升级)
Paymaster内置支持需要合约实现
批量交易内置支持通过委托合约实现
Session Keys通过模块实现通过委托合约实现
互补关系新用户最佳入口现有用户最佳升级路径

4. ERC-7702的实际应用

应用描述用户体验改善
批量交易approve+swap在一笔交易中完成从2次签名→1次签名
Gas代付DApp为用户支付Gas用户无需持有ETH
Session Keys游戏/DApp获得有限权限自动交易不用每次弹钱包签名
社交恢复EOA添加guardian恢复机制不怕丢私钥
智能限额设置每日转账上限即使私钥泄露也有保护
多签EOA临时变成2-of-3多签高价值操作增加安全

5. Circle Gasless USDC(ERC-7702案例)

Circle在Pectra上线后推出的Gasless USDC转账:

传统USDC转账:
1. 用户持有USDC + 需要持有ETH(支付Gas)
2. 调用USDC.transfer(to, amount)
3. 支付~$0.50 Gas(L1) / ~$0.01 Gas(L2)
4. 没有ETH → 无法转账 → 需要先On-Ramp ETH → 摩擦

Circle Gasless USDC(ERC-7702):
1. 用户只需持有USDC(不需要ETH!)
2. 用户签署7702授权 → EOA委托Paymaster合约
3. Paymaster合约逻辑: 从用户USDC扣除手续费 → 支付Gas
4. USDC转账完成
5. 用户视角: 发送100 USDC, 到账99.95 USDC(0.05费用)

为什么重要:
├── 消除了"先买ETH才能用USDC"的荒谬UX
├── 稳定币用户(非DeFi用户)的最大痛点之一
├── 特别适合跨境支付/PayFi场景
└── 让USDC真正像"数字美元"一样使用

6. 7702的安全考量

风险描述缓解
恶意委托用户被诱导签署委托到恶意合约钱包UI需要明确显示委托目标
重放攻击授权在不同链上被重放chain_id绑定
权限升级委托合约有过多权限标准化委托合约+审计
持久委托用户忘记撤销委托钱包显示活跃委托+一键撤销
Nonce管理委托nonce与交易nonce的冲突独立授权nonce空间

7. 4337 + 7702协同路径

未来AA全景(4337 + 7702):

新用户路径(4337):
1. 下载DApp → 创建Passkey
2. DApp通过4337创建Smart Account(新地址)
3. Paymaster赞助Gas → 用户零摩擦
4. 完整AA功能: Session Keys/社交恢复/多签

现有用户路径(7702):
1. 用户已有MetaMask EOA(持有大量资产)
2. 不愿迁移到新地址(NFT/DeFi头寸绑定)
3. 通过7702委托 → 原地获得AA功能
4. 需要时: 批量交易/Gas代付/Session Keys

长期演进:
├── 7702 = 过渡方案(让EOA用户体验AA)
├── 4337 = 终极方案(原生智能账户)
├── 最终: 所有账户都是智能账户
└── EOA概念逐渐消失(1-3年)

面试题

问题:ERC-7702和ERC-4337是竞争还是互补?你会推荐DApp用哪个?

回答

互补而非竞争——它们解决不同用户群的问题。

ERC-4337适合新用户:从零开始创建账户→没有历史包袱→直接创建Smart Account→享受完整AA功能(Passkey认证、社交恢复、模块化)。Coinbase Smart Wallet就是4337路线,15M+新用户从未见过EOA。

ERC-7702适合现有用户:已经有MetaMask EOA→持有ETH/NFT/DeFi头寸→不愿迁移到新地址(失去ENS/空投资格/DeFi头寸)。7702让他们"原地升级"——保留地址但获得批量交易和Gas代付能力。

我的推荐

  • 面向消费者的新DApp(游戏/社交/PayFi)→4337。新用户不需要知道EOA的存在。
  • 面向现有DeFi用户的DApp(借贷/DEX)→支持两者。用7702让老用户更好地交互,用4337让新用户免摩擦加入。
  • 基础设施项目(钱包/SDK)→必须两者都支持。

长期视角:7702是"过渡桥"——帮助10亿EOA用户体验AA→最终大部分新用户会直接使用4337智能账户→EOA会像IE浏览器一样逐渐被替代(但需要3-5年)。

追问准备

  • Q: 7702有什么安全风险?→ 最大风险是钓鱼签名——用户被诱导签署委托到恶意合约→攻击者可以操控用户EOA。钱包需要在UI上清晰警告委托操作
  • Q: 7702会取代4337吗?→ 不会。7702的委托是"临时的"+"被动的"(需要外部交易触发),4337的Smart Account是"永久的"+"主动的"(可以有自己的逻辑)。7702是EOA的"补丁",4337是"正确的架构"