I've read some literature on mixing in systems like TOR and also in Bitcoin. In Bitcoin and Cryptocurrency Technologies, the authors explain that uniform transactions are highly important in order to prevent correlation attacks by matching inputs and outputs:

Uniform transactions. If mix transactions by different users had different quantities of bitcoins, then mixing wouldn’t be very effective. Since the value going into the mix and coming out of a mix would have to be preserved, it will enable linking a user’s coins as they flow through the mix, or at least greatly diminish the size of the anonymity set. Instead, we want mix transactions to be uniform in value so that linkability is minimized. All mixes should agree on a standard chunk size...

However, I'm unable to find examples where this is visible in the blockchain.

I've also seen mixing in Bitcoin described differently, for example in the Bitcoin and Beyond paper:

The mixing service aggregates bitcoins received from all its users to re-distribute them again. Some services use randomness, i. e., they split the amount into smaller random chunks and transfer them after random intervals. The user can schedule the transactions and provide time constraints.

Now I'm looking for examples of these types of mixing transactions in the blockchain, especially one where I can see a fixed chunk size being used. Is one of these schemes used more frequently nowadays?

Is the second scheme really secure? If THIS is actually mixing like I assume, then isn't it possible to match sets of inputs to sets of outputs that have the amount (or slightly less) BTC value and therefore have to be connected? I can imagine that this does also work over the course of multiple transaction in case the payout of a mixer is split into intervals.

1 Answer 1


As I see it, the techniques you are referring to are two possible but different ways of doing mixing. The first one, explained in Bitcoin and Cryptocurrency Technologies book is referring to a kind of mixing technique like CoinJoin.

CoinJoin is a mixing technique in which several users create a transaction by joining their inputs. In order to maintain their privacy, all inputs should share the same value, since in that way once the transaction is created there is no way of telling which input correspond to each output, whereas if the inputs hold different value it will be way more straight-forward. There are to ways of implementing a CoinJoin scheme, the first and more simple one relays in a third party receiving all inputs, outputs and signatures, and building the transaction from the participants. The other one, more elaborated, does not need any third party, since every user acts as a blind-signing server.

On the other hand, the technique referred in the Bitcoin and Beyond paper uses a mixing server, which acts as a trusted third party, where users will send funds and eventually receive them back in a different address (after applying a certain mixing fee). In order to avoid linkability between received and sent transactions, this kind of mixing technique uses randomized delays to redistribute transactions. blockchain.info's Send Shared, and bitmixer.io used to be examples of such a mixing technique.

Finally, regarding examples of such transactions, unfortunately I don´t have any particular CoinJoin transaction identified to let you know, maybe someone else can help you with that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.