CoinJoin and SharedCoin: CoinJoin is an anonymization method for Bitcoin is a digital currency (also called crypto-currency) ... transactions proposed by Gregory Maxwell. The following idea is behind CoinJoin: “When you want to make a payment, find someone else who also wants to make a payment and make a joint payment together”. In case of such a joint payment there will be no way to relate input and outputs in one bitcoin transaction and thus the exact direction of money movement will remain unknown to the third party.
CoinJoin transactions are often coordinated by a Join Market, where people who want to mix coins come together and initiate a single large transaction will all of their coins. The resulting transaction distributes coins randomly to each participant according to the amount they submitted, minus a transaction fee. In this way, CoinJoin transactions make it hard for investigators to track the flow of bitcoin from a sender to a receiver.