How To Use The Bitcoin Client Over The Tor Network

Here we cover how to configure the Bitcoin client to send traffic via the Tor network rather than directly out to the Internet over your own connection, which can help reduce your Bitcoin transactions / addresses from being associated with your IP address.

Download and Configure Tor Browser

We’ll be using the Tor browser as it’s very easy to get going, first install the Tor browser.

By default the Tor browser runs a SOCKS proxy host and listens on 127.0.0.1:9150, you can modify this or confirm this in the Tor browser by selecting Tools > Options > Advanced > Network > Settings.

Tor Browser Proxy Network Settings

You can perform a ‘netstat’ to confirm that the Tor browser is indeed listening on this port.

Configure Bitcoin Client

Once the Tor browser has been installed and you have confirmed the port that the SOCKS proxy is listening on, you can specify this into the Bitcoin client. In this example we’re using the Bitcoin Qt client.

Select Settings > Options > Network tab and tick to connect through SOCKS proxy, specifying localhost on the port that was specified in the Tor browser, in this case with the defaults we are using 127.0.0.1:9150

Bitcoin Client Proxy Network Settings

You can perform another netstat and you should see the Bitcoin client with an established connection to the proxy at 127.0.0.1:9150 which is the Tor browser. The traffic for the Bitcoin client should now be traversing the Tor network.

Note: It is not recommended that you use the Tor network for transferring wallets (unless well encrypted) as there are various attacks against this that can result in you losing your wallet, such as man in the middle exit nodes. In this example we are simply using the Tor network to route Bitcoin client traffic over the Tor network in order to perform simple tasks such as transactions and downloading the block chain, as this can help reduce your susceptibility to de-anonymization attacks.

This is a first step to increasing your security from nothing and is better than simply running the client over your ISP connection. While this is not a perfect silver bullet solution, it can help prevent your IP address being connected with your Bitcoin address / transactions. For further information on some practical attacks outlining how this can be done see the Deanonymization techniques for Tor and Bitcoin presentation from Stanford University.

Summary

By simply configuring the Bitcoin client to make use of the proxy that the Tor browser offers by default, we can easily route Bitcoin client traffic such as transactions over the Tor network, helping to reduce de-anonymization attacks. As with much in life, this is of course not a 100% foolproof solution as Tor has its own flaws and is not perfect, however this does offer more protection when compared to simply running the Bitcoin client directly over your ISP connection.

  1. This is an essential privacy/security feature of the client software and it’s incomplete. How do you configure a SOCKS5 proxy server that requires a user id and password to log in?

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>