前 言
Tornado.Cash 作为以太坊网络上最火的去中心化隐私解决方案,打破了存款人和取款人地址之间的链上链接,做到了交易机密性,保护了用户隐私。
越来越多有隐(洗)私(钱)需求的用户开始使用 Tornado.Cash,那 Tornado.Cash 真正的隐私性到底如何,能做到百分百的安全吗?
知道创宇区块链安全实验室 将对 Tornado.Cash 进行多维度分析,探索 Tornado.Cash 真正的隐私可靠性。
Tornado.Cash 工作原理
在分析 Tornado.Cash 之前,我们必须知道 Tornado.Cash 的工作原理。
Tornado.Cash使用智能合约(匿名池),接收来自一个地址的代币存款,并允许他们从不同的地址提款,并且通过零知识证明阻断了存款地址和提款地址之间的联系,让隐私性得到了保护。
其中,匿名池的大小直接决定了 Tornado.Cash 隐私可靠性的高低,想想如果只有一笔存款进入匿名池,那不管从哪个地址提款,肯定和存款地址是同一个人。
感兴趣的读者可以阅读官方文档:how-does-tornado.cash-work。
前期准备
Tornado.Cash 目前支持 ETH 及 ERC20 代币(DAI,cDAI,USDC,USDT,WBTC)存、提款交易,我们选取了其中交易量最大的 ETH 进行隐私性分析,提取了 2021-11-04 日之前,所有 Tornado.Cash 合约的交易记录,数据如下表所示:
可以看到,在启用代理合约后,大量交易都是通过代理进行,通过匿名池交易量占比图(下表)可知,1 ETH 匿名池(33%)和 10 ETH 匿名池(30%)是使用最多的匿名池。
交易分析
交易分类
对所有交易进行存款、提款归类后,统计了每个地址存/提款总额(单位 ETH) 、次数、最大存/提款金额、最小存/提款金额统计。得到了 22714 个存款地址,31737 个提款地址,其中存/提款总额 Top 10 数据如下:
存钱总额 Top 10:
提款地址总额 Top 10: