ERC-4337 是什么?智能账户怎么执行和付手续费 图 1
ERC-4337 是什么?智能账户怎么执行和付手续费 · 图 1

一句话理解

ERC-4337 是以太坊的账户抽象标准。它让智能合约钱包可以像普通账户一样发起链上操作,而以太坊的共识协议不需要做任何改动。用户仍然保有对自己资产的控制权,但签名规则、费用支付方式都可以由钱包合约的逻辑写得更灵活,例如用稳定币抵扣手续费,或由应用替新用户垫付第一笔费用。

它解决谁的麻烦

本文机制示意(AI 生成概念图)

以太坊上默认的交易发送者是外部拥有账户:一个私钥对应一个地址,签名算法固定为椭圆曲线签名,一笔交易一次签名,手续费必须用主链代币支付,助记词丢了几乎无法找回。智能合约虽然能持有资产、编写任意逻辑,但按默认规则不能自己发起交易。ERC-4337 的出发点是:不改协议,把账户行为搬到应用层。钱包合约可以自定义什么条件下这笔操作算合法——要求多个签名人共同批准、给某把钥匙设置每日花费上限或过期时间、接受新型签名,规则第一次变成可编程的代码。

一次操作的完整链条

4337 的执行链上有四种角色。账户合约是部署在用户名下的智能账户,负责定义验证逻辑。用户签名的对象叫 UserOperation,它形似交易但不是真正的链上交易,包含发送账户、序号、调用数据、各项燃料上限、费用参数和签名字段。打包器是链下角色,监听专门的传输池,把许多 UserOperation 捆成一笔普通的以太坊交易,提交给 EntryPoint 合约。EntryPoint 是全网共用的单例合约,分两个回合处理:先逐一调用各账户的验证函数,确认签名与约束成立、账户或代付方愿意出燃料费,再统一执行真正的调用并结算费用。可选的第四个角色是代付方,按自己的合约逻辑替用户出手续费,事后再向应用结算或以代币方式回收。

和元交易差在哪

常被拿来混淆的是另一类替你付钱的方案,例如 ERC-2771 元交易:它要求目标合约专门支持一个受信任的转发器,适用范围取决于每个合约各自改造。ERC-4337 走统一的 EntryPoint 通道,目标合约不需要为它做任何适配,通用性来自标准本身而不是对手方改造;代价是链路更长,验证规则也更严格,例如验证阶段对外部合约的读取有明确限制,防止夹带副作用。

遇到问题按什么顺序排查

一笔 4337 操作迟迟不生效,按链条顺序定位比猜测快。先确认签名对象格式正确、账户序号与钱包预期一致,序号错位是最常见的静默失败;其次看模拟或验证阶段是否报错,验证函数对外部合约的读限制、燃料估算字段设得过小都会卡在验证回合而不是执行回合;再检查代付方是否拒绝——代付方有权按自己的策略对特定订单说不,拒绝理由通常是链下信息;最后才是传输层,个别打包器未收录你的操作时,换一个提交渠道往往就能上链。每一步的报错文案和区块浏览器上的交易回执,都比界面转圈更早暴露原因。

上手前要核查的清单

评估一款 4337 钱包时,可以把问题拆成几组可核对的事实:账户合约有没有可升级的代理和管理员密钥,谁掌握它们;恢复机制是真流程还是营销话术,恢复人列表由谁维护;EntryPoint 用的是哪个版本、部署在哪些链上,官方仓库会公布各链地址;代付方是应用官方声明的还是页面里来路不明的字段。这些信息大多能在链上和开源仓库直接查证,比宣传文案可靠。

风险与边界

智能账户的安全边界由代码决定:合约有没有升级后门、管理员保留什么权限、恢复机制怎么设计,都需要逐项核查,不能因为是智能钱包就默认更安全。打包器市场是竞争性基础设施,个别打包器故障或实施本地政策时,用户可能需要换渠道提交,这与协议层审查是不同的概念。验证规则的收紧也说明标准仍在演进,各版本字段命名与合约接口存在差异,接入前应对照当前规范。代付手续费是商业行为,成本没有消失,只是换了人承担、换了币种结算,羊毛出在哪个定价里值得想一想。本文为机制科普,不构成任何投资、产品选择或买卖建议,请独立核实并自行决策。