第一次研究Dusk的时候,我对“隐私金融”有点怀疑。过去很多项目讲隐私就是藏,但面对机构和受监管市场,问题没那么简单。金融系统需要的不是看不见,而是需要验证的时候能证明某些事成立。
后来重新翻Dusk Citadel资料,才发现自己之前理解偏了。Citadel把身份验证拆成两步。第一步用户发一笔链上交易,附带一个只有自己能控制的隐身地址。许可证颁发方一直在扫链,看到发给自己的请求后验证通过,把许可证铸造到那个地址,用户再扫链接收。第二步用户拿着许可证申请服务,发一笔链上交易附带零知识证明,证明自己持有有效许可证,同时计算一个会话cookie——这是一个能用链上数据验证的值,只有用户和服务方知道它的含义。cookie通过加密信道发给服务方,服务方去链上核对会话ID,对上了才放行。全程链上完成,但除了用户和服务方没人知道谁在申请什么。
这个零知识证明电路的约束数大概是3.5万,生成证明十几秒,链上验证只要0.007秒。对用户来说多等十几秒申请一次,后面每次验证都是毫秒级。好在许可证可以提前作废,不用等过期,所以那个十几秒的生成时间对协议整体性能影响不大。
Citadel要保证五件事:证明你确实有证但不暴露额外信息、服务方能撤销但证没被撤之前一直有效、你的活动不能被追踪、证不能被重复用、只泄露必要信息。这五个属性加上已封装成SDK的Moat开发者工具,构成了Dusk身份层的核心——它和DuskDS、DuskVM平级,不是独立做隐私,而是决定谁有资格做Moonlight的公开交易和Phoenix的隐私交易。
看到这里我停下来想了一个事。真正成熟的隐私系统不是所有东西都看不见,而是让不同角色只看到自己该看到的。未来资产上链,竞争点不是谁藏得多#dusk $DUSK @Dusk
后来重新翻Dusk Citadel资料,才发现自己之前理解偏了。Citadel把身份验证拆成两步。第一步用户发一笔链上交易,附带一个只有自己能控制的隐身地址。许可证颁发方一直在扫链,看到发给自己的请求后验证通过,把许可证铸造到那个地址,用户再扫链接收。第二步用户拿着许可证申请服务,发一笔链上交易附带零知识证明,证明自己持有有效许可证,同时计算一个会话cookie——这是一个能用链上数据验证的值,只有用户和服务方知道它的含义。cookie通过加密信道发给服务方,服务方去链上核对会话ID,对上了才放行。全程链上完成,但除了用户和服务方没人知道谁在申请什么。
这个零知识证明电路的约束数大概是3.5万,生成证明十几秒,链上验证只要0.007秒。对用户来说多等十几秒申请一次,后面每次验证都是毫秒级。好在许可证可以提前作废,不用等过期,所以那个十几秒的生成时间对协议整体性能影响不大。
Citadel要保证五件事:证明你确实有证但不暴露额外信息、服务方能撤销但证没被撤之前一直有效、你的活动不能被追踪、证不能被重复用、只泄露必要信息。这五个属性加上已封装成SDK的Moat开发者工具,构成了Dusk身份层的核心——它和DuskDS、DuskVM平级,不是独立做隐私,而是决定谁有资格做Moonlight的公开交易和Phoenix的隐私交易。
看到这里我停下来想了一个事。真正成熟的隐私系统不是所有东西都看不见,而是让不同角色只看到自己该看到的。未来资产上链,竞争点不是谁藏得多#dusk $DUSK @Dusk

