
龙卷风币(Tornado Cash)被制裁的核心争议在于:它虽然保护了普通用户的隐私,但也为非法资金提供了洗白渠道。开发者 ameen.eth 提出的 “Proof-of-Innocence”(无罪证明)概念,以及基于此发展的 Privacy Pools 协议,正是为了解决这个矛盾而生。
Tornado官网将为你深入解析龙卷风币(Tornado Cash)的这一合规演进方向。
1. 理解 Tornado Cash 的基本原理
要理解 Privacy Pools,需要先回顾龙卷风币(Tornado Cash)的核心设计。当用户存款时,会生成一个由 secret(秘密值)和 nullifier(注销码)组成的收据(Note)。这个收据经过哈希处理后得到 “承诺”(Commitment),作为叶子节点插入 Merkle Tree。提款时,用户需要提供一个零知识证明,证明自己拥有一个有效的收据,且该收据的承诺存在于 Merkle Tree 中,同时不泄露具体是哪一个。
如果你想更深入了解 Merkle Tree 的工作机制,可以阅读我们之前的文章:Merkle Tree 与 zk-SNARKs 协同工作。
2. “无罪证明”:隐私与合规的桥梁
“Proof-of-Innocence”的核心思想是,允许提款者生成一个额外的零知识证明,来向验证者证明,他所提取的资金并非来自某个”拒绝清单”中的存款,同时无需透露这笔资金具体来自哪一笔合法存款。
具体有两种实现路径:
- 允许清单模式:证明提款资金来自一个预设的”干净”存款集合。
- 拒绝清单模式:证明提款资金不在一个”黑名单”存款集合中。
通过这种方式,普通用户可以证明自己的”清白”,而不用牺牲自己的财务隐私。
想了解更多关于龙卷风币(Tornado Cash)的隐私保护实践,可以阅读我们的文章:龙卷风币隐私保护流程全图解。
3. Privacy Pools:将概念落地
基于”Proof-of-Innocence”概念设计的 Privacy Pools 协议,在龙卷风币(Tornado Cash)的提款收据上增加了第三层含义:证明提款资金来自于”允许清单”中的存款。
其技术实现,是在原有的存款 Merkle Tree 之外,再维护一个 “允许列表默克尔树”。提款者生成证明时,不仅要证明自己的存款在原树上,还要证明它同时也存在于”允许列表”中。
想了解更多关于龙卷风币(Tornado Cash)技术的演进方向,可以阅读我们的相关文章:
💡 常见疑问解答
Proof-of-Innocence(无罪证明)是什么?
Proof-of-Innocence是Tornado Cash开发者ameen.eth提出的概念,允许提款者生成额外的零知识证明,向验证者证明所提取资金并非来自拒绝清单中的存款,同时无需透露资金具体来自哪一笔合法存款。
Privacy Pools如何实现合规与隐私的平衡?
Privacy Pools在原有的存款Merkle Tree之外,再维护一个允许列表默克尔树。提款者生成证明时,不仅要证明自己的存款在原树上,还要证明它同时也存在于允许列表中,从而在不暴露完整隐私的前提下证明资金来源清白。
允许清单模式和拒绝清单模式有什么区别?
允许清单模式证明提款资金来自一个预设的干净存款集合;拒绝清单模式证明提款资金不在一个黑名单存款集合中。两种模式都通过零知识证明实现,用户可根据不同合规要求选择。
