把一串资产铸成一枚:ERC-3589 的组装哈希与盐
想把五枚代币加两张藏品打包成一个可交易的整体,常规做法是造一个金库合约或 NFT 盒子。ERC-3589(2021 年 5 月创建,Stagnant)的模型更激进:打包这动作本身不产生新合约——资产清单经过哈希直接变成代币编号,一枚新 NFT 从清单里”长”出来,一份清单对应一个唯一编号。
hash、mint、burn 三件套
流程从 hash(salt, addresses, numbers) 开始:把一份 ERC-20 合约地址加数量清单、一串 ERC-721 合约加编号清单,混入一个盐值,算出一个哈希作为新 NFT 的编号。同一串资产配同一个盐永远得到同一个编号——盐的存在让”内容相同、身份不同”成为可能,两次同样配方的组装可以靠不同盐区分成两枚独立代币。mint 与 safeMint 把这份清单里的资产收进合约并铸出编号 NFT;burn 反向执行,传入同样的清单与盐,合约核对哈希一致后销毁 NFT、按清单逐项退回原资产。AssemblyAsset 事件记录每次组合的完整清单,让索引器能重建每枚代币的配方。标准的动机把它推向一个很有画面感的用途:把一篮子代币铸成 NFT 放进曲线池交易,等于给一个”去中心化指数”造出可做市载体;同时它天然是个多资产原子交换工具——交易双方各自铸出对方要的配方再换 NFT,两次 transfer 完成一篮子对一篮子的置换。

与盒子、金库的路线差别
金库路线(碎片化包装、盒子合约)给每个包裹分配自增编号,内容清单存在合约状态里;ERC-3589 把清单压进编号本身——编号即哈希,哈希即承诺。好处是零容器成本、配方可当场重算核验:任何人拿到清单字符串就能重算 hash 比对编号,挂羊头卖狗肉当场穿帮。代价同样明显:编号与内容焊死,想给包裹加一枚零钱就得销毁重铸,不能局部换件;每笔铸造都要完整传递两份清单数组,Gas 与调用复杂度对普通钱包不友好;资产数量在铸造后变化(比如 ERC-20 余额被重新定价)时,哈希语义只覆盖”铸造时的清单声明”,不反映池内现值。
索引与尽调的双重盲区
一份被低估的设计遗产
拆开 ERC-3589 的零件会看到几个后来大放异彩的思想雏形:内容寻址式的资产身份、可重算的铸造配方、清单即审计线索。它没赢在执行效率上——数组遍历的费用账单和钱包的陌生感赢了它——但它把组合资产的诚实问题变成了数学问题:任何参观者都能重算哈希戳穿空头盒子。今天遇到任何篮子类产品,无论底层用没用这份标准,都可以套用同一条检验:清单可不可重算、配方与链上持仓对不对得上。能答这两问的产品,包装再花哨也不过是 ERC-3589 想过的变体;答不上的,外观再朴素也是黑箱。
停在 Stagnant 的现实原因与工程生态相关:钱包与市场按”合约加编号”两元组认识 NFT,对”编号里编码了配方”这种自描述结构没有展示分支,普遍退化成显示一串哈希字符串。尽调侧反而因此多了一条免费检验:评估此类 NFT 时,先找项目方公布的铸造清单与盐,用同一公式本地重算,再对 AssemblyAsset 事件里的清单逐项查持仓——三层一致才谈得上”里面真是那些东西”。这个动作把组合式资产最古老的骗术(空盒子、旧清单)直接堵死。机制本身像一件手工精密但没人买产的钟表,但它示范的”编号即内容承诺”思路,在内容寻址与清单化审计的今天反而更显超前。读这份标准还有一个隐藏收获:它示范了哈希作为身份函数的工程边界——哈希保证清单不可抵赖,却不保证清单里每个地址是诚实合约;配方验真之后,逐项审查合约本身仍是绕不开的功课,数学能省的是信任,省不掉的是尽调。本文只做协议机制科普,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。