Tornado Cash 隐私原理 零知识证明 最精妙应用 Tornado官网

1. 为什么 Tornado Cash 是理解 ZK 的最佳案例?

Tornado Cash为代表的隐私项目才是真正用到了ZK-SNARK算法的零知识性,而大多数打着ZK旗号的Rollup,用到的只是ZK-SNARK的简洁性。很多时候人们往往混淆了Validity Proof与ZK的区别,而Tornado Cash恰好是理解ZK应用的极佳案例。

零知识证明在区块链中有两种使用场景:

  1. 隐私保护:在不泄露交易细节(交易双方地址、交易余额)的情况下证明区块链上的资产转移是有效的
  2. 扩容:利用ZK技术节省链上计算空间

目前ZK技术在区块链行业中应用最广泛的是ZK Rollup(以太坊Layer2解决方案),这主要是扩容场景的利用。而隐私保护场景的集大成者正是Tornado Cash

想了解更多关于Tornado Cash与zk-SNARK的技术细节,可以阅读我们的文章:Tornado Cash 与 zk-SNARK

2. Tornado Cash 的技术架构

Tornado Cash使用零知识简洁非交互式知识论证(zk-SNARK)来验证和允许交易,具体使用的是GROTH16变体。

Tornado Cash的后端依赖一系列Circom电路来实现核心隐私保证。这些电路实现了零知识协议,智能合约通过该协议来验证关于用户存款的声明:例如存款是否有效、是否已被提取等。

想深入了解Tornado Cash的Circom电路设计,可以阅读我们的文章:龙卷风币核心电路与隐私保护实战指南

3. 核心电路:存款与提款

存款过程

Tornado Cash生成一个随机字节区域,通过Pedersen Hash(对zk-SNARK更友好)计算,然后将代币和20 MiMC哈希发送到智能合约,合约将其插入Merkle树。

存款在技术上相对简单,但Gas费用较高,因为需要计算20 MiMC哈希并更新Merkle树。

提款过程

同一份随机字节区域被拆分成secret和nullifier两部分。nullifier被哈希后作为公开输入发送到链上验证,防止双花攻击。通过zk-SNARK,可以在不泄露任何信息的情况下证明初始承诺和nullifier的20 MiMC哈希。

提款过程在技术上更复杂,但Gas费用更低,因为链上只需要nullifier哈希和零知识证明。

Tornado Cash 隐私原理 零知识证明 最精妙应用 Tornado官网

4. Merkle 树与零知识证明的结合

Tornado Cash的所有存款记录都存进了链上构造的一棵Merkle Tree,作为其最底层的叶子结点。

要证明「我在Tornado资金池里存过款」可以被转化为「我的存款记录可以在Tornado合约里找到」。取款者证明自己曾用密钥生成了存款记录里的某个记录,但通过ZK不泄露具体是哪一个。

想深入了解Merkle Tree的详细技术原理,可以阅读我们的文章:Merkle Tree 与 zk-SNARKs 协同工作

5. 为什么说这是「最精妙的 ZK 应用」?

Tornado Cash是一个玻璃箱,混杂了很多人放进去的Coin硬币。我们能看到放Coin的是哪些人,但这些Coin高度同质化,如果有生面孔的人从玻璃箱拿走一枚Coin,我们很难知道他拿走的Coin最初是谁放进去的。

零知识证明本身实现了隐私保护——外界只知道取款人的确往资金池里存过款,但不知道他对应哪个存款者。这正是zk-SNARK算法「零知识性」最纯粹的体现。

💡 常见疑问解答

Tornado Cash为什么被称为最精妙的ZK应用?

Tornado Cash真正用到了ZK-SNARK算法的零知识性——用户可以向智能合约证明存过款,同时不透露是哪一笔存款。而大多数ZK Rollup只用到了ZK-SNARK的简洁性(Validity Proof)。

Tornado Cash使用的具体ZK方案是什么?

Tornado Cash使用零知识简洁非交互式知识论证(zk-SNARK),具体使用的是GROTH16变体,后端依赖Circom电路来实现核心隐私保证。

Tornado Cash如何实现存款和提款?

存款时生成随机字节区域通过Pedersen Hash计算,将代币和20 MiMC哈希发送到合约插入Merkle树。提款时将随机字节拆分为secret和nullifier,nullifier哈希作为公开输入防止双花,通过zk-SNARK在链上验证。

为什么提款Gas费用比存款低?

存款需要计算20 MiMC哈希并更新Merkle树,Gas费用较高。提款链上只需要nullifier哈希和零知识证明验证,Gas费用更低。

TC

✍️ 本文作者:Tornado官网运营者

我是 Tornado官网 的独立运营者,8年软件开发经验,2017年进入加密领域,专注 Tornado Cash 协议与零知识证明研究。本站所有内容均为个人独立研究和撰写,旨在为中文社区提供准确、深度的隐私技术解读。

📌 发现错误或想交流?欢迎通过 Telegram邮箱 联系我



 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。