关于 Tornado Cash 事件的思考

 

最近美国财政部海外资产控制办公室(OFAC)宣布制裁Tornado Cash及其相关的地址。实际上,这并不是OFAC第一次宣布制裁某些加密货币的地址了。本次不同点在于这是第一次对链上的合约本身进行制裁。由此带来的后续效应是闻所未闻的,首先Circle冻结了Tornado Cash的USDC,紧接着Tornado Cash的Github仓库被移除,其项目的几个核心开发人员的Github账户被注销。甚至传出了项目的某位开发人员在荷兰被捕。同时,AAVE在前端网站禁止了一些与Tornado Cash有交易的相关账户的使用,以及后续 Tornado Cash 投毒事件,导致几个实名大户被禁止使用AAVE的前端网站上的服务。

我们可以从本次风波中总结出以下的事实:

  1. 美国政府可以随时制裁任何一个链上的合约及其相关的实体。
  2. 项目方可以停止提供合约的前端服务,但是无法停止合约本身。
  3. 项目方可以通过合约中的黑名单功能来冻结用户在合约中的资产或禁止某些地址使用合约中的服务。

有关本次事件的讨论还在推特上发酵。不少乐观主义者认为事实2正好反映了ETH生态的去中心化和稳健性。目前,已经有一些的开发者将龙卷风协议的前端部署到了IPFS上来继续提供服务。但是我们认为本次事件的带给了Crypto带了的影响是深远的。社区过于乐观而忽视了整个Crypto生态中脆弱的Infra本质。

我们知道,使用合约首先构造Transaction,并将Transaction广播给Miner/Validator节点,最终由Miner/Validator节点打包到Block并更新到Blockchain中。在这个过程中至少需要:

  1. 本地的签名器根据用户的私钥签名Transaction。
  2. 节点在网络中广播Transaction。
  3. Miner/Validator节点打包Transaction。

这个三个链上的执行流程是与项目方提不提供Web前端无关的。因此,在理论即使项目方不提供或暂停提供Web前端服务,用户还是可以使用链上的合约。目前最常见的链上工作流是:

  1. 用户通过Metamask执行了签名交易。
  2. Metamask将交易发送给了Infura的节点服务,Infura的节点再将交易广播给网络中的其他的节点。
  3. 矿池节点在接收到交易后将其打包到Block中。

但是,Infura的母公司ConsenSys是一家美国公司。出于合规的考虑,他们完全可以在步骤2中限制转发与Tornado Cash合约交互的Transaction。同时,在Ethereum转向PoS之后,出于合规的考虑PoS Proposer也可以在步骤3选择不打包与Tornado Cash相关的Transaction。假如这两者都会发生,那么我们将不得不考虑”Ethereum的Layer 2的扩容方案的可用性的问题”。目前,L1与L2都是通过L1上的一个智能合约 (Bridge)来交互的。假如有人恶意的给这些L1-L2 Bridge合约转入Tornado Cash,导致Bridge的地址被制裁的话,会不会导致整个L2陷入失效中呢(节点拒绝转发该L2 Bridge合约的交易)?

本次事件带给了社区新的思考。目前的数字世界服务的供应越来越中心化。十年前用户使用软件/互联网服务的主流方式是,从分散的下载站点或者软件的官方网站下载软件到本地安装。现在,用户可以直接使用项目/产品提供的web服务,或者通过大型公司维护的应用市场下载移动App在移动端使用。这种演化的发生是综合了多种因素自然选择的结果。从用户的角度来看,使用大型平台提供的渠道,保证了软件的安全性(早年从下载站下载的软件经常会捆绑其他的软件甚至包含了恶意软件)。从服务提供商的角度来看,这种方式有利于软件/服务的分发和管理。听上去这种演化带来了双赢的结果。但是,代价是什么呢?这种方式暴漏了一个很严重的缺口给监管方。如果监管有合规的要求,这些大型公司会毫不留情的下架项目。我们已经在华为,和滴滴等公司身上看到了现实的例子。本次的龙卷风协议被美国财政部制裁事件,也将这个事实带入了Web3/Crypto的领域。事实上在本次风波之后,整个DeFi生态已经处在了美国政府的监管阴影之下了。或许对于Web3来说,早年那种用户自己下载软件运行的模式更加的适合以及抗监管呢?

当我们谈论Crypto/Web3的未来的时候,还需要更多的思考构建如何构建更稳健,更松散的Web3 Infra,而不是把未来都建立在活在监管阴影下的大公司们的手中。