3

I've recently been reading the Weaknesses Wiki page on "Attack on all users" and I came upon this statement:

The IP addresses of most users are totally public. You can use Tor to hide this, but the network won't work if everyone does this.

Which implies that a Client connecting to the Network through TOR can't fulfil all of its tasks this way. What are the limitations of a Client connecting to the Network through TOR, as opposed to a standard connection?

3

The Bitcoin client is designed as a peer-to-peer network. To join the network, you need to make a connection to a node that accepts incoming connections. To protect against certain types of Sybil attacks, a client tries to make 8 outbound connections to geographically diverse nodes.

If you connect to the network through tor, you cannot accept inbound connections. You will consume 8 inbound connection slots that were available on the network (with the outbound connections you make), but you will not add any yourself. This can cause the network to run out of inbound connection slots, reducing the reliability of the network. The Bitcoin network, in the past, has had problems with shortages of available inbound connection slots. It's not clear exactly why, but one possibility is intentional malicious consumption of those slots.

The reason you can't fully trust clients that connect inbound to you is that an attacker can trivially consume all your inbound connection slots and all those connections can be from conspiring nodes operated by the same user. However, you have complete control over who you make outbound connections to.

In general, so long as at least one of your connections goes to a well-connected node that is not conspiring with all the other nodes you are connected to, you should be safe.

  • 1
    It would be nice if you have the opportunity to update your answer. Current versions of Bitcoin Core have Tor control integrated and can accept incoming connections via the Tor network. There is a setup guide here. – Willtech Feb 10 '18 at 7:23
2

Currently for a bitcoin node using Tor to connect to another bitcoin node it must pass through an exit node.

There is work being performed on a resolution for this as described here:

Supporting IPv6 in a somewhat general way would pave the way for bitcoin functioning for example as a Tor or I2P hidden service, by using onioncat-like tor-encoded-in-IPv6 addresses.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.