================================================
区块链世界一向以资金透明度、账本公开度著称,然而人们对隐私的诉求是无处不在的,即便是在被认为“最透明”的地方。
资金流混淆器已经成为了区块链世界中的重要应用,在比特币世界中,有 Wasabi、Samourai 等比特币混币器,而在以太坊生态中,基于 ZKP 零知识证明的混币器最为流行,早在以太坊刚成立的时候,就已经有研究人员尝试进行 ZKP 的混币研究,而 TornadoCash 无疑是当下做的最出色的以太坊混币器。
理解本文的前提是需要对 TornadoCash 有过一定程度的了解(注意:本篇所说的 TornadoCash 指的是 V1 版本,不是 nova 版本)。
对于不熟悉或者没有使用过 TornadoCash 的同学强烈建议先行阅读:
二、 总体架构
TornadoCash 整体架构如下,组成该应用的角色有以下几个:
用户:使用该应用进行混币的发起人,可以在池子中存款、取款
dApp:可以理解为 TornadoCash 的前端 dApp 页面,提供连接钱包、生成 zk 证明、与 relayer 或者直接与 Pool 合约交互
relayer:用于进一步增强隐私性,代替用户重放交易的服务器
TornadoPool:部署在以太坊上的智能合约,提供链上混币的功能