最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑

芝麻开门

芝麻开门(Gateio)

注册芝麻开门享最高$2,800好礼。

币安

币安(Binance)

币安是世界领先的数字货币交易平台,注册领100U。

Tornado Cash是基于零知识证明的混币协议,通过ZK-SNARK技术切断存取款地址关联性。存款时生成随机数K和r计算哈希值Cn存入Merkle树,提款时用ZK Proof证明持有有效凭证而不泄露具体Cn。协议采用防重放攻击标识符nf=Hash(K),并支持中继者代付Gas机制。作为真正运用零知识性的隐私协议,Tornado Cash通过同质化存取金额和Merkle Proof验证机制,实现资金转移的匿名性,成为理解ZK应用的典型案例。

导语:近期Vitalik与多位学者联合发表的新论文引发了广泛关注,论文中探讨了Tornado Cash如何实现反洗钱方案,其核心思路是让取款人证明自己的存款记录属于一个不包含黑钱的集合。不过论文对Tornado Cash的业务逻辑与原理着墨不多,这让不少读者感到意犹未尽。

值得注意的是,以Tornado为代表的隐私项目才是真正运用了ZK-SNARK算法的零知识特性,而大多数打着ZK旗号的Rollup项目实际上只利用了ZK-SNARK的简洁性。在实际应用中,人们常常混淆Validity Proof与ZK的区别,而Tornado恰好是理解ZK应用的绝佳案例。本文作者曾在2022年为Web3Caff Research撰写过一篇关于Tornado原理的深度解析,现将其部分内容重新整理并加以拓展,希望能帮助读者更好地理解Tornado Cash的运作机制。

原文链接:https://research.web3caff.com/zh/archives/2663?ref=157

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑

解密”龙卷风”的运作原理

作为一款基于零知识证明混币器协议,Tornado Cash在2019年推出了首个版本,并于2021年底发布了新版本的测试版。旧版Tornado Cash在去中心化方面做得相当出色,其链上合约完全开源且不设多签控制,前端代码不仅开源还备份在IPFS网络中。考虑到旧版架构更为简洁明了,本文将重点解析旧版的工作原理。

Tornado Cash的核心设计理念是通过汇集大量存取款交易来混淆视听。用户存入代币后,只需出示ZK Proof证明自己曾存款,就能用新地址提取资金,从而切断存取款地址之间的关联性。

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑
形象地说,Tornado就像一个透明的玻璃箱,里面堆满了众人投入的硬币。虽然我们能看清是谁放入了硬币,但由于硬币的高度同质化,当陌生人从中取走一枚时,我们很难追溯这枚硬币最初的主人。

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑
(图源:rareskills)这种场景其实并不陌生:当我们在Uniswap池子里兑换ETH时,根本无法确认这些ETH来自哪个流动性提供者。但关键区别在于,使用Uniswap需要支付等值代币作为交换,且无法实现资金的私密转移;而混币器仅需提款者出示存款凭证即可。

为了确保存取款行为的一致性,Tornado池子设定了标准化的存取金额。比如某个池子的100名存款者和100名取款者,虽然交易记录公开可查,但每人存取金额完全相同,这就有效切断了资金流转的痕迹。这种设计在提供隐私保护的同时,也不可避免地为洗钱行为创造了便利条件。

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑
这里引出一个关键问题:取款者如何在不暴露身份的情况下证明自己的存款记录?最直接的方法是披露具体存款记录,但这显然会泄露隐私。零知识证明的巧妙之处就在于,它允许取款者在不透露任何敏感信息的前提下,证明自己确实在Tornado合约中有未提取的存款记录。

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑
这个证明过程可以转化为一个数学问题:已知Tornado的存款记录集合为{C1,C2,…C100…},取款者Bob需要证明自己持有的密钥能生成其中的某个Cn,但又不透露具体是哪一个。这就要用到Merkle Tree的特殊性质。

Tornado将所有存款记录组织成一棵Merkle Tree,每个新存款都会生成一个特征值Commitment作为叶子节点,并更新Merkle Root。例如Bob的第1万笔存款会记录在第1万个叶子节点C10000=Cn,合约随后会计算新的Root值。(注:为优化计算效率,Tornado合约会缓存最近发生变化的节点数据)

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑
(图源:RareSkills)Merkle Proof的优势在于其简洁性。即便Merkle Tree包含超过100万个叶子节点,验证某笔交易存在的证明也仅需21个节点数值。

取款时,Bob需要证明两件事:一是Cn确实存在于Merkle Tree中,这可以通过构造包含Cn的Merkle Proof来实现;二是证明自己持有的存款凭证与Cn存在关联。
最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑

深入解析Tornado业务逻辑

当用户在Tornado Cash界面点击存款按钮时,前端代码会在本地生成两个随机数K和r,计算出Cn=Hash(K,r)的值后,将这个commitment提交给Tornado合约,存入Merkle Tree。这里的K和r相当于私钥,用户必须妥善保管,因为后续取款时仍需使用。

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑
(encryptedNote是可选项,允许用户用私钥加密凭证K和r并存储在链上以防丢失)需要强调的是,这些操作都发生在链下,Tornado合约和外部观察者都无法获取K和r。一旦这些凭证泄露,就相当于钱包私钥被盗。

Tornado合约收到存款后,会将Cn记录为Merkle Tree的新叶子节点并更新Root值。因此,每个Cn都对应着特定的存款行为,外界可以观察到哪些地址进行了存款,以及对应的Cn值。

取款时,用户在前端输入凭证K和r,系统会使用这些参数生成ZK Proof,证明Cn存在于Merkle Tree中且与用户持有的凭证对应。这个过程中,所有关键参数都被隐藏,既保护了隐私,又验证了取款资格。同时公开的参数包括:当前Merkle root、收款地址A和防重放攻击标识符nf。

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑
设计上采用两个随机数K和r生成Cn是出于安全考虑,单一随机数可能导致碰撞风险。其中nf=Hash(K)作为防重放攻击的标识符,与Cn一一对应。这个机制类似于以太坊的nonce,确保每笔取款只能执行一次。

如果没有nf机制,虽然可以通过检查ZK Proof是否重复来防止重放攻击,但这会带来巨大的存储开销。相比之下,记录小巧的nf标识符是更经济的解决方案。

取款函数的参数设计体现了精妙的平衡:用户提交的ZK Proof隐藏了关键信息,自定义的收款地址通常为新创建地址,而nf则确保交易唯一性。不过这里存在一个小问题:新创建的取款地址往往没有ETH支付gas费,因此系统允许用户指定中继者(relayer)代付gas,费用从提款金额中扣除。

最精妙的ZK应用解析:深入探讨Tornado Cash运作原理与业务逻辑
综上所述,Tornado Cash通过巧妙的密码学设计,在用户基数足够大的情况下,就像让目标消失在茫茫人海中。其中ZK-SNARK技术的应用尤为关键,它成功隐藏了取款人的关键信息。可以说,Tornado是目前将ZK技术应用于实际场景中最精妙的项目之一。

声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/11908.html

CHAINTT的头像CHAINTT
上一篇 2025年9月10日 下午1:15
下一篇 2025年9月10日 下午1:51

相关推荐

  • Succinct:构建高效ZK证明供应链的基础设施解决方案

    Succinct 是什么? Succinct 正在建立让所有开发者可以简单使用 ZK 证明技术(zero-knowledge proofs)的基础设施。目前 Succinct 已经推出了一个开源、模组化的 zkVM SP1,现在正在开发一个去中心化的证明者网路Succinct Prover Network,未来该网路上将可以运行ZK 证明Rollup、协处理器(Coprocessors)及其他基础设施,是更顶层的「为ZK 基础设施服务的基础设施」。 为什么 ZK 证明技术很重要? ZK 证明能在完成证明的同时有效地保护隐私。假设有个人希望向一个公司提供证明自己健康的体检报告,但他不想要这些医疗敏感数据被传播和留存。通过生成一个 ZK 证明,用户可以证明他的健康状况符合公司的规定,同时不需要提供实际的医疗数据报告,避免了隐私泄露的风险。 在区块链得到大规模采用的路线图中,ZK 证明被认为是一个关键技术,对区块链的未来至关重要,它允许区块链开发者不可逆地证明任何陈述,例如区块链的状态转换函数或共识证明。 同时,ZK 证明也是无需许可的,不依赖外部资本或运营商的安全性,可以证明任何陈述的有效性;ZK 证明也是高效的,只需一方生成就可以由任何人验证。 团队发展历程和融资情形 Succinct 于 2022 年创办,团队规模精简,办公室位于旧金山。创始人之前曾撰写并发表过各种有关ZK 桥接、互通性和共享排序的研究,团队还有多年在模型训练平台/数据平台/AI 领域的工作经历。 uccinct 于 2022 年创办,团队规模精简,办公室位于旧金山。创始人之前曾撰写并发表过各种有关ZK 桥接、互通性和共享排序的研究,团队还有多年在模型训练平台/数据平台/AI 领域的工作经历。 Succinct 的许多客户都是行业中的顶级团队。目前 Wormhole、Lido、Near、Celestia Blobstream X、Avail (Vector bridge)和 Gnosis (native bridge) 已经在使用开发中的 Prover Network 的早期版本,打造符合 Succinct 协议标准的 ZK 证明 dapp。 2024年3月22日,Succinct 宣布获得由 Paradigm 领投的 A 轮融资 $ 43 M。目前团队的融资总额(种子轮和A 轮)共$ 55 M,参与方包括Robot Ventures、Bankless Ventures、Geometry、ZK Validator,以及天使投资人包括Eigenlayer 的创办人Sreeram Kannan、Polygon 的共同创办人Sandeep Nailwal 、Polygon Zero 的共同创办人Daniel Lubarov 以及Bitwise 的共同创办人Elad Gil。

    2025年8月4日
    11200
  • Carv是什么?区块链游戏数据平台Carv全面解析

    CARV 协议是一个去中心化的身份与数据层(IDL),专注于游戏和AI领域,通过CARV ID系统让用户自主管理、验证并变现数据。其核心产品CARV Play已吸引950万用户,创建近300万个CARV ID。协议采用零知识证明和模块化架构,支持数据交易、AI训练及DeFi应用。CARV代币驱动生态,涵盖治理、支付和质押功能。2024年推出测试网Alphanet和AI智能代理链,并与Consensys等合作推动发展。

    2025年10月2日
    9000
  • Tornado Cash创始人Roman Storm申请150万美元紧急资金 庭审最新进展

    Tornado Cash联合创始人Roman Storm紧急追加募集150万美元应对法律费用,其里程碑式审判进入第三周。加密社区已捐赠390多万美元资助辩护,案件可能为开源隐私工具刑事定罪树立先例。美国检方指控其合谋洗钱等罪名,Storm团队辩称协议属不可控的去中心化工具。另两位创始人中,Pertsev在荷兰被判有罪,Semenov遭FBI通缉。该案结果将深远影响DeFi创新与隐私权边界。

    2025年7月28日
    11400
  • ZKID:如何通过隐私保护技术革新数字身份管理

    数字身份验证面临隐私与便利的两难困境,集中式数据系统易受攻击导致信息滥用。零知识证明(ZKPs)和去中心化身份(DID)技术成为解决方案,如Polygon ID、Sismo、Aleo的zPass、Manta Network的zkSBT及Worldcoin的World ID,通过选择性披露和加密验证实现隐私保护。尽管面临区块链数据碎片化挑战,这些技术正推动行业突破,为更安全、隐私的数字未来奠定基础。

    2025年11月2日
    4500
  • Orbiter Finance是什么 区块链跨链桥使用指南

    ZK-Rollup是基于零知识证明的Layer2扩容方案,通过批量验证交易并生成有效性证明提交至主网,在保护隐私的同时提升区块链吞吐量。Orbiter Finance作为去中心化跨Rollup桥,利用ZK技术实现高效低成本的资产跨链,已支持19个网络,处理交易额达9.6亿美金。其运行机制通过MDC、EBC和SPV智能合约确保安全性,并推出Orbiter Rollup提升Layer2性能。官方计划今年推出代币,并通过O-Points积分奖励用户参与生态建设。

    2025年10月1日
    8200

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

风险提示:防范以"数字货币""区块链"名义进行非法集资的风险