Bitcoin Privacy

Bitcoin Taint Analysis: Surveillance Guide

A hand lifts an orange paper band from one of three identical unmarked ivory wooden blocks.

Blockchain surveillance companies sell governments, financial institutions and exchanges a score for how “tainted” a bitcoin is, based on where it has been. This guide explains how that tracking works, why Bitcoin’s UTXO model turns the idea of a “tainted coin” into a choice of rule rather than a fact, and what you can do to keep your own coins from being tied to your identity.

Bitcoin’s blockchain is a permanent public record of every transaction. That openness lets anyone verify the rules, and it also lets analysts follow coins from one transaction to the next, which is why privacy on Bitcoin takes deliberate steps.

A taint score treats some bitcoin as worth less than others because of where they have been. That works against fungibility, the property that makes every unit of a money interchangeable with any other unit of the same value.

Inside a transaction, bitcoin has no serial numbers. A transaction spends whole earlier outputs, called UTXOs (unspent transaction outputs), and creates new ones. When a flagged coin and an unflagged coin are spent together, the blockchain does not say which part of each new output came from which input, so an analyst has to pick a rule for passing the taint along. Research on taint analysis describes three common rules, and the same transaction gets a different answer from each.

One transaction spends two inputs, a flagged 1 BTC coin listed first and an unflagged 3 BTC coin listed second, and creates a 3 BTC payment as the first output and a 1 BTC change output as the second. Under the Poison rule both outputs count as fully tainted, 4 BTC in total. Under Haircut each output carries 1 BTC of taint in every 4: 0.75 BTC and 0.25 BTC, 1 BTC in total. Under FIFO the first input fills the first output first, so 1 BTC of the payment is tainted and the change is clean, 1 BTC in total. The blockchain records none of these answers; the analyst picks the rule, and FIFO also changes if the inputs are listed in another order.
A “tainted coin” is a rule, not a fact. Research on taint analysis describes three common rules: Poison, Haircut and FIFO. Applied to the same transaction, they count 4 BTC as tainted, or 1 BTC spread across both outputs, or 1 BTC inside the payment. The blockchain records none of these answers.

Privacy-enhancing technologies have evolved as a direct response to increasing surveillance pressures. Tools like CoinJoin and PayJoin provide users with mechanisms to maintain financial privacy by breaking the links that analysts draw between transactions. These tools serve a legitimate purpose in protecting user privacy and maintaining the fungibility of bitcoin as a monetary asset.

The legal and regulatory landscape surrounding bitcoin transaction privacy continues to evolve, with different jurisdictions taking varying approaches. Some regions have implemented protective measures to ensure the fungibility of digital assets, while others have imposed strict surveillance requirements. This regulatory divergence creates challenges for users and businesses operating in the cryptocurrency space.

The concept of super-negotiability, borrowed from traditional financial law, offers an interesting framework for addressing the challenges of transaction taint. This legal principle, which protects innocent receivers of potentially problematic assets, could provide a model for protecting bitcoin users from overzealous surveillance efforts while maintaining appropriate anti-crime measures.

Looking forward, the resolution of these privacy and surveillance challenges will likely come through a combination of technical innovation and regulatory evolution. Privacy-enhancing technologies will continue to advance, while legal frameworks will need to adapt to protect individual rights while addressing legitimate law enforcement concerns.

The future of Bitcoin privacy may ultimately depend on finding the right balance between transparency and privacy, surveillance and freedom. As the technology and regulatory landscape continue to evolve, the community must work to preserve Bitcoin’s core values while adapting to the realities of a regulated financial system.

The implications of these developments extend far beyond simple transaction privacy. They touch on fundamental questions about financial freedom, government surveillance, and the nature of money itself. As Bitcoin continues to mature, these questions will become increasingly important for users, developers, and policymakers alike.

Step-by-Step Guide

Understanding taint analysis and protecting your transaction privacy requires concrete actions. The following steps explain how to assess your own exposure to chain surveillance and take practical measures to improve your on-chain privacy posture.

Step 1: Audit Your UTXO History. Open your wallet in Sparrow Wallet and navigate to the UTXOs tab. For each unspent output, review the transaction history by clicking through the transaction graph. Identify which UTXOs originated from KYC exchanges (where your identity is attached), which came from peer-to-peer purchases, and which are change outputs from your own transactions. This audit gives you a clear picture of your current privacy exposure.

Step 2: Label Every UTXO and Address. Assign descriptive labels to each UTXO — for example, “Coinbase withdrawal Jan 2025” or “Bisq trade #4421.” Labeling is critical because it prevents you from accidentally combining KYC and non-KYC coins in a future transaction. Sparrow, Electrum, and Wasabi all support UTXO labeling. Treat unlabeled UTXOs as potentially compromised until you can trace their origin.

Step 3: Separate Coin Pools Using Wallet Accounts. Create separate wallet accounts or entirely separate wallets for different privacy levels. One wallet holds KYC-sourced bitcoin where your identity is already known. Another holds non-KYC bitcoin acquired through peer-to-peer methods. Never combine inputs from these two pools in a single transaction — doing so links the non-KYC coins to your verified identity through common-input-ownership heuristics used by surveillance firms.

Step 4: Use CoinJoin to Break Transaction Links. For UTXOs that carry taint from KYC sources, run them through a CoinJoin implementation that still operates. The landscape shifted in 2024 and again in 2026: Samourai Wallet and its Whirlpool coordinator were seized by the DOJ/FBI in April 2024 and no longer operate, Sparrow removed its Whirlpool integration in v1.9.0, and the original JoinMarket software was archived in April 2026, with its maintainers warning not to use it. As of November 2026 the working options are Wasabi with an independent coordinator you choose, Ginger Wallet, Ashigaru’s relaunched Whirlpool, and JoinMarket NG, an independent reimplementation of the JoinMarket protocol that joins the same market of makers and takers, with no central coordinator; our CoinJoin lesson compares them. A CoinJoin transaction combines inputs from multiple participants into a single transaction in which many outputs have identical amounts, so an observer cannot tell which input funded which of the outputs that share an amount, though any change output stays linked to the coin it came from. Remixing (sending a coin through further rounds) helps, but no round count guarantees privacy: what you do with the coin afterwards matters as much, and the exchange still knows it sold you the original coins. PayJoin (Step 5) is a lighter step for ordinary payments: it breaks the common-input-ownership heuristic, the assumption that all of a transaction’s inputs belong to one person, but it does not cut your trail the way a CoinJoin does.

Step 5: Implement PayJoin for Spending. When making a payment to a merchant or service that supports PayJoin (BIP 78), use this protocol instead of a standard transaction. PayJoin transactions look like ordinary payments on-chain, but both sender and receiver contribute inputs, which breaks the common-input-ownership heuristic that surveillance firms rely on. This technique improves privacy for both parties without requiring a separate mixing step.

Left, CoinJoin: you, person B and person C each put in a 0.1 coin; one transaction creates three equal 0.1 outputs. An observer cannot tell which output is yours, though anyone can see the transaction was a CoinJoin; it cuts the trail from inputs to outputs. Right, PayJoin (BIP 78): you put in a 0.1 coin and the shop you are paying puts in a 0.05 coin of its own. The transaction looks like an ordinary payment of 0.02 from you to the shop and creates 0.07 for the shop (its 0.05 plus your 0.02) and 0.08 of change for you. Both of an analyst's usual guesses are wrong: the two inputs do not have one owner, and neither output is the 0.02 paid. PayJoin blurs the trail but does not cut it. With a CoinJoin, what you do with your coin afterwards still matters. Fees are left out.
CoinJoin cuts the trail; PayJoin blurs it. In a CoinJoin several people’s coins become equal outputs, so no output points back to one input. In a PayJoin the shop adds a coin of its own, so the “one owner” guess fails and neither output shows the 0.02 BTC paid. Transaction fees are left out.

Step 6: Route All Wallet Traffic Through Tor. Configure your wallet software to connect to your own node over Tor. In Sparrow, enter your node’s .onion address as the server URL under Settings → Server; Sparrow then starts its own Tor and uses it for its other external connections too. The Use Proxy switch there only points Sparrow at a Tor proxy you already run, such as Tor Browser on port 9150, and a Bitcoin Core connection uses it only for a .onion URL. Your ISP then sees that you use Tor but not that you are talking to a Bitcoin node, although someone watching both ends of a connection can still match the traffic. If you use a block explorer for manual lookups, access it only through the Tor Browser.

Step 7: Verify Your Privacy Score. After taking the above steps, check how your mixed coins look to an outsider. If you use Wasabi, it shows each coin’s anonymity score: a deliberately cautious estimate of how many coins yours could be. The Boltzmann tool, which measured a transaction’s entropy (how many ways its inputs and outputs could be matched), was maintained on Samourai’s servers, and that home is gone; do not download old Samourai software to get it. Treat any score as an estimate: it cannot tell whether the other participants were real people, and it cannot see how you will spend the coin.

Common Mistakes to Avoid

Chain surveillance companies exploit predictable user behavior. Avoiding these common mistakes significantly reduces your exposure to taint analysis.

1. Merging KYC and Non-KYC UTXOs in One Transaction. This is the single most damaging privacy mistake. If you combine a UTXO from Coinbase (linked to your passport) with a UTXO from a Bisq trade (pseudonymous) as inputs to the same transaction, the common-input-ownership heuristic tells surveillance firms that one entity controls both coins. Your Bisq UTXO is now linked to your real identity. Always keep these pools strictly separated.

Left, kept apart: a 0.5 BTC coin bought at a KYC exchange carries your name; a 0.3 BTC coin bought peer to peer has no name; each is spent in its own transaction, so the name stays on one coin. Right, merged: one transaction spends both coins, the analyst assumes one owner, and the analyst's record now puts your name on both spent coins, so the peer-to-peer coin is linked to you.
One shared transaction hands your name to the coin that had none. Spending a KYC coin and a peer-to-peer coin together tells the analyst they have one owner. Keep the two groups in separate wallets or accounts and never spend them in the same transaction.

2. Sending CoinJoin Outputs Directly to a KYC Exchange. Running coins through a CoinJoin and then depositing the output directly to Kraken or Coinbase undoes the privacy gained. The exchange knows your identity and now holds the post-CoinJoin UTXO, allowing analysts to connect your CoinJoin activity to your account. If you must deposit to a KYC exchange, accept that those coins lose their privacy benefit upon deposit.

Four steps: 1, you buy at a KYC exchange that has your ID on file. 2, you withdraw the coins to your wallet. 3, a CoinJoin cuts the links to the withdrawal. 4, you deposit the CoinJoin output to the same exchange. The exchange's own records link step 1 and step 4 to your name, so the CoinJoin does not hide the activity from it. If you must deposit, accept that the coins lose their privacy benefit.
A CoinJoin cannot hide a coin from the exchange it returns to. The chain links are cut at step 3, but the exchange sold you the coins and receives the output on your own account, so it can tie the CoinJoin to your name.

3. Reusing Bitcoin Addresses. Every time you provide the same address to two different senders, you create a definitive on-chain link between those transactions. Modern HD wallets generate fresh addresses automatically, but some users override this behavior for convenience. Never manually reuse an address, and ensure your wallet is configured to generate new receiving addresses for every payment.

4. Ignoring Change Output Management. When you spend part of a UTXO, the remainder returns to you as a change output. If your wallet selects change outputs poorly, it can reveal connections between your transactions. Use coin control in a wallet such as Sparrow to choose which coins pay, rather than letting the wallet pick them automatically, and label each change output so you never spend it later with coins from another source.

5. Trusting “Clean Coin” Certificates. Some services claim to certify that coins are “clean” or “taint-free.” These certificates have no legal standing and are based on the same flawed heuristics used by surveillance firms. A UTXO’s history does not determine its value or legitimacy under Bitcoin’s consensus rules. Paying a premium for supposedly clean coins reinforces the false premise that some bitcoin are worth less than others.

Frequently Asked Questions

What exactly is taint analysis and how does it work?

Taint analysis is a set of heuristics used by blockchain surveillance companies to trace the flow of bitcoin through the network. The most common technique is the common-input-ownership heuristic, which assumes that all inputs to a single transaction belong to the same entity. Analysts assign a “taint score” to UTXOs based on their exposure to addresses flagged as problematic, such as darknet markets, sanctioned entities, or hacked exchanges, weighing the kind of source, how many hops back it sits, and how much of the coin’s value came from it. These scores are probabilistic, not deterministic, and are frequently inaccurate because the underlying heuristics can be deliberately broken by CoinJoin, PayJoin, and other privacy techniques.

Can an exchange freeze my funds based on taint analysis?

Yes, and it happens. Some exchanges use chain surveillance tools from companies like Chainalysis or Elliptic to screen incoming deposits. If a deposit triggers a high taint score — for example, because it passed through a CoinJoin or originated from a flagged address several hops back — the exchange may freeze the funds and ask for additional documentation. This practice is controversial because it penalizes legitimate privacy behavior and enforces a subjective, heuristic-based judgment as if it were factual evidence. Users who prioritize privacy often avoid depositing post-mix coins to KYC exchanges entirely.

A chain of payments starts at a flagged address, such as a darknet market or a sanctioned entity. An address 1 hop away was paid by it, an address 2 hops away was paid by that one, and your coin, 3 hops away, was paid to you by the second. When you deposit it at an exchange, the screening tool counts the hops, flags the deposit, and the deposit may be frozen. The score tracks where the coin has been, not what anyone knew: the people in between may have done nothing but receive and spend coins, and the exchange may ask you for documents.
A taint score tracks where a coin has been, not intent. Exchanges screen deposits with chain-analysis tools, and a coin a few hops from a flagged address can be frozen even if nobody in between knew about the flag.

Is CoinJoin legal?

In most jurisdictions, using CoinJoin is legal. CoinJoin is a standard Bitcoin transaction where multiple parties collaborate to construct a single transaction — no different, at the protocol level, from any other valid Bitcoin transaction. However, regulatory attitudes vary. Some exchanges treat CoinJoin participation as suspicious activity, and certain jurisdictions have investigated or sanctioned specific mixing services. Using CoinJoin for legitimate privacy purposes — protecting financial data from commercial surveillance, separating personal and business funds, or exercising your right to financial privacy — is lawful in the vast majority of countries.

Does Taproot improve privacy against taint analysis?

Taproot (activated in November 2021) improves on-chain privacy by making several transaction types look identical. Single-signature wallets, multisig setups and complex scripts can all use the same output type (P2TR), and a key-path spend reveals only one signature, which may come from one signer or from several signers who combined their keys (MuSig2). This means surveillance firms can no longer tell a simple payment from a key-aggregated multisig or a Taproot Lightning channel’s cooperative close just by looking at the script type. A script-path spend still reveals the script it uses. While Taproot does not break taint analysis heuristics directly, it reduces the metadata available to analysts, making their models less accurate over time as Taproot adoption grows.

Related Resources

Part of our free Bitcoin course: This topic is covered in Bitcoin Privacy: Why It Matters and How Chain Analysis Works, from the Advanced Bitcoin Security & Privacy course.
Filed under: Bitcoin Privacy
← Back to All Articles