换个智能账户不用换套代码:ERC-7679 构造器把编码逻辑搬上链 图 1
换个智能账户不用换套代码:ERC-7679 构造器把编码逻辑搬上链 · 图 1

同一个去中心化应用,接入 A 家智能账户要装 A 家 SDK,接入 B 家又装 B 家——这是账户抽象生态真实的碎片化现状。ERC-7679 想终结这种锁定的办法很干脆:让每家账户实现把自己那套”拼装 UserOperation 的私活”做成一个公开的链上合约,谁要用,先来问它。本文按开发常识到用户判断的顺序讲清它改了什么、没改什么。

问题从哪来:每家账户编码不一样

ERC-4337 定义了智能账户与 EntryPoint 之间的标准消息 UserOperation,但账户内部如何解析这条消息是各写各的:有的账户把多笔操作包进名为 executeFoo 的函数,有的叫 executeBar;nonce 的字段布局、签名的拼接方式也各成一派。于是应用要为每种账户实现单独适配,工具链被绑死在特定厂商上。ERC-7679 的方案是规定每个账户实现必须附带一个”UserOp 构造器”合约,暴露一组固定函数。

换个智能账户不用换套代码:ERC-7679 构造器把编码逻辑搬上链 图 2
换个智能账户不用换套代码:ERC-7679 构造器把编码逻辑搬上链 · 图 2

接口清单:五个问题一个事件

按规范,构造器合约实现 IUserOperationBuilder 接口,核心是几个只读函数:entryPoint 回答”这家账户认哪个 EntryPoint 地址”;getNonce 给定账户地址和上下文返回该用的 nonce;getCallData 接收一串”目标+金额+数据”的执行意图(Execution 数组,天然支持批量),返回该账户真正能吃的 callData;同族函数还有把原始签名、nonce 组装成账户要求格式的成员。构造过程中无法确定的参数通过 context 字节串传入,格式留给实现自定义。另有一个 SupportedExecution 事件,在账户支持或不支持某类执行方式时对外说明。对开发者,这是”查字典式集成”;对用户,意义在于:支持标准构造器的账户越多,你换钱包时应用里”不支持本钱包”的提示就越少。

这条链上字典的安全属性

值得把两层信任分开。一层是构造器合约:它部署在链上、代码公开可查,应用发给它的都是只读查询,不签名不动资产,风险面小。另一层是 context:这个字节串的内容”由实现决定”,意味着恶意构造可能在里面夹带私货——对普通用户而言表现为”这个应用连发起都替我做完了”的极致体验,而这正是需要警惕的形态:替你构造 UserOperation 的主体若是网站而非钱包,操作内容就在网站手里组装。判断口径与批量签名一致——无论构造多自动,签名弹窗与设备屏上必须完整呈现每笔执行的 to 与金额,核对法见硬件钱包的小屏幕怎么读:地址回显与盲签的信任边界

它没改的三件事

第一,4337 的验证与执行主流程原封不动,构造器只是”预处理器”,账户仍要通过 EntryPoint 的校验,与ERC-7836 的两步流程:应用先签名、钱包后执行,你让渡了什么讲的委托执行、批量调用一定同生共死吗?EIP-7867 给原子性松绑的两档开关讲的批量原子性各管一段。第二,它不解决”账户归谁控制”——多签、社交恢复、模块这些安全属性由账户合约自身决定,构造器只搬运数据。第三,它不是发现协议:告诉钱包”你有哪些账户”是另一条协议的事钱包登录时那句「发现你的其他账户」:ERC-7555 单点登录怎么找回非默认账户,构造器负责的是”有账户之后怎么拼请求”。

用户的体验差别在哪里

最直接的观感是应用界面的按钮数量:适配差的集成会让智能账户用户走”复制交易数据—粘贴到钱包—手工确认”的弯路;接了标准构造器的应用能自动拼好一切,点一下就把签名请求递进钱包。多出来的便利与多出来的信任是同一枚硬币:把原本你在钱包里逐步点出来的字段变成对方一次生成,你的核对负担反而更重。纪律只有一条不变的——发起方可以是任何人,核对方必须是你自己。写操作落地后拿收据对账,日志反查法见收据里的日志也能查账:topics 和 data 怎么反查一笔转账,批量场景记得确认整串的实际执行范围与弹窗承诺是否一致。

开发者侧一分钟看懂集成差异

没接构造器的应用要走完这条路:先取账户地址,判断它属于哪家实现(通常靠查链上代码指纹或问索引服务),装入对应 SDK,按该家的规则填 nonce、拼 callData、算签名字段,任何一家改版都要跟着发版。接了构造器的应用只有一条路:拿到账户地址后读它声明的构造器地址,把”我要执行 target+value+data 这几笔”丢给 getCallData,把返回的字节直接塞进 UserOperation,签名与 nonce 同样现场问构造器。差别在故障半径:前者的坑分散在 SDK 版本与实现细节里,后者的坑集中在构造器合约本身——而它是链上公开代码,坏不了还查得到。这也是为什么该标准对长尾账户友好:小团队实现的账户只要附带合规构造器,应用不用为它单独写一行适配代码。

风险提示:本文描述的规范在写作时为草案,接口字段可能调整;自动构造不等于免除签名前核对,本文不构成投资建议。