钱包的智能账户升级:EIP-7702 改了什么、怎么确认、怎么退回
钱包里那个「智能账户」开关做的事很具体:把你这个普通地址(EOA)指向一份委托合约。地址不变、资金不动,账户仍然由助记词和私钥控制,多出来的只是执行代码的能力。它按网络分别生效,开和关都是一笔要付 gas 的交易;还有一点容易混:把委托退回去,跟撤销代币授权是两件事。
⚠ 本文仅为信息教育用途,不构成投资 / 法律 / 安全建议。文中的机制说明来自 EIP 原文与钱包官方帮助页,各家钱包的支持范围和界面写法会变,以你打开时看到的为准。完整披露见 免责声明。
账户详情里那个「智能账户」到底改了什么
结论先摆着:所谓升级,是给你这个外部账户(EOA)设置一段代码,不是给你开一个新账户。EIP-7702 新增了一种交易类型,交易里可以附一组授权条目(authorization tuple),每条的字段是 [chain_id, address, nonce, y_parity, r, s]。处理这条授权时,链上会把一个委托指示符写进被授权账户的代码位置,内容是 0xef0100 加上那个合约地址;此后凡是要取这个账户的代码来执行的操作,都会去加载并执行指示符指向的那份代码。
所以变的是「这个账户有没有代码、代码指向谁」,没变的是账户本身。MetaMask 帮助页在这点上说得很直白:它仍然是 EOA,资金不会移动,账户仍然由你的 SRP(助记词)和私钥掌管,所以助记词照样得收好。它把切换描述成把你的 EOA 指向一份特定的 MetaMask 智能合约,不迁移资金、不改变地址。
时间线也值得记一下,免得把它当成还在试验阶段的东西。EIP-7702 的创建日期是 2024-05-07,作者是 Vitalik Buterin、Sam Wilson、Ansgar Dietrichs 和 lightclient,类别 Standards Track: Core,当前状态 Final。主网这边,它随 Pectra 升级激活,ethereum.org 的升级页写的是在 epoch 364032、2025 年 5 月 7 日 10:05 UTC 激活成功。那一页给它的定性是朝广泛的账户抽象迈出的一大步,把 EOA 的简单和合约账户的可编程性混起来用。

升级之后多出来的三件事,以及用不上它的那些交易
EIP 自己列了三项要解决的能力,不多不少:
- 批量(batching)。把同一个用户的多个操作合成一笔原子交易。EIP 举的例子就是「先 approve 一笔 ERC-20 额度,再把这笔额度花掉」——在今天的 DEX 上这要发两笔交易。
- 代付(sponsorship)。账户 X 替账户 Y 付这笔交易的费用。X 可以收别的 ERC-20 当报酬,也可以是应用方免费替用户打包。
- 权限降级(privilege de-escalation)。用户可以签出子密钥,给它比全局访问弱得多的权限。EIP 给的例子是:只能花 ERC-20 不能花 ETH、每天最多花总余额的 1%、只能跟某个特定应用交互。
这三条是规范层面的能力,不等于每个钱包都做满了。
另一个常见误会是「开了以后所有交易都走合约」。MetaMask 的回答是:这取决于你交易所在的网络和 dapp 有没有用到那些会触发智能账户的标准,批量交易和 gas 代付就是这类例子;其他普通交易还是走标准账户那套功能。换句话说,开着它,你转一笔 ETH 该怎么走还怎么走。
还有一层限制:这件事按网络分。MetaMask 的说法是智能账户依赖网络和 dapp 使用特定的标准与协议来请求权限,帮助页给了一份网络清单。那份清单主网和测试网混在一起,拆开看是这样:
| 类型 | 帮助页列出的网络 |
|---|---|
| 主网 | Ethereum、Optimism、Base、BNB Chain、Gnosis Chain、Metis Andromeda、Arbitrum One、Arbitrum Nova |
| 测试网 | 另有 11 条,如 Sepolia、Base Sepolia、Linea Sepolia、Gnosis Chiado、BNB Smart Chain Testnet。这份名单我们不逐条转述:帮助页把主网和测试网列在同一处,部分条目的括注与各链现行叫法未必对得上。要测试网的准确清单,以帮助页当时列出的原文、以及对应链自己的文档为准。 |
这份名单会增减,以你打开帮助页时列出的为准。测试网上能用不代表对应主网也能用,这两栏别混着读。
被委托的是谁的合约
这是整件事里最该看清的一行:委托指示符后面跟着的那个合约地址,决定了以后在你账户上执行的是谁写的代码。
钱包自己发起的切换,指向的是钱包自家那份合约。MetaMask 在帮助页里写得很死:目前只支持自家智能合约的智能账户功能;在别的钱包里升级过的账户导进来,要让它重新算「smart」,得把这个账户切换成 MetaMask 的智能账户。这句话的另一面是,不是随便哪份合约都会被它当成智能账户来用。
分界线也就在这里。在钱包界面里自己拨开关,和在某个网页上按提示签一份「授权」,落到的可能是同一个字段,但委托目标是两回事:前者指向钱包方自己那份合约,后者指向谁,只有那串地址说了算。签之前能做的其实就三件:看清这是哪条链、看清目标地址是什么、看这个地址你有没有独立渠道可以核对。三件里但凡有一件做不到——尤其是拿不到钱包方公布的合约地址去比对时——就只保留一条判断:这不是我在钱包里点的开关,那就取消。
EIP 原文专门留了一章 Security Considerations,小标题涉及委托合约怎么实现才安全、初始化被抢跑、存储管理、把代码设成 tx.origin 的情形、代付中继,以及交易传播。这些是写给实现者看的,普通用户不必逐条读懂;但这一章的存在本身说明,委托对象不是个无所谓的细节。
具体的钓鱼话术,站内钱包反诈手册另有整理,这里不展开——不过那篇整理的是 approve、Permit、地址投毒这类常见话术,没有单独列委托签名这一类,别指望在那篇里找到本文这个场景。
怎么确认自己现在是不是「已委托」
两个入口:钱包里面,和链上。
钱包这边,MetaMask 扩展的路径是账户选择器 → 账户旁边的三个点 → Account details → Smart account,然后按网络逐个 toggle,再确认那笔交易。帮助页在这一步明写了会涉及一笔小额网络费用(gas)。
但这里要说清楚一件事:面板里显示的是钱包自家智能账户的开关状态,不等于你这个地址在链上有没有委托。上一节说过,钱包只认自家那份合约;要是有人在网页上骗你签出去一份指向别人合约的委托,它未必会在这个面板里显示成「已开启」。所以面板看的是「我自己开没开」,账户到底被委托给谁,以下面这条链上判据为准——尤其当你怀疑这事不是自己点的时候。
链上这边,判断依据就是机制本身:一个没有委托的 EOA,代码是空的;设置过委托之后,这个地址带上了代码,内容是 0xef0100 前缀加上被委托的合约地址。所以只要查得到这个地址在某条网络上的代码不为空、并且以 0xef0100 开头,那么后面跟着的就是委托目标。
各家区块浏览器把这件事显示成什么,写法不统一。Etherscan 的交易详情页上有一行 Delegated Address,里面填的就是委托目标——这一行连同整页字段的实录,在站内读懂一笔链上交易那篇里,是 2026 年 8 月打开一笔真实交易页面时记下来的。要注意两点:没有委托的账户,这一行根本不会出现,看不到它不等于「查过了没有」;而且要看你自己那个地址发出的交易的详情页,随便点开一笔别人的交易是找不到的。别家浏览器的叫法未必一样,以你打开的那个界面为准。
别的钱包支持到什么程度、这个功能叫什么名字,各不相同,以各自官方帮助页为准。另外提一句事实层面的区分:EIP-7702 是以太坊系的规范,只在 EVM 网络上有意义,主要面向其他架构的钱包不在这个话题里。
怎么退回普通账户,以及退回不等于什么
下面说的是你自己在钱包里开过的那种。如果你查到的委托目标不是钱包方的合约、你也没印象开过,那属于事故排查,官方帮助页没有覆盖这种情形——先按站内钱包被掏空的头 30 分钟那篇的顺序处置,别照搬这里的开关流程。
退回走的是同一条路:同一个面板,把开关拨回去,确认交易。它同样是一笔要付 gas 的交易,不是改一个本地设置。帮助页还顺带交代了后续——以后想再开回来,把开关拨回来就行,但要再付一次 gas 费。
因为按网络生效,退回也得按网络来。你在几条网络上开过,就得在几条网络上分别关;只在其中一条关掉,别的网络上的委托还在那儿。
接下来是最容易混的一点:把委托退回去,不等于把代币授权收回来。这两件事记在不同的地方。
- 委托关系写在你自己账户的代码里,就是前面那个
0xef0100开头的指示符。关掉委托,改的是这里。 - ERC-20 的额度(allowance)记在代币合约自己的账本上,是「某个 owner 给某个 spender 多少额度」这样一条记录,跟你的账户有没有代码没有关系。
所以机制上它们是两回事:账户退回成普通 EOA 之后,之前给各个合约的额度仍然原样躺在各个代币合约里,该撤销的还是要一条条撤销。怎么查、怎么撤,以及为什么撤销不等于追回,写在代币授权与撤销:Allowance、Permit 和权限边界那篇里。
两件事互不替代,做完一件别以为另一件也跟着完成了。
会更省钱吗?骗子又在这件事上怎么下手
先说费用,官方口径比传言保守得多。MetaMask 的说法是:这取决于交易有没有被打包成一笔、让你只付一次 gas 而不是分几次付;一笔原子批量交易,会比分开发三笔做同样的事便宜。
注意这句话的边界:它比的是同一件事打包做和分开做,不是「开了智能账户就总体更省」。开关本身各要一笔交易费,如果你平时的操作大多是单笔转账,批量省下的那部分根本用不上。真要算账,只能按你自己的操作习惯算,这里不给一个通用的省钱比例。
再说骗子这一头。这件事上有一条特别硬的官方表态:被问到会不会发邮件让用户升级时,MetaMask 帮助页的回答是不会,并且直接说那是想掏空你钱包的骗子;官方给出的方式是智能账户对新用户默认启用,手动切换只能在钱包里面完成。
把这句话当判据用就够了——任何把你引到某个网页上去「完成升级」的邮件、私信或弹窗,都和官方描述的操作方式对不上。真要动这个开关,自己打开钱包,走前面那条面板路径。
剩下的判断跟平时一样:看清链、看清目标地址、看不懂就取消。关掉一个签名窗口的代价,通常比签错一次低。
FAQ · 4 个常问
我没点过升级,为什么账户已经是智能账户了?
MetaMask 帮助页在页顶写着「Smart accounts are now auto-enabled for new users.」,也就是新用户默认已经启用,不是每个人都记得自己动过这个开关。想确认或者关掉,走账户详情里的 Smart account 开关,按网络逐个看;关掉同样要确认一笔交易并付 gas。至于哪些账户算「新用户」、从哪个版本开始,官方页面没有进一步说明,以你钱包里当时显示的状态为准。
变成智能账户之后,助记词还管用吗?资金会被搬到新地址吗?
按 MetaMask 的说法,它仍然是 EOA:这段代码只是给 EOA 加上一部分智能账户功能,资金不移动,地址不变,账户仍然由你的 SRP(助记词)和私钥掌管,所以助记词照旧要保管好。切换做的事是把这个 EOA 指向一份特定的合约,不是把资产迁到另一个地址。
退回普通账户之后,之前给各种 DApp 的代币授权是不是也一起没了?
不是。委托关系写在你账户的代码里,而 ERC-20 的额度记在代币合约自己的账本上,是「某个 owner 给某个 spender 多少额度」这一条记录。关掉委托改的是前者,后者原样不动,旧的授权仍然要一条条去撤销。
有人发邮件或私信让我去升级智能账户,是真的吗?
MetaMask 帮助页对「会不会发邮件让你升级」的回答是不会,并且直说那是想掏空你钱包的骗子;官方给出的路径是只能在钱包里面手动切换。按这个口径,任何把你引到网页上去完成「升级」的邮件或消息,都和官方描述的操作方式对不上。
本文引用源
- EIP-7702 规范原文(状态、交易类型、委托指示符、三项目标能力、Security Considerations 章节)· eips.ethereum.org/EIPS/eip-7702
- ethereum.org Pectra 升级说明(主网激活的 epoch 与时间)· ethereum.org/en/roadmap/pectra/
- MetaMask 帮助中心:切换到智能账户或退回(开关路径、gas、按网络、只认自家合约、不会发邮件)· support.metamask.io