Pectra 升级在 2025 年 5 月 7 日激活之后,以太坊上第一次出现了两条同时可用的账户抽象路线:一条是先在独立测试网络跑了很久的 ERC-4337,另一条是让普通地址临时借用合约代码的 EIP-7702。两者常被混称智能账户,实际解决的痛点、付出的代价完全不同。本文只做机制对比,不构成任何选型建议。
交易长得不一样
最根本的区别先看数据形态。ERC-4337 定义了一种叫 UserOperation 的新对象:它不是交易,走的是专用的捆绑器(Bundler)与独立内存池,最后由 Bundler 把它打包成一笔对 EntryPoint 单例合约的普通交易上链。EIP-7702 则相反:用户发的仍然是一笔普通交易,只是在交易里多带一个授权列表,声明本次执行要循某段已签名指定的合约代码。7702 的规范原文写得很克制——授权元组表明签名者希望在自己的 EOA 语境下执行哪些代码。换句话说,4337 在旁边修了一条新管道,7702 是在原管道里加了个可插拔的适配器。

地址与身份
ERC-4337 的账户是货真价实的合约:第一次使用要先部署,地址由工厂合约的 CREATE2 派生,合约状态即账户状态,签名验证逻辑由账户合约自己实现,天然适合多签、会话密钥、社交恢复这类复杂策略。EIP-7702 不创造新地址:你还是原来那个 0x 开头的地址,收过款、带过授权记录都不搬家;你的私钥还在,只是执行交易时可以选择临时委托外部代码。这个差别决定了迁移成本:7702 对老地址近乎零迁移,4337 意味着资产搬家与地址变更。
撤销与失效
委托是易失的。EIP-7702 的委托代码存在账户的临时字段里,账户一旦转账或收到非零值,这份委托即告失效;要恢复默认行为,也可以把委托指向零地址。所以社区常提醒:委托指向的合约如果存在恶意逻辑,攻击面是真实存在的,撤销动作要主动做。ERC-4337 的账户合约则一直在线,模块增删通过合约自身的管理函数完成,不存在随转账自动消失这回事,但合约本身的升级权限成了新的审查对象。
谁来付 Gas
4337 体系里付 Gas 的角色分工清晰:可以直接让账户自己付,也可以由 Paymaster 合约代付,甚至用其他代币结算,前提是 Bundler 愿意接。7702 语境下 Gas 结算没有新增机制,还是标准交易的费用字段说了算,代付要靠委托目标合约自身的逻辑变通实现,没有统一接口。批量与并发的差别也值得记:4337 的聚合验证可以把一批同账户模板的操作合并校验;7702 没有引入聚合概念,批量只是合约函数支持批量调用的自然结果。
一条判断线
如果需求是不改地址、保留现有资产与历史、偶尔用一下批量操作和 Gas 赞助,7702 的借壳模式最轻。如果目标是长期托管团队资金、跑复杂策略、把验证规则写进合约,4337 的原生合约账户更稳。两者不互斥:完全可以用 7702 把一个旧地址委托到兼容 4337 的实现上,把老地址改造成能走旁路的账户。
快速问答
问:两者安全性谁更好?答:问题不同构。4337 新增 Bundler 与 EntryPoint 的信任边界,7702 新增被委托合约的代码信任,都是可管理但必须管理的风险。
问:EIP-3074 呢?答:那条让合约代持私钥签名交易的路线已被官方标注让位于 7702,旧文读到 3074 的机制请换 7702 对照。
问:会不会以后只剩一条?答:协议层面两者都有独立用例,历史上两条路线长期并存并不罕见,以当期 EIP 状态为准。
风险提示:本文为协议机制对比,不构成投资建议;委托或升级任何账户逻辑前,先用小额测试并核验目标合约的权限设计,签名授权一经上链往往无法撤回。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。