Learn · ambiguity

CoinJoin and on-chain ambiguity

Equal-looking outputs are a feature of some privacy tools. They are also a reason not to pretend a large shuffle has a single sender and a single receiver.

Most whale headlines assume a simple story: one party sent a pile of bitcoin to another party. Bitcoin’s base layer does not require that story. A transaction can have many inputs from many wallets and many outputs of similar value. CoinJoin is a well-known construction (the name and the idea are public: participants coordinate so their coins are spent together) that produces that many-to-many, equal-output look. This page explains why that shape breaks naive tracing — and why this site refuses to invent a who/why. Education only. Not trading signals.

What “CoinJoin-like” means here

We use CoinJoin-like as a shape description, not an accusation and not a product identification. Gregory Maxwell described the style in 2013: multiple users combine inputs into one transaction, with no consensus change required (Bitcoin Talk, 22 Aug 2013). Later wallet implementations exist; we do not fingerprint a live transaction as a named product without a source, and our tools do not claim to.

The observable pattern is usually:

  • Several inputs, often from addresses that do not share an obvious common history on a casual look.
  • Several outputs of the same (or a small set of) amounts — the “denomination.”
  • Sometimes extra outputs for change that do not match the denomination.

A batch withdrawal from an exchange can also have many outputs. The difference you can actually see is value structure: exchange batches typically pay many different amounts to many addresses. CoinJoin-like txs often repeat a round number. Even that is a heuristic. Do not treat it as proof.

Why common tracing stories fail

Naive “follow the money” assumes you can pair each input with an output. Equal outputs destroy that pairing: any denomination output could belong to any participant. Change-detection tricks (“the leftover is the real owner”) also fail when several people take change, or when software randomizes change amounts.

Clustering tools that merge addresses because they appeared in the same transaction are especially wrong here. Shared inputs were the point. Treating co-spenders as one wallet is the error CoinJoin is designed to induce. If a dashboard draws a confident entity graph through a many-equal-output transaction, ask for the method — and expect it to be a guess.

What Brief will (and will not) say

Brief classifies a single transaction. It does not walk a graph across hops. When input and output counts are both large and no sourced label dominates, the engine falls through to an unlabeled / high-uncertainty read. That is the honest result. We do not add a “this is CoinJoin” badge, because we cannot prove coordination from one tx payload alone.

If a famous labeled address appears as one output among many equal ones, treat that the same way we treat dust-to-famous-address noise on Examples: the label matched a script, not the economic meaning of the whole transaction.

Ambiguity is not a verdict

People use privacy tools for reasons that are not visible on-chain: ordinary self-custody hygiene, reducing address reuse, or mixing after a public receipt. Exchanges and services also create confusing graphs without any CoinJoin. The correct response to ambiguity is lower certainty, not a morality tale.

Journalists: if you cannot source the coordination (a wallet announcement, a documented pool round, an official statement), do not write “a CoinJoin hid the whale.” Write what you measured: input count, output count, whether amounts clustered, whether any sourced label matched, and that identity is unknown.

How this differs from consolidation

Consolidation collapses many inputs into one output. CoinJoin-like activity keeps many outputs alive, often of matching size. If you only look at “total BTC moved” (the sum of outputs), both can look huge. Shape first, narrative second. The Radar will list either if the output sum clears the threshold — it does not score privacy or intent.

Practice

  1. On any explorer, sort outputs by value. Repeated amounts are a clue, not a conclusion.
  2. Compare to a known batch payout (many unique amounts) on Examples.
  3. Run the txid through Brief. If certainty is high uncertainty, believe that.
  4. Do not add an entity name that is not in the directory or a primary source.

We do not invent CoinJoin txids. If you have a publicly documented round with a primary source, send it via Contact.

Further reading

Educational only. Disclaimer.

Primary sources

  1. Gregory Maxwell, “CoinJoin: Bitcoin privacy for the real world”, Bitcoin Talk, 22 August 2013. No protocol change; participants coordinate a joint transaction.
  2. Bitcoin Wiki — CoinJoin (community encyclopedia; not a specification).