
1. Tornado Cash 是什么?
Tornado Cash是一个基于以太坊的隐私工具类智能合约,提供匿名和不可追踪的加密货币交易。简单说,Tornado Cash就是一个混币器——大家把钱存进来,钱都混在一起,然后再提走。它使用零知识证明(zk-SNARKs)来打破存款和取款地址之间的链上链接,从而提供交易的隐私性。
Tornado Cash通过智能合约实现隐私保护——这些合约接受来自一个地址的代币存款,并允许从另一个地址提款。智能合约充当资金池,混合所有存入的资产。当资金从这些池中被一个全新的地址提走时,链上源地址与目标地址之间的链接就被切断了,提取的加密资产因此实现匿名化。
想了解更多关于Tornado Cash的技术原理,可以阅读我们的文章:Tornado Cash的隐私原理:零知识证明的最精妙应用。
2. 核心机制:三步完成匿名交易
Tornado Cash的运作可以概括为三个核心步骤:
1. 存入(Deposit)
用户将资金放入池中时,协议会生成一份私人凭证(Note/票据)。这份私人凭证相当于一个私钥,用户后续需要用它来取回资金。从技术上讲,Tornado Cash会生成一个随机字节区域,通过Pedersen Hash(对zk-SNARK更友好)计算,然后将代币和20 MiMC哈希发送到智能合约,合约将其插入Merkle树中。
2. 等待(Wait)
存款后,用户应等待一段时间再提款。池子里的用户越多、等待时间越长、期间发生的交易越多,匿名性就越高。这个等待步骤让用户的资金与其他存款者的资金充分混合。
3. 提款(Withdraw)
用户使用不同地址(全新地址或旧地址均可)提交零知识证明,证明自己拥有对应某笔存款的有效密钥,合约验证通过后将资金转到指定地址。提款时,同一份随机字节区域被拆分成两部分:secret(秘密)和 nullifier(无效化器)。nullifier被哈希后作为公开输入发送到链上,与智能合约和Merkle树数据一起验证,防止双花攻击。
想深入了解承诺与注销码的详细机制,可以阅读我们的文章:龙卷风币的隐私保障:承诺与注销码的密码学博弈。

3. zk-SNARK 的核心作用
Tornado Cash使用零知识简洁非交互式知识论证(zk-SNARK)来验证和允许交易。Tornado Cash为代表的隐私项目才是真正用到了ZK-SNARK算法的零知识性,而大多数打着ZK旗号的Rollup,用到的只是ZK-SNARK的简洁性。
零知识证明本身实现了隐私保护——外界只知道取款人确实往资金池里存过款,但不知道他对应哪个存款者。要证明「我在Tornado资金池里存过款」可以被转化为「我的存款记录可以在Tornado合约里找到」。取款者证明自己曾用密钥生成了存款记录里的某个记录,但通过ZK不泄露具体是哪一个。
即使nullifier是公开的,隐私依然得以维持,因为没有办法将哈希后的nullifier与初始承诺关联起来。此外,即使交易信息存在于Merkle根中,关于确切Merkle路径的信息,以及随后交易的位置,仍然保持私密。
想了解Tornado Cash与zk-SNARK的更多细节,可以阅读我们的文章:Tornado Cash 与 zk-SNARK。
4. 匿名最佳实践
为了最大化隐私保护,用户应遵循以下基本规则:
- 使用中继器(Relayer)支付 Gas:提款时使用中继器,让提款地址无需持有ETH支付Gas费,进一步提升匿名性
- 预留足够时间间隔:在存款和提款操作之间留出时间,避免时间关联性
- 等待多笔交易后再提款:让自己的资金与更多用户的交易混合在一起
想了解更多隐私保护建议,可以阅读我们的文章:Tornado Cash 隐私保护最佳实践:如何真正实现链上匿名。
5. Tornado Cash 与中心化交易所的类比
Tornado Cash的原理其实很像中心化交易所——充币时有一个固定充值地址,但提币时是从中心化的集体资金池地址提出到任意地址。Tornado Cash将中心化交易所链上化了,不需要中心化服务,全流程保护用户隐私。
💡 常见疑问解答
Tornado Cash是什么?
Tornado Cash是一个基于以太坊的隐私工具类智能合约,提供匿名和不可追踪的加密货币交易。它是一个混币器——用户将加密货币存入智能合约资金池,资金混合后再从不同地址提走,从而切断存款和取款地址之间的链上链接。
Tornado Cash如何运作?
运作分为三步:存入时生成私人凭证(Note)并通过Pedersen Hash计算存入Merkle树;等待一段时间让资金充分混合;提款时使用不同地址提交零知识证明,nullifier哈希作为公开输入防止双花,合约验证通过后转移资金。
Tornado Cash和中心化交易所的混币有什么不同?
Tornado Cash将中心化交易所的混币模式链上化了,不需要中心化服务,全流程由智能合约和零知识证明保护用户隐私,无需信任第三方。
使用Tornado Cash有哪些隐私保护建议?
建议使用中继器(Relayer)支付Gas让提款地址无需持有ETH、在存款和提款之间预留足够时间间隔避免时间关联性、等待多笔交易后再提款让资金与更多用户交易混合。
