<p>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.</p>

<p>If you connect to the network through <code>tor</code>, 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.</p>

<p>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, <em>you</em> have complete control over who you make outbound connections to.</p>

<p>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.</p>

CC BY-SA 3.0
2018-02-10T07:23:58.540Z
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](https://bitcoin.stackexchange.com/questions/70069/how-can-i-setup-bitcoin-to-be-anonymous-with-tor).
Willtech
CC BY-SA 3.0
2012-04-07T03:47:45.633Z
2012-04-07T03:47:45.633Z
David Schwartz
<p>Currently for a bitcoin node using Tor to connect to another bitcoin node it must pass through an exit node.</p>

<p>There is work being performed on a resolution for this as <a href="http://sourceforge.net/mailarchive/message.php?msg_id=29066245" rel="nofollow">described here</a>:</p>

<blockquote>
  <p>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.</p>
</blockquote>

CC BY-SA 3.0
2012-04-06T22:30:13.790Z
2012-04-06T22:30:13.790Z
Stephen Gornick
<p>I've recently been reading the Weaknesses Wiki page on <a href="https://en.bitcoin.it/wiki/Weaknesses#Attacking_all_users" rel="nofollow">"Attack on all users"</a> and I came upon this statement:</p>

<blockquote>
  <p>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.</p>
</blockquote>

<p>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?</p>

<client><bitcoin-core><weaknesses><tor>
What are the limitations of a Client connecting to the Network through TOR?
ThePiachu
# What are the limitations of a Client connecting to the Network through TOR?

(Asked by: username_0 on 2012-04-06)

I've recently been reading the Weaknesses Wiki page on ["Attack on all users"](https://en.bitcoin.it/wiki/Weaknesses#Attacking_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?

**Tags:** client, bitcoin-core, weaknesses, tor


---

## 2 answers

### Answer by username_1 on 2012-04-07. Score: 3 | Accepted answer

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.

> **Comments:**
> **username_2**: 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](https://bitcoin.stackexchange.com/questions/70069/how-can-i-setup-bitcoin-to-be-anonymous-with-tor).  

---

### Answer by username_3 on 2012-04-06. Score: 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](http://sourceforge.net/mailarchive/message.php?msg_id=29066245):

> 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.


---

