进阶赛道中级253 次阅读
账户抽象(ERC-4337):钱包为什么会变好用
ERC-4337 让钱包变成可自定义验证逻辑的合约账户。本文讲清 UserOperation、Bundler、EntryPoint 与 Paymaster 各自角色,以及新增的信任与费用取舍。
#ERC-4337#账户抽象#智能钱包#Paymaster#Bundler
一句话结论
ERC-4337 让钱包从「一把私钥对应一个地址」变成「一个可以自定义验证与执行逻辑的智能合约账户」。它把过去需要改动协议层的工作,改为在应用层实现,因此不需要修改以太坊的共识规则。
传统账户的限制
以太坊有两种账户:外部账户(由私钥控制)与合约账户。外部账户的限制很直接:
- 验证方式只有一种:一把私钥加一个签名
- 无法批量执行:一次只能发一笔交易
- 无法代付手续费:账户里必须有原生代币才能发起交易
- 没有恢复机制:私钥丢失即资产丢失
四个关键角色
- UserOperation(用户操作):一种「伪交易」结构,描述你想做的事(转给谁、调用什么、Gas 参数等)。它不是原生交易,而是被打包后才上链。
- Bundler(打包者):接收 UserOperation,把它们打包成一笔真实交易提交给入口合约。可以理解为「代你提交交易的角色」。
- EntryPoint(入口合约):标准化的核心合约,负责验证与执行 UserOperation,是不同实现共享的统一入口。
- Paymaster(代付方):可以替用户支付 Gas,或允许用其他代币支付 Gas。这是「新用户不必先持有原生代币就能用」的关键。
由此带来的能力
- 社交恢复与多设备签名:账户可以设置多种验证方式
- 批量交易:一次授权完成多步操作,减少重复签名
- Gas 代付与代币付 Gas:降低新用户门槛
- 可升级的验证逻辑:更换签名方案不必更换地址
需要注意的取舍
- 新增信任与依赖:Bundler 与 Paymaster 是链下服务,它们可以不打包你的操作,也可能成为单点
- 费用结构更复杂:多了一层打包与代付,成本项与失败模式都变多
- 合约钱包的代码风险仍在:账户逻辑是合约,就同样可能出漏洞
- 不同钱包的实现差异很大,「支持 4337」不等于功能与安全性一致
给你的教训
- 使用智能钱包前,搞清它的恢复方式是托管式、社交式还是多签式,以及谁能替你发起操作。
- 理解 Gas 由谁承担:如果是第三方代付,先弄清它在什么条件下会停止服务。
- 先用小额跑一段时间,确认恢复、升级、导出等流程真的可用,再放主要资产。
- 无论钱包多智能,助记词与设备安全仍是底线:备份、离线保存、不要截图上传。