ERC-7425 储备代币:把项目金库装进 ERC-4626 的外壳 图 1
ERC-7425 储备代币:把项目金库装进 ERC-4626 的外壳 · 图 1

ERC-7425 储备代币:把项目金库装进 ERC-4626 的外壳

DAO 金库最常见的事故剧本是这样的:几个签名就能把国库转走。2023 年 6 月 30 日创建、状态为 Draft 的 ERC-7425 给出的解法,是给储备基金套一层提案流程:谁想动库里的钱,先开一个链上提案,让利益相关方参与表决,通过之后资金才允许划出。标准原文把自己描述为带有利益相关方参与治理策略的代币化储备。它依赖 ERC-20 和 ERC-4626,相当于在金库代币的外壳里加了闸门。本文按原文拆这套闸门。

底座是 4626 金库格式

ERC-4626 的标准金库做的是资产换份额:存进资产拿到份额代币,赎回份额换回资产。ERC-7425 直接建立在这套语义上,储备合约本身就是一只金库,存入金库资产会拿到对应的份额。不同之处在于出金口:4626 的普通 withdraw 通道在这里被提案机制包住,动钱必须先有提案编号。这样设计的好处是所有认识 4626 的工具——金库看板、收益率聚合器——都能把储备当成一只份额代币来读,余额和总金库价值天然可查,提案层只影响取款路径,不影响资产计量。

ERC-7425 储备代币:把项目金库装进 ERC-4626 的外壳 图 2
ERC-7425 储备代币:把项目金库装进 ERC-4626 的外壳 · 图 2

提案函数怎么串起一次动用资金

动钱的起点是 openProposal,参数是目标代币、数量和接收者,返回一个提案编号。每个提案都带一组可查询的元数据:ownerTime 给出该提案相关的时点信息,ownerDepositownerWithdrawals 分别按提案编号返回关联的存入与取出安排,tokenDeposittokenWithdrawal 按次数查涉及的代币地址。发起人之外,用户侧还有 userDeposituserWithdrawals 两个视图,按地址加提案编号查询某个用户在某提案下动了多少钱。执行层面是 proposalDepositproposalWithdraw,在 4626 的存取签名上多带一个提案编号;closeProposal 负责收尾。整个接口把钱什么时候动、动去哪、谁投了赞成票这些质询全部落成可查询状态。储备层另有 depositReserve 这类直接入账的函数。

与时间锁、密钥轮换的分工

国库治理里常见两类闸门:时间锁与多签。时间锁说“表决通过再等一段时间执行”,给反对者留退场窗口;多签说“凑齐签名才算数”。ERC-7425 的提案闸门与两者正交:它管的是动钱动作绑在哪个角色上——资金在合约里,取款路径永远经过提案编号。审计时三种闸门的链上指纹完全不同:时间锁看提案哈希与执行时间戳之差,多签看确认记录,提案制金库看 openProposalproposalWithdraw 之间的状态轨迹。金库外壳因为还是 4626 格式,balanceOf、份额转账与总库值读数照常工作,普通金库浏览器能直接看到储备厚薄;再用 ownerTimeuserWithdrawals 这类函数还原每一次动钱的来龙去脉。两件套的信息密度相当可观:资产可看、路径可查,但对提案人意图正当性仍不提供任何保证——这是所有程序正义机制共同的天花板,标准自己也清楚这一点。

Draft 状态与使用边界

按 ercs 仓库记录,这份标准停留在 Draft,创建后推进有限,实现案例稀少,读者把它当作一种设计样本来读更合适。要划清的两个边界:提案机制约束的是合约内的程序正义,不能证明提案发起人的意图正当,也管不了私钥层面多签签名人被钓鱼的情形;投票通过只意味着合约允许这笔转出发生,不代表转账在商业上聪明。对做链上资产托管调研的读者,这份标准提供的启发是:任何保管人金库的动钱路径都可以拆成打开、表决、执行、关闭四段,段段留痕可查。拿这把尺子去量现实里的国库合约,能很快分辨哪些动钱动作藏在一次性签名背后,哪些走了公开流程。

本文为机制说明,不构成任何投资建议。