返回 Papers
方法论

EIP-7702 智能 EOA:账户抽象与安全模型(2026)

以太坊一直有两类账户:

2026-05-29
115EIP_7702_SMART_EOA_2026.md

EIP-7702 智能 EOA:账户抽象的"原地升级"与被改写的安全模型 (2026)

日期:2026-05-29 定位:用账户体系 + 风控的视角讲清 EIP-7702——它让已有的 EOA 地址不换地址、原地获得智能账户能力,是钱包 UX 的大解锁;但它改写了以太坊最底层的一条安全假设("EOA 没有代码""tx.origin 一定是人"),并已被盗号产业链工业化利用。对有金融/风控背景的人,这是"能力"和"系统性风险"同时放大的典型案例。 一句话:7702 把"哑私钥(EOA)"和"智能合约账户"之间十年的割裂,用一个签名授权抹平了——代价是"签一个名"现在可能等于"把账户的执行逻辑交给别人"。


1. 它解决的历史割裂

以太坊一直有两类账户:

  • EOA(私钥控制):能发起交易,但"没有代码"——不能批量、不能 gas 代付、不能社交恢复、不能 session key。普通用户的钱包都是 EOA。
  • 合约账户(代码控制):有上述全部能力,但你得部署一个新合约、迁移资产到新地址(ERC-4337 路线的痛点)。

EIP-7702 的突破:让一个现有 EOA 临时/持久地"指向"一段合约代码,从而原地获得智能账户能力——地址不变、资产不迁、私钥仍归你。这是"让 5 亿存量 EOA 一夜之间可升级"的关键拼图。


2. 机制(权威,来自 ethereum.org)

  • 新增交易类型 4(set code):EOA 通过一个授权元组把自己的"代码"委托给一个合约: [ chain_id, address, nonce, y_parity, r, s ] —— address 指向委托合约(预部署字节码),签名部分用 EOA 私钥验证授权。
  • 委托是持久的,直到撤销:规范原文 "A delegation can be reset by delegating to the null address." —— 即委托一旦设置就一直生效,必须主动签一笔指向零地址的授权才能解除
  • 私钥仍掌控全局:"The private key of the EOA retains full control over the account after the delegation."
  • 官方明确的警告(这是重点):
    1. 钓鱼:委托给恶意合约 = 资产可被完全掏空;且 chain_id = 0 时该委托在所有 EVM 链通用(一次签名,全链暴露)。
    2. 初始化抢跑:委托签名可被抢跑、篡改初始化参数 → 需 initWithSig 或 EntryPoint 强制初始化。
    3. 存储碰撞:切换委托目标时旧存储残留,新合约若复用相同 slot 会误读。
  • 被改写的不变量:"it's no longer safe to assume that tx.origin refers to an EOA" —— msg.sender == tx.origin 这条被无数合约当作"调用方是人/非合约"的判断从此不可靠,依赖它做重入防护/防合约调用的代码要重写。

3. EIP-7702 vs ERC-4337 vs EIP-3074

维度EIP-3074(已弃)ERC-4337EIP-7702
层级协议层(AUTH/AUTHCALL)应用层(无需硬分叉)协议层(Pectra 硬分叉)
账户EOA 委托给 invoker新部署的合约账户 + UserOp + EntryPoint + bundler/paymaster原地升级现有 EOA
地址不变变(迁到新合约地址)不变
状态被 7702 取代生产中、基建成熟2025-05 上线

关键:不是竞品,是互补。 7702 把 EOA 变成智能账户后,可以直接复用 4337 的基建(bundler、paymaster 做 gas 代付)。主流栈(Safe / Biconomy / ZeroDev / Alchemy / Pimlico)两者都支持,按场景选:存量 EOA 升级走 7702,全新智能账户/复杂策略走 4337。

来源:Gelato / Alchemy / thirdweb 账户抽象对比 (2025–2026)、ethereum.org Pectra 7702。


4. 用例(UX 解锁)

  • 批量交易:approve + swap(或 staking+borrow+swap)合并成一笔——少一次签名、少一次 gas、消灭"approve 钓鱼"的部分场景。
  • Gas 代付 / 抽象:第三方(4337 paymaster / ERC-2771 forwarder / 钱包原生)替用户付 gas → 用户用稳定币付 gas、或项目方赞助新用户 onboarding,不必先持有 ETH(配合稳定币支付,见 [稳定币支付 vs SWIFT 笔记])。
  • Session keys:时限 + 范围受限的子密钥(如"1 小时内、仅某合约、上限 0.1 ETH")——签一次授权,之后 dApp 用 session key 免反复弹窗(游戏/高频交互体验关键)。
  • 社交恢复 / passkey:不换地址就能加恢复守护人、绑 passkey。

5. 采用数据(标注时点)

  • Pectra 主网激活:2025-05-07(epoch 364032,10:05 UTC);EIP-7702 随之上线。
  • 上线一周内 >11,000 笔授权;按钱包:OKX >3,100MetaMask ~1,300(MetaMask 委托合约里 ETH 价值更高,单笔更大)。
  • 钱包支持(2026):Ambire(主打 7702)、Trust Wallet、MetaMask(opt-in/smart accounts)、Coinbase Wallet、Safe(均有路线图);部分钱包按"每笔 opt-in"处理。
  • ⚠️ 时效提示:上面是 2025-05 上线初期的链上数字;2026 年累计授权地址数是单调增长指标,引用具体总量前必须当日用 Dune/Etherscan 重拉,不要照搬旧快照(这正是项目时效硬规则要防的坑)。

6. 安全:被工业化的攻击面(本文风控亮点)

7702 把"签名"的语义变重了——而钱包 UI 往往没把这个"变重"展示给用户:

  • 签名不可见性:委托是一个签名授权元组,其后果不体现在用户平时检查的交易字段里。用户以为在签"一笔普通 swap",实际授权安装了攻击者控制的执行逻辑;一旦生效,EOA 此后按攻击者合约行事,可无需再签名地转走资产/转发授权。
  • 早期被盗号产业链反向利用:有统计称早期 >97% 的 7702 委托指向 "sweeper"(扫号)合约——攻击者拿到已泄露私钥后,用 7702 把"批量掏空"自动化(批量转走 + 经 Relay 等跨链桥转移赃款)。
  • 真实损失:2025-08 单月相关损失 >$2.5M,其中单笔 $1.54M(受害者以为是"普通 Uniswap swap")、另一例 $146K;InfernoDrainer / PinkDrainer 等钓鱼团伙已武器化 7702(另见 arXiv《EIP-7702 Phishing Attack》2512.12174,2025-12)。
  • 被打破的不变量:msg.sender == tx.origin 失效 → 任何用它判断"调用方是 EOA/非合约"的合约(部分重入防护、只许 EOA 的逻辑)都需重审。

风控结论:7702 的风险不在密码学,而在签名 UX 与委托治理。它把"误签一次"的后果从"丢一笔钱"放大到"账户被接管"。


7. PM / 架构师 / 风控视角

钱包/产品设计要点:

  • Clear-signing:必须把"你正在把账户委托给合约 X"用人话 + 风险标识展示,而不是显示一串 calldata;对 chain_id=0(全链委托)要强警告。
  • 委托目标 allowlist / 信誉:只允许委托给经审计/白名单的委托合约(参考社区 "awesome-eip-7702-delegations" 维护的目标清单),拦截 sweeper。
  • 可撤销性可见:让用户一眼看到"当前委托对象 + 一键置零撤销"。
  • 机构/托管场景:委托即"把执行权外包",必须纳入委托治理(谁能签授权、委托对象审批流、链下审计)——这正是有金融合规背景的人能贡献的设计。

合约开发者:别再用 tx.origin == msg.sender 判断"是不是人";重审重入与"仅 EOA"假设。

为什么这对"金融级账户"重要:7702 + 4337 + 稳定币 gas 代付,是"机构/支付级链上账户"的拼图(免迁移、可代付、可批量、可恢复);但委托治理与清晰签名是把它用于真钱场景的前提——能力与风控必须同时设计。


8. 学习资源(按发布日期)

资料类型日期
ethereum.org — Pectra / EIP-7702 指南官方(权威)2025–2026
Ethereum Foundation《Pectra Mainnet》公告官方2025-04-23
The Block《Smart wallet adoption surges … 11,000 authorizations》行业数据2025-05
Alchemy / Gelato / thirdweb《4337 vs 7702》开发者指南技术对比2025–2026
arXiv《EIP-7702 Phishing Attack》(2512.12174)安全研究2025-12
ainvest / Cryptopolitan 钓鱼损失报道安全事件2025-08/09
Ambire / Pimlico / Biconomy 7702 实战指南一手(实现)2025–2026

9. SOTA 检查 (2026-05-29 更新)

  • 当前主流:7702 已是存量 EOA 升级智能账户的协议级标准方案(EIP-3074 已被它取代);与 ERC-4337 互补共存,主流账户抽象栈(Safe/Biconomy/ZeroDev/Alchemy/Pimlico)双支持。
  • 是否仍是 SOTA:是。Pectra(2025-05-07)后 7702 是账户抽象的最新协议层进展;2026 仍在扩张。注意旧 AA 笔记若停在"只有 4337/还在讲 3074"的视角已过时,必须纳入 7702。
  • 需要持续盯的更新:①累计授权地址数(单调增长,引用前当日重拉);②钱包对 clear-signing / 委托 allowlist 的支持成熟度(直接决定安全);③ sweeper/钓鱼损失统计与新型攻击(7702 攻击面仍在演化);④下一次硬分叉(Fusaka 等)是否进一步改账户语义。
  • 过时风险提示:本文采用/损失数字为 2025-05~2025-12 区间快照;授权数与损失额会变,再次引用前用官方/链上数据重核并标时点

本文遵循项目《全局时效性硬规则》:主线资料均为近 12 个月内发布并标注 YYYY-MM;机制以 ethereum.org 一手规范为准,与训练记忆冲突处以官方/搜索为准。