許明恩
許明恩

《區塊勢》創辦人|LikeCoin、Desmos 驗證者。寫作當飯吃,目前都有吃飽。也有主持 podcast 節目,錄音是最近的愛。 買酒的速度比喝酒的速度快,家裡沙發底下是酒窖。最愛 Moscato。最遠去過巴西,最驚奇是在亞馬遜河游泳、釣食人魚,兩件事分開做。 沒爬過玉山,單車環島騎到一半,成功泳渡日月潭。以穿短褲上班為傲,衣櫥沒有大格子襯衫。

Tornado Cash:骇客最爱的混币器与平民的隐私工具

(编辑过)

上周区块势的文章讨论Ronin 跨链桥遭骇6 亿美元,这几天骇客又有新动作。

根据链上纪录,直至昨天晚上骇客仍持续转出数千颗ETH 到多个钱包地址,并以每次100 颗ETH 的速度将赃款放入以太坊上的混币器—— Tornado Cash —— 简直是在众目睽睽下洗钱。

Tornado Cash 的名号响亮,不少人会将它与犯罪温床划上等号。之前我受邀到台湾高检署参加跨境金流追查研讨会时,就有检察官指定想了解Tornado Cash 的运作原理,以及如何追查资金流向。

其实Tornado Cash 的本意是要保护个人的交易隐私,而非成为洗钱工具。这篇文章讨论Tornado Cash 的用途与运作原理,也会教大家实际操作,并一窥究竟骇客如何滥用它来洗钱。

币圈监视器

加密货币是无记名且去中心化的数位资产。更直白地说,加密货币就像是数位现金。它具有现金的特质,却又可以在网路上传递。

人们拿现金到50 岚买饮料,不必透过中间人转交给店员,这笔交易就能马上银货两讫,更不会泄漏个资。用加密货币支付也相当类似。创建加密货币钱包不用提供任何个资,转帐则是在钱包之间私下转移,不必事先将加密货币存到中心化机构,而且这笔交易普遍都能在几分钟之内完成。

当然数位现金的比喻有其极限,加密货币实际上并不像现金这么能保障个人隐私。因为链上纪录就是币圈无所不在的「监视器」,而且全世界都可以透过它查看其他人在链上的一举一动。

举例来说, Nansen这家公司就专门分析链上富豪们的行为举止,让投资者都能「Follow the Smart Money」。而Chainalysis则是专门追踪链上犯罪金流,帮助企业和政府追踪加密货币的赃款流向。现在还有许多币圈公司会以Zerion分析求职者提供的个人钱包地址,透过「链上履历」更认识未来的合作伙伴。

这些都是运用链上数据的可追溯性衍生出来的正面应用,却也凸显加密货币缺乏隐私的一面—— 所有链上行为都被摊在阳光下检视。有些人可能会说:「如果没做什么见不得人的事,为什么要怕别人知道?」

这是将隐私与隐匿混为一谈。之前区块势曾讨论过这个议题,这边我简要摘录文章内容:

家人之间的日常对话没什么大不了,却没必要让全世界都知道,这是隐私(privacy)。但去便利商店偷吃一颗茶叶蛋不希望被任何人知道,这就是隐匿(secrecy)。

换句话说,隐私是预设匿名但事后可以选择性地自我揭露,但隐匿则是希望永远不被任何人知道。 Tornado Cash 的开发者就是希望打造一款保障用户隐私的交易工具,但骇客却常将它用来隐匿赃款。

Tornado Cash

根据官网介绍

Tornado Cash 是个完全去中心化的非托管协议,它让人们能在链上进行私下交易。 Tornado Cash 藉由打破来源地址和目标地址之间的链上关联性来提升交易隐私性。它透过智慧合约接受用户的加密货币存款,并允许用户从不同的钱包地址提款。

下图就是Tornado Cash 的操作画面。它的功能很单纯,只有存款、提款两种选项,并支援8 种不同的区块链。

如果你想要试试看,可以先从交易手续费最便宜的Polygon 或是完全不用花「真钱」的以太坊测试网Goerli 开始。只要到这里输入MetaMask 钱包地址,就可以免费领取测试网上的ETH 并将钱拿到Tornado Cash 上做实验。

操作步骤非常简单,总共只有三步:存款、等待和提领。使用者得先将加密货币存入Tornado Cash,并等待一段时间。理论上等待的时间越久,交易的隐私性就越高。

每次存款Tornado Cash 都会(在链下)交给用户一张存款凭证,它的用途类似于钱包私钥。未来Tornado Cash 只认这张存款凭证,唯有持有存款凭证的人才能向Tornado Cash 提领这笔钱。最后,只要再以另一个钱包地址从Tornado Cash 将钱提领出来就能保障个人交易隐私了。

简单来说,Tornado Cash 实际上在做的事情就是将不同来源的加密货币混在一起,并让用户从其他的钱包地址领币,借此打断资金追踪链。只要混得够彻底,即便是再厉害的链上数据分析公司,追查到Tornado Cash 的智慧合约时就会卡关,难以再向上追溯资金来源。

下图就是我透过Tornado Cash 提领到新钱包的0.1 颗ETH。

如果透过链上数据溯源,就只能找到最初的资金来源是Tornado Cash 的智慧合约。

但这个智慧合约在过去一年内共有16,981笔交易记录,里面可能有数千笔都是0.1 颗ETH 的存款。到底哪一笔0.1 颗ETH 才是我当初的存款纪录与钱包地址,外人根本无从得知。

这就是Tornado Cash 所说的「链上私下交易」。

当然心术不正的骇客也可以利用同样手法,先将加密货币存入Tornado Cash,日后再神不知鬼不觉地提领到新的地址。将黑钱洗白之后,就能光明正大地转到交易所出金。

以上周的骇客事件为例,骇客就陆续将17 万颗ETH 拆成多笔100 颗ETH 存入Tornado Cash。这是因为以太坊上的Tornado Cash 目前只接受4 种存款金额,分别是0.1 ETH、1 ETH、10 ETH 和100 ETH,借此将特殊金额「标准化」。

如果骇客一口气将偷来的17 万颗ETH 通通存入Tornado Cash 再一次提领。即便存的时间再久、使用的钱包地址完全不同,日后人们也可从提领金额「17 万颗ETH」轻易推断那笔钱就是当初Ronin 骇客事件的赃款。

因此,Tornado Cash 才强制使用者必须先将金额拆分成4 种数字的组合,让数据分析公司难以分辨这100 颗ETH 到底是谁、在什么时候存入的资产。毕竟Tornado Cash 的使用者并非全都是骇客,更多是希望借此保有链上交易隐私的个人。

只是龙蛇杂处之下,人们容易将Tornado Cash 贴上标签,认为它就是不法的洗钱工具。 Tornado Cash 也在官网上承认,有些用户会滥用这套维护隐私的工具来从事非法活动。因此,Tornado Cash 在2020 年就推出「清白证明」工具,希望能与犯罪洗钱切割。

清白证明

根据部落格指出

财务隐私对于维护人们的财务自由至关重要,但它不应该以非法为代价。我们相信诚实和透明。存款时Tornado.cash 会产生一张存款凭证给使用者。不仅人们日后可以凭它提领资金,也可以用来证明资金来源。

使用者只要将存款凭证输入Tornado.cash 开发的法遵工具,就能产生PDF 报告并转交给特定对象。但Tornado.cash 是非托管的隐私工具。因此,必须完全由用户自行决定是否向特定对象揭露交易隐私或者将其永久保密。但如果用户弄丢了存款凭证,我们也帮不上忙。因为Tornado.cash 不保留任何用户数据。

下方这段以tornado 开头的字串,就是在存款之后会拿到的存款凭证。

 tornado-eth-0.1-5-0x282696b256429c1bf1bf96bf7f75a85cab322c1fd5304897b624b4be13aa3162849a48a9308aa86175ee0b5cbdf4cf1338362fa785258cda3c4f72661203

别小看这串文字。

它不仅是我向Tornado Cash 领取0.1 ETH 的重要凭证,也可以用它来产生PDF 报告来证明自己的资金清白。如下图所示,报告上就清楚记载我在什么时候以哪个钱包地址存入0.1 ETH,并在哪个时候以另一个钱包地址提领出来。

这相当于跳过Tornado Cash 直接还原资金流向。

万一哪天交易所或执法人员怀疑我从Tornado Cash 提领的资金来源不正当,我就可以视情况出示这张凭证来证明自己的清白。

清白证明的设计也凸显隐私和隐匿的差异。注重隐私的用户可以在必要时刻出示报告,证明资金来源并无不法。但隐匿赃款的骇客一旦出示报告就会原形毕露。

未来如果交易所发现用户的资金源头是Tornado Cash,或许就会要求用户必须出示这份清白证明才能完成入金。这不仅能避免交易所收到不法赃款,也增加骇客从合法管道变现的难度。

最终,骇客可能忙了半天还是只能回到暗网进行私下交易。如果交易的卖方也谨慎地要求买家证明资金来源,避免自己收到了钱却不能花,恐怕最终这笔钱还是「走投无路」。

以往人们普遍会以为Tornado Cash 这种混币器是骇客的专属工具,但它其实是设计给你我使用的隐私工具。只要大众对这些工具越来越熟悉,骇客要将犯罪得来的加密货币变现就会更加困难。

加密货币不只是数位现金,它是比现金更好的钱。


区块势是由读者付费订阅来维持营运的独立媒体,内容不接受厂商业配。如果你觉得区块势的文章不错,欢迎将它分享出去。若行有余力,也能以定期定额支持区块势营运。若想查阅过往的出刊内容,可以参考文章列表

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论