<p>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.</p>

<p>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:</p>

<pre><code>A(0.5) --&gt; L(0.5) --\
B(0.5) --&gt; M(0.5) -- +
C(1)   --&gt; N(1) --\   \-- Z(1)
                   \
                    \--- X(0.5)
                     \--- Y(0.5)
</code></pre>

<p>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.</p>

CC BY-SA 3.0
2014-10-15T21:26:29.403Z
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?
Maǳi Koǌo
CC BY-SA 3.0
2014-10-16T04:13:40.290Z
L, M, and N represent the 'service'.
dysruption
CC BY-SA 3.0
2014-10-16T19:41:34.123Z
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.
Maǳi Koǌo
CC BY-SA 3.0
2014-10-17T05:05:31.787Z
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
CC BY-SA 3.0
2014-09-15T16:27:54.347Z
2014-09-15T16:27:54.347Z
Matthieu
<p><a href="https://en.bitcoin.it/wiki/Mixing_service" rel="nofollow">https://en.bitcoin.it/wiki/Mixing_service</a></p>

<p>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?</p>

<p>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.</p>

<p>Here is another example of open source coin washing blockchain.info uses:
<a href="https://github.com/blockchain/Sharedcoin" rel="nofollow">https://github.com/blockchain/Sharedcoin</a> 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.)</p>

<p>Thanks.</p>

<blockchain><mixing>
Best way to anonymize bitcoin transactions?
Charles Smith
# Best way to anonymize bitcoin transactions?

(Asked by: username_0 on 2014-09-14)

<https://en.bitcoin.it/wiki/Mixing_service>

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.)

Thanks.

**Tags:** blockchain, mixing


---

## 1 answers

### Answer by username_1 on 2014-09-15. Score: 2

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.

> **Comments:**
> **username_2**: 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?  
> **username_3**: L, M, and N represent the 'service'.  
> **username_2**: 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.  
> **username_1**: 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.  

---

