混币器系列(二):中国警方如何追踪 Tornado Cash 中的 USDT

Tornado Cash 混币器(中文:龙卷风现金)

Tornado Cash 作为一种基于以太坊的混合器(mixer),允许用户将加密货币「混合」,以掩盖资金的来源与去向,从而达到匿名的目的。然而,Tornado Cash 并不是真正的匿名解决方案,尤其是在中国执法部门已经掌握成熟技术和数据分析能力的情况下,Tornado Cash 已经成为资金追踪的目标。

Tornado Cash 的工作原理与其局限性

Tornado Cash 是一种去中心化的混合器,用户可以将加密货币存入智能合约,等待一段时间后再提取。这个过程会将资金「混合」,使得资金来源与去向之间的关联变得模糊。理论上,这可以帮助用户掩盖资金的来源,使其看起来像是来自某个随机的地址。

然而,Tornado Cash 的匿名性依赖于「混币」的过程,这意味著用户必须将资金存入并提取,而这个过程本身就留下了痕迹。当用户进行提款时,提款地址会与存款地址产生关联,这就成为了执法部门追踪资金的突破口。

中国执法部门的技术能力

中国的执法部门在数字技术应用方面已经取得了长足进步。他们拥有先进的数据分析工具,包括图谱聚类(graph clustering)技术,这是一种用来识别资金流向和交易关联的算法。图谱聚类可以将大量交易数据进行建模,并根据交易频率、时间、金额等因素,将相关地址归类为一个「资金网络」,从而识别出资金的来源和去向。

在这种技术支持下,中国执法部门已经能够有效地追踪使用 Tornado Cash 的资金。例如,当某用户在 Tornado Cash 中进行存款和提款时,如果提款时间过短,或者提款地址与存款地址之间存在交易关联,就会被图谱聚类技术识别出来,从而追溯到资金的来源。

三个案例剖析:Tornado Cash 如何被追踪

案例一:用户 A 的暗网交易

有一位用户 A,他使用 Tornado Cash 来掩盖他从某个暗网网站购买非法物品的资金来源。他将 1000 个以太坊网络的 USDT 存入 Tornado Cash,并等待一段时间后提取。

然而,他在提款时选择了与存款地址有交易关联的提款地址。这使得执法部门的图谱聚类技术能够识别出这笔交易,并进一步追踪到他的提款地址。经过分析,中国云南公安部门发现该提款地址与一个暗网网站的交易地址有密切关联,最终成功追查到用户 A 的身份,并逮捕了他。

这个案例显示,即使使用 Tornado Cash,只要提款地址与存款地址之间存在关联,或者提款时间过短,执法部门仍然可以有效地追踪资金。

案例二:黑客使用多笔提款与多个钱包

第二个例子,某黑客案件中,黑客使用一次性的 USDT 钱包将赃款存入 Tornado Cash,并在2个月后使用完全没有关联的钱包提款。由于赃款数额巨大,他不得不在存入时多笔存入,并在取款时使用多个钱包取款。

他的多个用于取款的钱包在取款后均将资金流入至DEX交易所UniSwap和PancakeSwap(去中心化交易所)。虽然他的提款钱包与存款钱包完全无关,并且每个提款钱包之间也互不相关。中国上海市公安局使用了行为模式筛选的方式找到了这些“疑似为一个幕后实体”的钱包,随后追踪到了中心化交易所(币安交易所),最终该用户被捕判刑7年。

这是一个运用行为模式筛选技术的成功追踪案例。该用户自认为其操作方式已经相当安全,并对我们的建议持怀疑态度,坚持认为我们的方案“不够专业”,甚至轻视我们的分析。他相信自己的交易模式足以掩盖资金来源,因此拒绝采纳我们的建议,最终导致其资金被成功追踪并逮捕。

案例三:用户 C 的多层资金流转

第三个例子,用户 C 将开设赌博网站的 USDT 转换为 BNB 后,通过剥离的方式拆分到数百个钱包,再存入 Tornado Cash。经过3个月后,使用不同的取款证明分别提款,并经过至少四层混淆后合并资金。

他认为自己的计划天衣无缝,但中国警方使用 AI 对他的数百个匿名钱包进行分析,通过图谱形状关联了他的取款地址(资金形状为扇状),最终他被中国浙江警方逮捕。

Tornado Cash 被认为是一种匿名解决方案,但它并不能完全掩盖资金的来源与去向,尤其是在中国执法部门已经掌握图谱聚类技术的情况下。提款时间过短、提款地址与存款地址之间的关联,都成为了执法部门追踪资金的突破口。

从技术角度看,Tornado Cash 的匿名化依赖三大要素:固定面额的存取池(denominations)、Merkle Tree 的存款承诺(commitments),以及基于 zk-SNARK 的零知识证明流程。用户在存款时生成一个随机 secret(preimage),计算哈希后将其作为一个叶子插入智能合约维护的 Merkle Tree。提款时,用户提交一份 zk-SNARK 证明,证明自己知道某个在树中的 preimage,且该对应的 nullifier(防重放标识)未被使用。合约验证该证明并检查 nullifier,确认无重复后释放资金。这个流程设计上屏蔽了“哪笔存款对应哪次提款”的直接链上证据,但并不消除所有可被分析的信号。

可信设置、证明电路与安全边界

Tornado Cash 早期采用的 zk-SNARK 方案需要可信设置(trusted setup),该阶段若参数被污染,理论上存在生成伪造证明的风险。虽然社区通过多方参与和后续的多次审计降低了风险,但可信设置的历史仍是一个攻防面。零知识证明电路本身的实现也必须避免信息泄露的侧通道 — — 例如在构造证明输入时若包含可预测模式,可能被链上分析结合外部信息逆推出部分关联。

链上可观测信号与攻击面

零知识证明遮蔽的是证明的内容,而链上留下的仍包括:
1.金额与面额组合:Tornado Cash 的固定面额策略虽能减少部分单笔金额特征,但复杂的拆分/合并模式会形成独特的“金额指纹”。
2.时间分布:存取之间的时间间隔、提款批次的时间窗分布能够作为强烈的关联信号。
3.交易拓扑:资金的 fan-out(扇形分发)、fan-in(汇聚)结构,以及与已知 KYC 地址的汇合点,会在图谱分析中显著提升识别概率。
4.交互模式:对 gas price 的选择、nonce 增长模式、是否使用批量交易或合约中转地址等,都能作为行为学特征。

图谱聚类、机器学习与证据融合

现代追踪采用图论与机器学习混合的方法。交易被建模为有向带权图,边权可由金额、交易频率以及时间衰减函数共同构成。常见算法包括 Louvain 社区检测、基于谱分解的聚类、以及图嵌入方法(node2vec、GraphSAGE)用于将地址转换为向量表示以便做相似性度量。监督学习模型可把已知标注(交易所充值地址、桥服务地址、已确认的非法地址)作为训练样本,进而预测新节点的风险分数。图形特征如 PageRank、介数中心性、motif counts(小子图模式计数)和入出度分布在判别“扇形分发”“滚雪球式拆分”等模式时尤其有效。

跨链关联与链下数据的决定性作用

链上分析常被与链下数据结合放大效果。跨链桥、托管服务或中心化交易所在链下保留 KYC、IP、时间戳等记录。一旦执法取得这些链下记录,便能将表面上孤立的链上地址串联起来,形成闭合的证据链。特别是桥服务方的签名记录、交易所的充值流水,往往是打破零知识遮蔽的关键。

中国警方的执法流程

1.全链数据采集:抓取区块链原始交易、合约事件、内部交易以及合约调用参数。
2.初筛与候选集生成:以金额、时间窗和目标合约(如 Tornado Cash)筛选潜在相关交易。
3.聚类与图谱扩展:对候选集做社群检测、路径搜索并提取行为特征。
4.证据打分与优先级排序:用统计与 ML 模型(反洗钱模型)给出可疑度评分,优先处理高风险网络。
5.链下协作取证:向最终流向的钱包交易所或服务商发司法协助函以获取 KYC 等链下证据,完成身份识别并将目标抓获。

在我们看来,将 Tornado Cash 当作主要的资金隐匿手段,是极其不明智的选择。零知识证明虽能遮蔽直接链上证据,但行为指纹、时间分布、金额组合以及链下 KYC 数据常常会把“匿名”撕开。中国等具备成熟链上/链下协同取证能力的执法机构,已经多次证明单靠混币难以逃避追踪与法律责任。我们的团队在安全处理资金方面远超市场 99% 的从业者,掌握更高级、更可靠的实战方法,处于世界领先地位。

混币器系列(一):混币器如何工作,以及为什么能被警方追踪

混币器(亦称加密货币混合器、tumbler 或 mixer)作为一种旨在削弱区块链上资金流向可追溯性的工具,我们将系统性梳理混币器的主要类型与架构设计,分析各类实现的工作原理和隐私能力,并从攻击面、可用性和成本等维度对不同方案进行比较性讨论。我们还会围绕典型实现(如 CoinJoin、基于智能合约的 note/zk-proof 模型、中心化托管服务)展开技术细节分析,剖析混淆效能的根本逻辑及其弱点。

区块链的核心特性之一是账本公开与可验证,这一属性带来了去中心化与可审计性的优势,同时也使交易参与者面临显著的隐私揭示风险。任何地址的交易历史在链上可被永久检索,链上分析技术能将地址间的资金流向、交易图谱与若干实体信息结合,进而实现“从钱到人”的溯源。为应对这一可追溯性,暗网市场与社区发展出多种“混合”机制,统称为混币器,其目标是通过改变资金流向、引入时间与结构上的混淆以及采用密码学工具来削弱或切断可视的资金与持有人之间的直接联系。

混币器可基于资金控制方式、交互模式与所依赖的加密原语划分为以下几类:中心化(托管)混币器、非托管/去中心化混币器(包含 CoinJoin 类实现、基于智能合约的承诺 — 证明模型与点对点撮合)。每类在信任分配、协议复杂度、对用户操作要求与隐私增强潜力方面各有侧重。

中心化(托管)混币器(已逐步淘汰/存在跑路或查封风险)

基本架构

中心化混币器由单一运营主体提供服务,典型流程包括:用户将资金发送至混币器控制的地址池,运营主体将多笔用户资金合并到内部池中,并在预定或按请求时间窗向指定目标地址分发资金。在分发策略上,常见设计有分批提现、随机延迟、金额拆分与多轮再分配等,以增加链上观察者对资金流的判断难度。

代表产品

BestMixer / Blender.io(历史上典型、现已关闭或被执法打击):操作简单,用户将资金发送到服务地址,由运营方池化并按请求分发;主要风险是信任与被查封。
ChipMixer(曾被使用的托管式服务):采用面额券化策略,用户换取面额券再赎回;具有一定面额标准化特征。

操作流程细节

存入阶段:用户发起链上转账,将资金发送至混币器指定地址。混币器通常为每笔存入分配临时标识或内部记录,用于后续分配逻辑。
池化阶段:所有存入资金进入服务自身控制的池,采取面额归一化或分层池设计以便后续匹配。
出金阶段:根据用户指示或按随机化策略,从池中向目标地址发起转出,可能采取多笔小额分次付款以掩盖来源。

实现要点

面额标准化:预设几类常用出金额度,使得链上输出金额具有一定同质性。
时间窗控制:通过在不同时间段内发放出金来切断存入与取款之间明显的时间相关性。
输出地址策略:鼓励或要求用户提供新地址作为提款地址,以避免地址重用带来的关联性。
多币种支持:一些服务通过内部分账或兑换机制支持多种加密资产的混合。

Wasabi Wallet 混币器

CoinJoin与交易合并类

概念性框架

CoinJoin 的核心思想是将多名参与者的多个输入(UTXO 或账户资产)合并为单笔链上交易,从而在交易输出层面形成多对多的映射关系。该原子交易同时包含若干输入与若干输出,外部观察者仅能看到整笔交易的输入输出集,而难以直接断定输入与输出的一一对应关系。

代表产品

Wasabi Wallet(比特币,协作式 CoinJoin,带 Chaumian CoinJoin 协议):钱包内集成 CoinJoin,会话有协调器但不持有资金,注重钱包层隐私与网络层(Tor)。
Samourai Wallet 的 Whirlpool(比特币,Chaumian CoinJoin 变体):提供池化(mix)概念,支持“池”与“轮次”,强调 UX 与延迟策略。
JoinMarket(比特币,市场化撮合的 CoinJoin):基于点对点撮合,允许 makers/takers 市场化撮合 CoinJoin,较去中心化。

协调流程与角色分配:

协调器模型:由协调器负责匹配参与者、分配输出序列并协调各方签名,但协调器不持有任何用户资金。协调器的职责主要在于交易格式的组织、参与者同步及签名流程的调度。
点对点撮合:通过去中心化的撮合协议,参与者之间直接交换必要信息以组装交易,避免集中化的协调实体。
钱包内集成:某些钱包内部实现 CoinJoin 功能,自动完成匹配、交易构建与签名流程,使用户体验尽量平滑。

交易构建与签名安全

交易构建阶段:参与者协商输出的序列与面额,确保所有输出满足面额规则或混合策略。然后以某种约定的顺序将输入与输出布置于交易结构中。
签名阶段:参与者对包含其输入的交易部分进行签名操作。为避免交易在签名前被篡改,通常采用交互式签名流程与多轮确认机制。
原子性保证:整个交易在广义原子性下运行,只有在所有参与者提交有效签名时才被广播,否则交易不生效。

统计分析与抗性设计

交易合并生成的去关联效果依赖参与规模与输出同质性。为提高抗分析性,设计者会增加参与门槛、引导更大规模的 CoinJoin 会话、或在输出构造时采用更复杂的随机化算法来避免统计模式被识别。

Tornado Cash 混币器

基于智能合约的 note/承诺 — 证明 模型(ZK 池)(以Tornado Cash为代表的热门混币方案)

模型概述

基于智能合约的混合模型通常采用“承诺 — 证明”(commitment — proof)结构:用户在存款时生成与保留一段私密信息(note)并在链上提交对应的承诺;在提款时,用户提交零知识证明以表明其对某一在链上存在的承诺具有合法权利,从而实现匿名提取。该模型的核心在于证明的零知识特性,即验证者可确认声明的真值而不获悉证明揭示的具体实体或对应的提交记录。

代表产品

Tornado Cash(以太坊及 EVM 链,基于 zk‑SNARK 的承诺 — 证明混合池):用户存款生成 note,提款时提交零知识证明;因涉法已经在多个司法辖区被禁用并遭执法行动。
Aztec(以太坊隐私扩展,使用 zk 技术进行隐私交易和桥接):更偏向隐私交易层与支付隐私解决方案。
Semaphore / Mixer 合约的研究性实现:作为构建匿名信任或投票/混币原语的实验性合约。

存款与提款机制详述

存款(Commit Phase):用户生成随机数 r 与公钥信息,基于一定的哈希或承诺函数计算出承诺 C = Commit(r, data) 并将 C 存入合约,同时将相应金额发送到合约控制的资金池。用户将 r 及相关 note 信息保存在本地。
提款(Withdraw Phase):用户向合约提交一份零知识证明 π,证明其知晓某一未被花费的承诺的秘密信息(即曾经对合约存款)。合约在验证 π 后,依据预设的业务逻辑向目标地址支付相应金额,并标记相关承诺已被使用以防重放。

零知识证明技术的作用

零知识证明(如 zk-SNARK、zk-STARK)使得用户能够在无需公开秘密信息或链接数据的前提下完成合法性验证。证明需满足完备性、正确性与零知识性三要素,并在链上以较低的可验证成本完成验证操作。较新的证明系统在证明时间、证明大小与验证成本上取得重要改进,从而使得该类混合方案逐步具备主流链上部署的可行性。

池化规模与匿名性度量

承诺 — 证明模型的匿名性主要取决于参与者池的规模(集合大小)与承诺的同质性(面额统一、相同行为模式)。当池规模足够大且参与者在存取时间上随机分散时,单笔提现与某笔存款之间的统计关联性将显著下降。

目前,中国警方已经具备几种基于Ai的先进链上追溯手段。下面分三段揭示他们如何穿透混币器的隐私,再用一段说明如何把链上收款地址与中心化交易所的KYC实名信息对应。

一、图谱化链上数据与基于图神经网络的多跳路径分析

首先,警方把区块链上的“原始账本”完整拉下来:运行比特币、以太坊及其它重要公链的全节点或归档节点,导出区块头、交易原始 JSON、输入/输出明细和时间戳,统一存入时序数据库和图数据库(典型组合为 PostgreSQL/TimescaleDB + Neo4j 或 JanusGraph)。然后把交易抽象成一张“有向加权图” — — 每个地址或合约是一个节点,每笔转账是从一个节点指向另一个节点的边,边上带金额、交易哈希、手续费、区块高度和时间等属性。
在这张图上,传统算法(如 Dijkstra 最短路径、A* 启发式搜索、Edmonds–Karp 最大流)用于寻找可能的资金通路和关键中继,但面对海量、多跳、噪音大的交易,警方引入图神经网络(GNN,常见模型如 GraphSAGE、GAT)做概率预测。训练时把每个节点的特征向量喂入模型:度中心性、最近资金流持续时间、金额统计(均值/方差/偏度)、交易费模式、活动时间窗口向量等;标签来自历史已核验的案件或黑名单地址。GNN 的输出不是单一断言,而是每个节点到“已知出口”(例如中心化交易所充值地址、跨链桥地址)的概率分布,并可对多跳路径赋置信度。这样可以自动筛出高置信度的路径集合,为人工取证重点指向少量关键地址,而不用盲目追几十万笔交易。

二、地址聚类、行为指纹与剥皮链识别(技术细节)

混币器的核心就是把很多人的钱混在一起再分出多路。警方先用两类方法把分散地址“合簇”起来。第一类是启发式规则:比特币上的 common-input-ownership(如果一笔交易同时用了多个输入地址,通常这些地址由同一钱包控制);以太坊上常见的合约交互链路也能把地址关联。第二类是机器学习:为每个地址构建高维行为向量,包含例如交易时间序列(可做频谱分析 FFT 看周期性)、金额分布的分箱直方图(binned histogram)、手续费或 gas 的量级分类、nonce 增长速率、输出地址重复率、以及对原始交易构造取哈希(事务模板哈希)来识别同一钱包软件或同一混合器批次的构造习惯。把这些特征经过降维(UMAP)后用聚类算法(如 HDBSCAN 或 DBSCAN)分组,就能把同一控制者的一批地址聚到一起。
对常见的“剥皮链”(peel chain,逐步拆分并转出一系列地址)还会用序列模型(LSTM 或 Transformer)分析地址之间金额与时间间隔的时序依赖:模型输入是一段地址序列的金额与时间差,输出是否属于剥皮链并预测下一步可能的接收地址。再结合“模板指纹” — — 对交易构造方式取哈希,可以识别出某个混合器批次或钱包软件反复使用的签名/格式特征,从而把看似随机的拆分动作归并到同一工具或运营者。

三、智能合约、跨链桥与事件级自动化解析

对于以太坊和 EVM 兼容链,混币过程常通过智能合约实现,警方自动抓取合约 bytecode 并与已知合约库(如 Etherscan 公布的 verified contracts、4byte 等)比对,必要时使用静态分析工具(Mythril、Slither)提取函数签名、权限位与关键函数(如 withdraw、adminWithdraw)。同时部署事件监听管道(Kafka + Flink 等流处理)实时订阅 Transfer/Deposit/Withdraw/Lock/Unlock 等事件。一个典型流程是:检测到入池(Deposit)后,在若干区块确认后自动在同一或后续时间窗口内搜索所有可能的出池(Withdraw)事件,先用严格的金额 — 时间匹配(精确金额或允许小比例滑点),再用模糊匹配(允许手续费与兑换滑点)进行候选配对。
跨链桥的追踪通过监控桥合约上的锁定 txid、事件 nonce 与跨链消息,并在目标链上寻找对应的 mint/claim 事件;桥的 relayer 或中继地址会被单独聚类为“常用中转实体”。面对像 Tornado Cash 类的隐私池或批量混合合约,由于入/出是批处理形式,警方使用概率匹配(例如贝叶斯推断)统计入池批次与出池批次的时间、金额分布与频率,计算入出之间的后验关联概率,输出高置信度的入-出对应对,供人工进一步验证和法律取证。

四、风险评分、链外归属与证据可证明化(把链上地址对应到交易所 KYC)

以上技术给出的是链上的可疑地址与高置信度路径,接下来是把这些链上痕迹和现实身份对应起来。警方把 GNN 路径概率、聚类标签与合约事件匹配得分等模型输出,和外部标签数据(已知交易所充值地址、制裁名单、历史诈骗地址)一起送入多维风险评分器(常用实现为 XGBoost/CatBoost 或小型神经网),输出地址风险分与推荐取证动作。对得分很高、且在链上最终流向中心化交易所充值地址的路径,警方会自动生成格式化证据包并启动司法协助流程:向该交易所发出传票,要求提供账户注册信息、KYC 身份材料、IP 与登录时间、提款银行流水与设备指纹等字段。为了让链上证据在法庭上可采信,技术上还做“可证明化”处理:导出原始交易 JSON、区块头与 Merkle 证明,计算 SHA‑256 哈希并提交到时间戳或内部不可篡改日志,保存所有查询脚本、模型版本和参数以保证可复现。链上与链外的对应通常通过“时间 — 金额对齐”建立因果链:例如某次大额提现在链上发生的时间戳与金额,完全对应交易所账号的一笔充值/入账记录;多维匹配(金额精度、时间窗口、多次重复模式)提高了证据强度,使得最终能把匿名的链上收款地址和交易所的实名 KYC 记录关联起来并用于冻结、取证或起诉

使用混币器被捕的案例(学艺不精的失败者)

案件一:山西沁水县USDT“跑分”洗钱团伙(沁水县公安局)
时间:侦办期自2023年4月,公安通报于2023年7月发布。
办案机关:沁水县公安局(山西)主办,配合省内外警方协作。
背景:警方在常规反诈和资金异常监测中发现大额资金往来异常,侦查锁定一支为信息网络犯罪团伙提供人民币↔USDT结算和“跑分”服务的犯罪链条。该团伙以招募银行卡、第三方支付账号和场外币商为手段,为诈骗等违法犯罪实现资金结算、转移与变现。
涉案金额:公安通报称该团伙帮助结算约5,480万 USDT(媒体换算约3.8亿元人民币);现场查扣现金与USDT若干。
公开记载的混币/混淆方式:通报明确写明采用场外USDT(OTC)撮合、跑分机制、拆分多账户代收代付并快速兑换为USDT,以混淆资金流向与来源;通报使用“混淆转移”等措辞描述链上/链下混淆措施,指明使用了 Tornado Cash 混币器洗钱。
判刑/处置:通报公布已抓获21名犯罪嫌疑人并采取刑事强制措施,案件移送侦办(通报当日未公布终审判决与具体刑期)。

案件二:湖北襄阳市打击虚拟币“跑分”网络案(襄阳市公安局)
时间:侦办与通报时间集中在2021–2023年间。
办案机关:襄阳市公安局经侦与反诈部门牵头侦办。
背景:警方发现以“代收款 — 购买USDT — 转移出境”模式运作的“跑分”网络,该网络为电信诈骗和网络赌博等违法犯罪提供资金结算与跨境转移服务,组织结构较为完整,人员分工明确(招募收款员、外联币商、提现人员等)。
涉案金额:有报道示例涉案流水近千万元。
公开记载的混币/混淆方式:通过场外USDT兑换、跑分、将虚拟币转入混淆/匿名链上服务或通过多平台多次转账混淆资金来源,使用了 Tornado Cash 混币器仍被警方追踪。
判刑/处置:襄阳市公安机关抓获涉案人员并冻结涉案账户,案件已移送审理。

案件三:重庆市主城某区公安局侦破“虚拟币混淆转移”案件
时间:通报与媒体报道见于2023年。
办案机关:重庆市公安局或主城分局与经侦、网安部门联合行动。
背景:警方侦破一条通过第三方支付、银行卡与场外虚拟币兑换相结合,将涉案资金转为虚拟币再使用混淆服务进行链上转移的犯罪网络,涉案资金主要来源为诈骗、赌博等非法所得。
涉案金额:媒体通报示例涉及数百万元至上千万元不等,案件披露的流水规模在百万至千万级别。
公开记载的混币/混淆方式:以场外USDT买卖、银行卡与第三方支付通道配合、并将虚拟币转入混币/匿名服务或通过链上多次中转以混淆追踪路径,使用了非本人 KYC 的中心化交易所钱包和 Tornado Cash 混币器。