Tornado Cash工作原理

Tornado Cash(Tornado) 是一种在以太坊区块链上运行的虚拟货币混合器,通过混淆其来源、目的地和交易对手,不加选择地促进匿名交易,而不试图确定其来源。通过对零知识证明的创新使用,能够以不可追溯的方式将ETH以及ERC20代币(目前支持DAI,cDAI,USDC,USDT,WBTC)发送到任何地址。也就是说,Tornado 接收各种交易并将它们混合在一起,然后再将它们传输给各自的接收者。虽然据称目的是增加隐私,但像 Tornado 这样的混合器通常被非法行为者用来洗钱,尤其是那些在重大抢劫中被盗的资金。

Tornado Cash如何实现隐私保护?

Tornado Cash是一个为以太坊用户提供隐私保护的开源软件项目。与许多此类项目一样,Tornado Cash不是法律实体,而是由不同贡献者群体多年来开发的几个开源软件库。这些贡献者已发布并提供Tornado Cash作为以太坊区块链上的智能合约集合作为一般用途。用户可将ETH或者其他代币发送到Tornado提供的一个智能合约上,并可再提款至不同的地址上,这样就打破了源地址和目标地址之间的链上链接从而提高了交易隐私。

Tornado实现路径如下:用户在存款时需要生成一个秘密(secret),并将其哈希值连同存款的数额发送到 Tornado 的智能合约中。合约接收存款后,将其承诺也添加到合约的存款列表中。日后,当用户想要提款时,需要向合约提供一个证明,证明其拥有一个secret,能和智能合约中的存款列表中未被花费的承诺(commitment)对应起来。得益于零知识证明技术的加持,Tornado 可以在不公开这个secret与哪笔资金相关的条件下完成匹配。Tornado智能合约将检查这个证明,然后将存款金额转移到指定的提款地址。而对于外部的观察者来说,无从得知这笔提款来自哪笔存款。

Tornado Cash核心合约:Pools

Tornado Cash pools是智能合约,使用户能够在以太坊上进行私秘交易。当用户使用时,Pool将自动执行两种支持的操作之一:“存款”或“取款”。这些操作一起允许用户从一个地址存入代币,然后将同样的代币提取到另一个地址。至关重要的是,即使这些存款和取款事件公开发生在以太坊的透明分类账上,存款和取款地址之间的任何公共链接都被切断了。用户可以提取和使用他们的资金,而不必担心将他们的整个财务历史暴露给第三方。

为了支持存款和取款操作,这些智能合约编码了进一步定义其功能的严格规则。这些规则自动应用于存款和取款操作,以维护所有Tornado Cash pool共享的一个非常重要的属性:用户只能提取他们最初存放的特定代币。

此属性会自动针对池的所有操作强制执行,并确保Tornado Cash池完全是非托管的。也就是说,存入并随后提取代币的用户保持对其代币的完全所有权和控制权,即使它们混入过池子。用户在任何时候都不需要将其代币的控制权交给任何人。

美国财政部制裁 Tornado

2022年8月,美国财政部外国资产控制办公室 (OFAC) 宣布制裁混币器Tornado Cash,将Tornado Cash 相关的USDC和ETH地址添加到特别指定国民 (Specially Designated Nationals, SDN) 名单中。在发布的公告中,OFAC禁止美国居民使用Tornado Cash。Tornado Cash一直以来是一些去中心化金融黑客攻击和利用的核心。自2019年以来,个人和团体使用该混和器清洗了价值超过70亿美元的加密货币。

“尽管公众另有保证,但Tornado Cash 一再未能实施有效控制措施,以阻止其定期为恶意网络行为者洗钱,并且没有采取基本措施来解决其风险,财政部将继续积极采取行动,打击为犯罪分子和协助犯罪分子洗钱的混币者。”负责恐怖主义和金融情报的美国财政部副部长Brian Nelson表示。

此消息一出,USDC稳定币发行方Circle也冻结了价值超过75,000 USDC 的资金,这些资金与OFAC批准的列入SDN名单中的44个Tornado Cash地址有关。

随着加密市场监管制度的逐渐完善,隐私交易越来越受到重视。此前几年里,Tornado已经成为区块链用户(合法和非法用户)的默认平台,用以保护交易中的隐私。区块链交易对隐私的需求尤其迫切,因为所有交易都是公众可见的。没有Tornado来混合资金,区块链要实现隐私将变得更加复杂。