Best way to anonymize bitcoin transactions?
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) --&gt; L(0.5) --\
B(0.5) --&gt; M(0.5) -- +
C(1)   --&gt; 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.