How do sites like this work? "Mixing services". I know it can be broken and traced back with coinsuduko but how exactly does it wash your coins. I doubt they just wait for somebody else to send in enough funds to reimburse with new coins, how would they go about doing it? Do they send the 1 BTC or whatever amount through 50 or so different wallets in different amounts on a bitcoind and then return the 1 BTC to your set wallet? I've heard of coinjoin, how does it work?

If I was going to send 1 bitcoin from one wallet to another from my website but have the bitcoins "washed" what would I need to do to keep the transactions hidden or at least "Mixed" so it would be harder for the bitcoin receiver to figure out what address exactly sent the coins.

Here is another example of open source coin washing blockchain.info uses: https://github.com/blockchain/Sharedcoin is all this javascript on user side really necessary (speaking from using their setup sharedcoin.com, not reading over the source which is also javascript.)


1 Answer 1


The idea behind Coinjoin or Sharedcoin is that funds can be pooled and mixed with several other Bitcoin users to fund new transactions that can't be easily traced back to you.

Here is a trivial example: imagine 3 users, that want the funds from 3 addresses the each control A (0.5 BTC), B (0.5 BTC) and C (1 BTC) to be sent to addresses X, Y and Z respectively. Instead of transferring the funds directly a service could do the following, assuming intermediary addresses:

A(0.5) --> L(0.5) --\
B(0.5) --> M(0.5) -- +
C(1)   --> N(1) --\   \-- Z(1)
                    \--- X(0.5)
                     \--- Y(0.5)

So the money originally from C gets split and sent to X and Y while the money from A and B gets added and sent to Z. Mixing services do the equivalent but across much more transactions.

  • What's the reason for the intermediate addresses L, M, and N? Wouldn't it be just as effective (in terms of untracability) if we create one transaction, with A,B,C as inputs (total 2 BTC) and X,Y,Z as outputs? Actually, if the amounts differ, you can still see that Z receives the same amount as input C, but the owner of C can simply overcome this by giving two output addresses Z and W which receive 0.5 each. As long as all output amounts are similar, I'd say this works just fine? Oct 15, 2014 at 21:26
  • L, M, and N represent the 'service'.
    – dysruption
    Oct 16, 2014 at 4:13
  • Why does this service need to introduce intermediate addresses of their own? I'd say this only imposes an unnecessary risk: now you have to trust the service with your money. Oct 16, 2014 at 19:41
  • It's required for the mixing process to happen easily. Otherwise they'd have to give you a big transaction which you would have to sign yourself.
    – Matthieu
    Oct 17, 2014 at 5:05

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.