2022 年 8 月 8 日,Tornado.Cash 受到 OFAC(美国财政部海外资产控制办公室)制裁,部分与 Tornado Cash 协议相关的以太坊地址被列入 SDN List (美国特别制定国民名单)。
自 2019 年创建以来,Tornado Cash 的交易流量已经超过 70 亿美元的虚拟货币。那么为何这次美国会用那么大的力气制裁这一个 DEFI 项目,这个项目究竟做了些什么,美国政府为何会害怕,今天我们就来分析一下。
如果你不了解 Tornado.cash,说明你是一个品德端正的守法公民,因为 Tornado.cash 是一个数字货币的洗白白平台。
我们都知道区块链的一大特性是可追溯,也就是说只要在链上完成的交易都可以追根溯源。
因此,尽管钱包地址是匿名的,但钱包与钱包之间的交易却是完全透明的,对于权力机构而言,只要去将现实世界的人与钱包地址关联起来,就可以实现监管,这虽然有点麻烦,但是完全可行的。
**Tornado.cash 的用途就是为了破坏这一监管的思路,使得资金在区块链上的流动轨迹中断,从而使得监管失效。**而且这一切的实现全部通过技术手段来完成,权力机构们只能恨的牙痒痒,但却又毫无办法。
于是美国暴起了,既然解决不了问题,我就解决制造问题的人。不是民主么,自由么,在权力面前都是狗屁。
Tornado.cash 的技术理论还是比较难懂的,涉及到 hash 函数和零知识证明。这篇文章就不展开说说了,有兴趣的朋友可以阅读 Tornado.cash 的技术文章,了解实现细节。
Tornado.cash 还有 Relayer 的功能,用于解决手续费的问题,但因为是额外功能,我就不在本文中展开聊了。下面我会用通俗易懂的方式来帮助大家理解 Tornado.cash 的实现原理。
在 Tornado.cash 上有两个部分,分别是存款与取款。
在存款时,用户创建两个随机数,并生成一个 commitment,这个 commitment 相当于一把钥匙,只有创建它的用户才知道。
紧接着,用户将这个 commitment 和固定数额的数字货币发送给合约,合约验证之后接受了这笔钱。
存钱用户可以随时凭借那两个随机数证明这笔钱是我存的,然后将它取出。
Tornado.cash 的产品实现逻辑其实非常简单,也很好理解,却能够完美的实现洗白白的诉求。这里的核心点有三个:
取款人与存款人的关联完全打断
取款人不需要与存款的账户有任何的交互,而是通过两个随机数进行取款的。这保证了取款人和存款人在链上是没有任何关联记录的,也就防止了链上的追踪。
固定的数额
固定的数额的作用是让所有人存钱和取钱的金额完全一样,从而实现混淆。
假如用户存储的是 1.2345ETH,Tornado.cash 的作用就体现不出来了,因为只要找到谁取出来的是 1.2345ETH,就能认为他就是存 1.2345ETH 的那个人。但如果大家都是存 1ETH,10ETH 或者 100ETH,当存的人足够多的时候就分不清谁是谁了。
不确定的时间
在 Tornado.cash 存款之后可以在任意时间后取出,可以是几小时后,几天后甚至是几年以后。
如果权力机构在追踪一个黑客账户,发现该账户把钱转入了 Tornado.cash,想要知道钱被哪个账户取走是很难的,因为会有几百上千条的记录。即便是遍历了这些账户依然是没有用的,因为那笔钱可能还没有被取出来,还在合约里呢。
如果你看明白了上述的原理,就应该有一个清晰的认识,那就是:美国的制裁在短期之内确实会遏制数字货币洗白白业务的规模,但在长期上并没有太大用处。
因为只要有需求,就一定会有市场。
你可以封 Github,但代码早被保存下来了;你可以封官网,但真正有需要的人可以直接部署服务并使用;你可以把 Tornado.cash 的人都抓了,但会有新的一波人出现;现在的效果只是降低了交易量,使得混淆难度变大,但解决不了未来的问题。
Tornado.cash 事件,最近炒得沸沸扬扬,但是对于技术派和愿意深入思考问题的人来说,有了一个新的启发**:区块链是一场技术革命,历史的车轮会滚滚向前,并将守旧者碾碎。**
正如《三体》中著名的一句话那样 —— 毁灭你,与你何干。