How to use bitcoin anonymously?

As you probably already know, bitcoin is not anonymous (this property was never part of its original design). Bitcoin transactions are chained together in a permanent public record. Analysis of the blockchain may reveal a lot information about your transactions [1] (e.g., recipients of your payments, addresses in your wallet or the balance of your wallet). The following sections contains everything you need to know in order to prevent such kind of blockchain analysis.

There are currently three main methods how you can make your transactions more private. The first method is called CoinJoin [2] and is based on "joining" your transactions with transactions of other users. Most advanced project based on this method is JoinMarket [3]. This method is very secure, but unfortunately not fully implemented yet. However, the development process continues and the user base is slowly growing. The second method is called Confidential Transactions [4]. In simple terms, this method encrypts amounts in your transactions and helps obfuscate chain of the transactions. This method is not yet part of bitcoin implementation, but may be implemented in the future.


how bitcoin mixing service works
Figure 1: Basic workflow of a Bitcoin Mixing Service

The oldest and most often used method is bitcoin mixing (see Figure 1) which works on similar basis as mix network [5]. The bitcoin mixer receives bitcoins to input addresses and sends out different amounts from different input address. This method requires trusting the mixer, but is sufficiently secure when used properly. Manny of our users mix their bitcons for the first time. Because mixing your bitcoins properly requires to follow some simple rules, we decided to write a manual that will make this operation much easier.

Buying bitcoins

The first step is of course to get some bitcoins. Unfortunately, there is no easy way to buy bitcoins fully anonymously (we will solve that problem later). Most of the bitcoin exchanges have Know Your Customer (KYC) policy. That means you have to provide your ID, driver's license or passport before buying some bitcoins. Even when the identity verification is not required your bitcoins will be still linked to your bank account or your face (when buying in person). Therefore, feel free to chose the service which requires the lowest possible amount of information.

We recommend using LocalBitcoins.com, since you can buy bitcoins quickly via this service without identity verification in many countries. However, we don't recommend using Tor Browser with this service, because some bitcoin sellers won't sell the bitcoins to you if you are connected via Tor. LocalBitcoins.com is good service, especially if you prefer wire transfer or buying bitcoins in person. It is also possible to buy bitcoins at your local bitcoin ATM or with debit card via circle.com. Unfortunately, not all debit/credit cards are accepted.

buying bitcoins
Figure 2: Buying bitcoins via LocalBitcoins.com

Anonymous wallet

Ok, let's assume we already have some fresh bitcoins from the bitcoin exchange. The second step is to create anonymous wallet. We will keep the mixed bitcoins in this wallet and also send anonymous payments from it. The most secure wallet is full bitcoin client (e.g., Bitcoin Core). However, this kind of wallet requires over 80 GB of hard drive space, generates a lot of network traffic and may be complicated for new bitcoin users.

If you cannot afford such luxury there is also Electrum wallet. The Electrum wallet is an SPV client [6]. It is also very secure and requires very low amount of space on your hard drive. We will use it as an example in our manual. Download the Electrum wallet from its official website and install it. Download also standalone version of Tor (without Tor Browser) and install it. You will need it to connect to Electrum servers via Tor anonymity network. The Tor will listen on TCP port 9050 after the installation. There is no need to change the default Tor settings, but don't forget to change the configuration of Electrum: Tools → Network (for the proper configuration of network see Figure 3).

tor configuration in Electrum
Figure 3: Tor configuration in Electrum


If you run the Electrum for the first time it will challenge you to create a new wallet. (see Figure 4). Do not create the new wallet before the network is properly configured to use Tor! Give some name to the wallet and continue.

create new anonymous Electrum wallet
Figure 4: Create new anonymous Electrum wallet


Select the standard kind of the wallet on the next dialog and continue (see Figure 5).

select type of Electrum wallet
Figure 5: Select type of Electrum wallet


Electrum will challenge you to save the wallet generation seed in the next step (see Figure 6). You will need the seed if something bad happens to the wallet, so keep it in safe location and private (the seed on the picture is from empty wallet, so we can make it public, but you shouldn't).

electrum recovery seed
Figure 6: Save the wallet generation seed


Great, you are almost done. Switch to Receive tab and create some output addresses for the mixing service. We will use them later to send some bitcoins to the wallet. Optimal number of output addresses is 2-5.

create a few output addresses
Figure 7: Create a few output addresses

Mixing bitcoins

The last part is mixing the bitcoins. We will send the bitcoins anonymously from LocalBitcoins.com to the anonymous wallet via CoinMixer.se. Open our website in the Tor Browser and click on Participate link. Copy the output addresses from the previous step to the output fields. The sum of the output values makes the overall mixed value. There is also the delay value. A longer delay means that your participation will be more resistant to blockchain analysis (better anonymity, but it takes a longer time). We recommend setting different delay for each output. It is possible to set the delay to 0, but it is not recommend because it reveals in which block the outputs are.

create a new participation
Figure 8: Create a new participation


The next step is simple. Just rewrite the captcha code and click on the continue button (see Figure 8).

rewrite the captcha code
Figure 9: Rewrite the captcha code


We are almost there. We just need to confirm the participation and the system will take care of the rest. You can chose from three transfer methods. We will chose "Address and Amount", since we need to send the bitcoins from LocalBitcoins.com.

transfer of bitcoins
Figure 10: Transfer of bitcoins


Don't forget to save the Letter of Guarantee. It is important.

letter of guarantee
Figure 11: Letter of guarantee


We will copy the payment information exactly as it is to the LocalBitcoins.com payment form and send it.

sending bitcoins from LocalBitcoins.com
Figure 12: Sending bitcoins from LocalBitcoins.com


Your participation will be confirmed after 3 confirmations in the blockchain (see Figure 13).

participation is confirmed
Figure 13: Participation is confirmed


And that's it. Your bitcoins will be send with delay you provided in the participation form (see Figure 14). Thank you for reading this manual.

the bitcoins have been received
Figure 14: The bitcoins have been received

Best practices

In the end, we present to you list of best practices that will help you to keep your transactions private.

  • Always assume that all transactions from a particular wallet are linkable (never buy anonymous stuff and personal stuff with bitcoins from the same wallet).
  • Always use Tor Browser when you are buying something with bitcoins from the anonymous wallet (your real IP address will remain unknown to the merchant).
  • Always connect to Electrum servers via Tor (your real IP address will remain unknown to the Electrum server admin).
  • Use Tor URL instead of clearnet URL whenever possible. URL of our darknet mixing service is http://coinmixibh45abn7.onion/.
  • Use the Tor Browser with disabled JavaScript if the mixing service supports it (LE used some JavaScript exploits in the past to deanonymize Tor users).
  • Use at least two mixing services in a row to anynimize the bitcoins. Like this: LocalBitcoins.com → mixing service A → mixing service B → anoynymous-wallet (your transactions will remain private also in the case when one of the mixing services is compromised).
  • If the mixing service requires user registration then use a different account for every mixing operation (this will prevent the mixing service to enumerate all your wallets).
  • Use only well established mixing services and look for reviews on the internet before using them.
  • Use only encrypted communication channels to contact the mixing service (unencrypted email can be easily intercepted). Bitmessage for example, is encrypted, anonymous, decentralised and uncensorable.

References

  1. Fergal Reid; Martin Harrigan (2011). "An Analysis of Anonymity in the Bitcoin System"
  2. Gregory Maxwell (2013-08-22). "CoinJoin: Bitcoin privacy for the real world". bitcointalk.org.
  3. Chris Belcher (2015-01-09). "Joinmarket - Coinjoin that people will actually use". bitcointalk.org.
  4. Gregory Maxwell (2015-06-09). "Confidential Transactions, Content privacy for Bitcoin transactions". bitcointalk.org.
  5. David Chaum, Untraceable electronic mail, return addresses, and digital pseudonyms, Comm. ACM, 24, 2 (Feb. 1981); 84-90
  6. Thin Client Security - Bitcoin Wiki