Hans-Helmut Kraus
Hans-Helmut Kraus
Ethereum smart contract auditor and security expert; 以太坊智能合约审计师与安全专家。
好的,我们来聊聊 Tornado Cash 这个在加密世界里大名鼎鼎又备受争议的东西。
Tornado Cash 是如何运作的?
你可以把它想象成一个“加密货币的超级保险箱池”。
传统的银行转账,比如你给我转100块,银行的账本上会清清楚楚地记着:“张三的账户 -100,李四的账户 +100”。在区块链上,比如以太坊,这个过程也是公开透明的,任何人都可以查到:“地址A 转了 1个ETH 到地址B”。你的所有交易记录都串在一起,有心人很容易分析出你的财务状况。
Tornado Cash 的目的就是为了切断这种关联,保护你的隐私。它的运作方式大致分为三步:
第一步:存入(Deposit)
- 你把你的加密货币(比如 1个 ETH)存入 Tornado Cash 的一个智能合约“资金池”里。
- 存入时,你会生成一个随机的、只有你自己知道的“秘密票据”(a secret note)。这个票据是未来取款的唯一凭证,非常重要,丢了钱就没了。
- 现在,你的 1个 ETH 和其他成百上千人存入的 ETH 混在了一起。在这个大池子里,谁也分不清哪个币是谁的。
第二步:等待(Wait)
- 这是很关键的一步。你存入后,最好等待一段时间。你等的时间越长,存入和取出的交易就越多,你的这笔钱就越像大海里的一滴水,更难被追踪。
第三步:取款(Withdraw)
-
当你想把钱取出来时,你需要使用一个全新的、和之前没有任何关系的以太坊地址。
-
然后,你向 Tornado Cash 的智能合约提交一个“零知识证明”(Zero-Knowledge Proof)。
- 这个“零知识证明”是整个魔法的核心。 你可以把它理解为:你向保险箱管理员证明“我的确有一张可以打开某个箱子的有效票据”,但你完全不需要把票据本身展示给他看。他只知道你的证明是有效的,却不知道这张票据对应的是哪一笔存入。
-
智能合约验证你的证明有效后,就会从资金池里转给你等额的加密货币(比如 1个 ETH)到你的新地址。
最终效果: 你的旧地址(存钱的地址)和你的新地址(取钱的地址)之间没有任何公开的联系。外界只看到“地址A”往池子里存了钱,一段时间后,“地址B”从池子里取了钱。但没人能证明 A 和 B 之间有任何关系。你的交易历史就被成功“洗牌”了。