慢雾 AML:“揭开” Tornado.Cash 的匿名面纱
慢雾科技By:Lisa@ 慢雾 AML 团队
随着 DeFi、NFT、跨链桥等项目的火热发展,黑客攻击事件也层出不穷。有趣的是,据慢雾统计,80% 的黑客在洗币过程中都使用了混币平台 Tornado.Cash,本文以 KuCoin 被盗事件为例,试图从追踪分析过程中找到一丝揭开 Tornado.Cash 匿名性的可能。
事件概述
据 KuCoin 官网公告,北京时间 2020 年 9 月 26 日凌晨,KuCoin 交易所的热钱包地址出现大量异常的代币提现,涉及 BTC、ETH 等主流币以及 LINK、OCEN 等多种代币,牵动了无数用户的心。
图 1
据慢雾 AML 团队统计,本次事件被盗资金超 2.7 亿美元,具体如下图:
图 2
值得注意的是,我们全面追踪后发现黑客在这次攻击事件中大量使用了 Tornado.Cash 来清洗 ETH。在这篇文章中,我们将着重说明黑客如何将大量 ETH 转入到 Tornado.Cash,并对 Tornado.Cash 的转出进行分析,以分解出被盗资金可能流向的地址。
Tornado.Cash 是什么?
Tornado.Cash 是一种完全去中心化的非托管协议,通过打破源地址和目标地址之间的链上链接来提高交易隐私。为了保护隐私,Tornado.Cash 使用一个智能合约,接受来自一个地址的 ETH 和其他代币存款,并允许他们提款到不同的地址,即以隐藏发送地址的方式将 ETH 和其他代币发送到任何地址。这些智能合约充当混合所有存入资产的池,当你将资金放入池中(即存款)时,就会生成私人凭据(随机密钥),证明你已执行了存款操作。而后,此私人凭据作为你提款时的私钥,合约将 ETH 或其他代币转移给指定的接收地址,同一用户可以使用不同的提款地址。
如何转入?
攻击得手后,黑客开始大范围地将资金分批转移到各大交易所,但还没来得及变现就被多家交易所冻结了。在经历了白忙一场的洗钱后,黑客将目光转向了 DeFi。
据慢雾 AML 旗下 MistTrack 反洗钱追踪系统显示,黑客 (0xeb31...c23) 先将 ERC20 代币分散到不同的地址,接着使用 Uniswap、1inch 和 Kyber 将多数 ERC20 代币换成了 ETH。
图 3
大部分 ERC20 代币兑换成 ETH 后,被整合到了以下主要地址:
表 1
在对 ETH 和 ERC20 代币进行完整追踪后,我们梳理出了资金是如何在黑客地址间移动,并分解出了资金是以怎样的方式进入 Tornado.Cash。
图 4
黑客将资金按时间先后顺序转入 Tornado.Cash 的详情如下:
表 2
转到了哪?
猜想
1. 巨额的 ETH 进入 Tornado.Cash,会集中表现出一些可追踪的特征。
2. 以黑客急于变现的行为分析,猜想黑客将资金存入 Tornado.Cash 后会随即提款,或下次存入时提款。
3. 分析攻击者使用洗币平台的方式和行为,可以获得资金的转移地址。
可能的链上行为
1. 资金从 Tornado.Cash 转出的时间范围与黑客将资金转入 Tornado.Cash 的时间范围近似(转出会延后于转入)。
2. 一定时间段内,从 Tornado.Cash 转出的资金会持续转出到相同地址。
验证
以黑客地址 (0x34a...c6b) 为例:
如表 2 结果所述,黑客在 2020-10-23 16:06:28 ~ 2020-10-26 10:32:24 (UTC) 间,以每次 100 ETH,存 115 次的方式将 11,500 ETH 存入 Tornado.Cash。为了方便说明,我们只截取了该地址在 2020-10-24 3:00:07~6:28:33 (UTC) 间的存款记录,如下图:
图 5
接着,我们查看_Tornado.Cash:100 ETH_合约的交易记录,找到地址 (0x34a...c6b) 在同一时间段(即 2020-10-24 3:00:07~6:28:33 (UTC))的存款记录,下图红框地址 (0x82e...398) 在此时间段内大量提款的异常行为引起了我们的注意。
图 6
查看该地址 (0x82e...398) 在此时间段的交易哈希,发现该地址并没有将 ETH 提款给自己,而是作为一个合约调用者,将 ETH 都提款到了地址 (0xa4a...22f)。
图 7
图 8
同样的方式,得出黑客地址 (0x34a...c6b) 经由 Tornado.Cash 提款分散到了其他地址,具体如下:
表 3
经过核对,发现从 Tornado.Cash 提款到表 3 中六个地址的数额竟与黑客存款数额 11,500 ETH 一致,这似乎验证了我们的猜想。对其他地址的分析方法同理。
接着,我们继续对这六个地址进行追踪分析。据 MistTrack 反洗钱追踪系统展示,黑客将部分资金以 50~53 ETH 不等转向了 ChangeNOW、CoinSwitch、Binance 等交易平台,另一部分资金进入第二层后也被黑客转入了上述交易平台,试图变现。
图 9
总结
本文主要说明了黑客是如何试图使用 Tornado.Cash 来清洗盗窃的 ETH,分析结果不由得让我们思考:Tornado.Cash 真的完全匿名吗?一方面,既然能分析出部分提款地址,说明不存在绝对的匿名;另一方面,匿名性是具备的,或许只是 Tornado.Cash 不适合在短时间内混合如此大规模的资金而已。
截止目前,KuCoin 官方表示已联合交易所、项目方、执法和安全机构追回约 2.4 亿美元资金。从各种攻击事件看来,DeFi 或许已成为黑客转移资金的通道,而今监管已至,合规化的脚步愈发逼近, 有合规需求的项目方,可以考虑接入慢雾 AML 系统(aml.slowmist.com),即使黑客使用了 DeFi,也无处遁形。