ERC-8085 双模式代币:同一份供应,透明余额和隐私余额怎么来回搬
隐私方案历史上多是”另起炉灶”:想要保密就换一个隐私合约,把币换进换出,两个账本的余额各记各的。ERC-8085(Dual-Mode Fungible Tokens)尝试一种共存结构:同一个代币合约里长两条腿——完全兼容 ERC-20 的透明模式,和基于 ERC-8086 隐私原语(标准里称为 ZRC-20 接口)的隐私模式,持有人可以自行把余额在两条腿之间搬进搬出。按以太坊 ercs 仓库的记录,这份提案状态为 Draft,创建于 2025 年 11 月 15 日,任何人可无许可实现部署,不需要治理批准。
一条恒定等式撑起整套设计
标准的中心是一条要求任何时刻都成立的供应不变式:totalSupply() 恒等于全体透明余额之和加上 totalPrivacySupply()。toPrivate 把请求数量的透明余额转为隐私承诺,透明侧减少、隐私侧等额增加;toPublic 反向。因为总量守恒,隐私模式不会”凭空多币”,也不会把 ERC-20 侧的账本逻辑架空——交易所、索引器仍能用标准 balanceOf 看透明侧,只是要知道那不再是世界的全部。
防双花的机制沿用 UTXO 隐私协议的经典部件:隐私余额是写进默克尔树的承诺,花掉时提交空指针 nullifier,isNullifierSpent 让任何人都能验证某个 nullifier 是否已被消费——同一枚隐私币花两次会在链上被直接证伪。ERC-8086 那侧的事件 CommitmentAppended 与 NullifierSpent 构成隐私侧的”伪账本”:看不出金额与对手,但进出的件数可数。

转回明面时的 BURN_ADDRESS 细节
一个体现标准工程颗粒度的规定:toPublic 的实现必须把对应隐私承诺烧向 BURN_ADDRESS 这类不可达地址再在透明侧 mint——如果允许旧承诺继续存在于树上,它和新生成的透明余额就是同一笔钱的两张票,双花之门就此打开。读实现时专门找这一步:正规做法是 nullifier 记录加承诺销毁加透明 mint 三件事原子完成,缺任何一件都是致命缺陷。
它不是什么
把一次隐私支付走完全程
用一个小场景检验机制闭环。用户先在交易所提到 100 枚代币,钱包里 balanceOf 显示 100,这是透明侧;他调用 toPrivate,附零知识证明,本地生成两个承诺——100 枚进入隐私侧承诺池,透明余额归零,CommitmentAppended 记下两枚新承诺,此时 totalPrivacySupply 加 100 而 totalSupply 纹丝不动,不变式在前后两个块都成立。几天后他向卖家付 30 枚:本地用一旧承诺作输入、生成两枚新承诺(30 给卖家、70 找回给自己),提交证明并登记消费旧承诺的 nullifier,任何人可用 isNullifierSpent 复核那枚输入此前未被花过——双花在协议层被数学封死。若他想回到明面,走 toPublic 指定数量,旧隐私承诺必须销毁并把 nullifier 上链,透明侧才 mint 出对应余额。全程公开可见的只有三次模式边界上的动作:何时进隐私、何时出隐私、各是多少数量——链上分析在两段隐私转账之间看到的是同一只地址进了隐私池又出了隐私池,中间对谁付了多少完全不可见。对普通用户的含义因此具体:模式切换本身是元数据泄露点,频繁小额进出比一次性大额进出的隐私效果差得多,标准在诚实局限一节承认的正是这一点;Draft 接口与 ERC-8086 原语仍在演化,用前以合约为准。
给普通用户三点定位。第一,它是新发行代币的原生选项,不是给既有 ERC-20 加装隐私的通用混币器——给旧币加隐私属于另一类包装器方案,标准对两种路线都有讨论。第二,模式转换动作本身公开:转入或转出隐私模式的时点、频率在链上可见,观察得到”某人在此刻选择了保密”这件事,只是看不到他之后在隐私侧做了什么。第三,隐私模式让余额和金额对公众不可见,也因此改变合规评估的面貌:涉及受监管资产时,能否用隐私模式履行披露与审计义务,取决于当地规则,机制本身不提供豁免。标准自称面向新项目的双模式设计,Draft 阶段接口仍可能调整,使用前以合约实现为准。本文为机制说明,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。