Research thread on techniques for de-anonymizing Tornado Cash transactions through on-chain analysis.
Regulation & Gov ·
On-chain analysis researchers have documented techniques for identifying links between deposits and withdrawals in Tornado Cash despite its zero-knowledge cryptography, exploiting behavioral patterns and metadata rather than breaking the underlying cryptography. Tornado Cash pools accept fixed deposit amounts (0.1, 1, 10, or 100 ETH) that theoretically create large anonymity sets, but users' transaction histories, timing, and fees leave observable traces. Research on this topic shows that 20–35% or more of transactions have been successfully linked, representing billions in flows.
De-mixing relies on correlating observable signals: identical deposit-withdrawal amounts within narrow time windows, reuse of the same address across multiple pools, gas price patterns that deviate from block medians, exact matching of voucher counts, and withdrawal amounts slightly reduced by relayer fees (typically 0.90–0.995 times the deposit). Tools like tornado-demix, a Python CLI using Etherscan API data, scan for same-denomination deposits within a 24-hour window and match subsequent withdrawals with realistic fee deductions, supporting cross-wallet analysis and downstream clustering. Retrace aggregates withdrawal data from late December 2023 onward into a searchable interface to trace post-mixer flows. Researchers also employ graph analysis tools and manual verification to reduce false positives.
Results remain probabilistic and subject to limitations: large anonymity sets reduce confidence, rigorous operational security including address separation and timing discipline can defeat heuristics, and relayer use obscures direct links. Real-world successes have primarily involved users failing basic privacy practices such as address reuse or rapid withdrawals.