金额、对手方都不上链:ERC-8086 给隐私代币画的最小接口
隐私代币产品早就存在,接口却各自为政:门罗系工具自成体系,各条链的混币合约互不兼容,钱包和交易所为每个产品单独对接。ERC-8086 创建于 2025 年 11 月 19 日,仓库记录状态为 Draft,试图用一个最小接口收敛这条路线,名为 IZRC20。它的目标不是发明新密码学,而是把承诺、空号器、证明验证三件套写成所有隐私代币共用的函数表。
转移长什么样
核心动作两个。mint 带三个参数:proofType 声明用哪类证明体系、proof 是零知识证明本体、其后是铸造细节,铸造成功发出 Minted 事件,事件只披露与合约账务必要相关的信息。transfer 同样带证明类型与证明,公开可见的不再是金额与双方地址,而是新承诺进入 Merkle 树时发出的CommitmentAppended,以及旧承诺被花掉时空号器进入链上集合触发的 NullifierSpent。读者可以把它翻译成一句直觉:链上只见“有一笔进了树”“某个号被花过”,不见“谁给谁转了多少”。查询函数配合这个结构:nullifiers 查某个空号器是否已花,activeSubtreeRoot 返回当前活跃子树的根,钱包据此构造新的包含证明,避免每次扫全树。

空号器与证明类型的分工
防双花靠空号器唯一性:每花一枚承诺,由该承诺派生的空号器必须一次性登记进链上映射,重复花费在同一集合前必然撞号,标准把这称为整个方案的关键不变量。Merkle 树保证历史承诺不可篡改地累积,证明电路保证花掉的承诺真实存在过且所有权归证明生成者。proofType 参数的意义是把电路体系放进接口:不同证明路线(比如不同后端证明系统)用不同编号,合约按编号选择验证器路径,接口因此不锁死任何一条密码学路线。隐私强度也因此不完全由合约保证:配置正文放在 privacyConfigURI 指向的链下文件里,由 setPrivacyConfigURI 更新,评估隐私代币时这份 URI 指向的东西与合约同等重要。
元数据函数为何刻意保留
一个容易被误读的设计:在强调隐私的接口里保留 name、symbol、decimals。理由是隐私方案隐藏的是金额、发送方与接收方构成的交易图,不是让代币不可识别;钱包要展示资产名、前端要格式化小数位,识别层与账务层的隐私预算不同,标准据此切开两者,把真正敏感的字段留给证明体系。同样的分层思路解释 totalSupply 的可选性——总量暴露程度是各隐私模型的自由变量,接口把选择权留给发行方并在配置文件中声明,集成方按声明处理而不是假设一致。读接口文档时值得记住原文那句提醒:更高层协议可以在这套原语上继续搭建,但任何再上层都不能用协议名义偷偷改变隐私预算,合约、配置与电路三处一致才算一个诚实的隐私代币。
双模式与集成边界
标准推荐的形态是双模式代币:同一代币有公开与私密两种池子,公开侧走 ERC-20 兼容函数,私密切换进承诺树,接口保留 name、symbol、decimals,totalSupply 被设计为可选——有些隐私模型刻意让总量不可见,所以它不能是必选。对集成方,这意味着隐私代币的接入清单比 ERC-20 长得多:证明生成依赖的树快照是否过期、配置文件的签名者是谁、电路审计出自哪家、空号器撞号后钱包的重试策略,逐项都要确认。对普通持有者,至少记住接口文档里那句警告级别的表述——空号器、Merkle 树、电路三者任何一个失守,隐私承诺就是无根的:链上不留金额的代价,是任何账本核对都必须借密码学证明,你看到的沉默不是没有发生,而是不允许被直接读出。本文只讲机制,隐私工具的合规边界因地区而异,需按当地法规另行确认。
本文为机制说明,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。