<p>There are actually a number of possible threat models to evaluate. But since you asked about overwhelming "the network", I'll look only at attempts to overwhelm the network as a whole and not talk about attempts to overwhelm a few nodes. (You can overwhelm a node with invalid transactions, but that won't hurt the network as a whole.)</p>

<p>First, nodes will only pass verified, valid transactions to other nodes. And a node will only pass one transaction that attempts to claim a given output. And further, a node will not pass a transaction that claims a new output (one that hasn't been stable for a long time) unless it includes a transaction fee.</p>

<p>You have to assume an attacker will use no transaction fees. Otherwise, he'll go broke pretty soon. So in order to get his transactions relayed, he'll have to use old outputs. The problem is, his transactions will get into mined blocks, consuming his old outputs and replacing them with new ones. With new ones, he won't be able to get his transactions relayed for free.</p>

<p>The net effect is that you can't sustain such an attack for long because you can't have that many old transaction outputs that you can claim, and you'll burn them very quickly because you can only relay one transaction per output.</p>

<p>Effectively, after a short initial burst, at best you can send new transactions as fast as they're included in mined blocks, which might be maybe 100 transactions every 10 minutes. That's not much load.</p>

CC BY-SA 3.0
2011-09-03T21:49:35.293Z
+1 Although I'm not really looking at this from a threat perspective, rather from massive mainstream adoption. However, your observations are entirely valid.
Gary
CC BY-SA 3.0
2011-09-03T23:15:49.480Z
It's hard to imagine mainstream adoption ever overwhelming the network, especially since that's a few years off and CPU power is going up at a high rate.
David Schwartz
CC BY-SA 3.0
2011-09-03T21:05:26.470Z
2011-09-03T21:05:26.470Z
David Schwartz
<p>The answer is no, and here is why: average computer can verify about <a href="https://bitcointalk.org/index.php?topic=3971.msg56932#msg56932" rel="nofollow">80 transactions per second</a>. But most miners now days connected to pool servers, and in that case transaction verification happens only on the server, which could have a very sophisticated hardware and process <a href="https://bitcointalk.org/index.php?topic=6284.msg92201#msg92201" rel="nofollow">much larger number of transactions</a>. </p>

CC BY-SA 3.0
2011-09-03T20:28:06.940Z
2011-09-03T21:23:18.767Z
2011-09-03T21:23:18.767Z
Serith
<p>There are three parts to this:</p>

<ol>
<li>The miners have to verify each transaction that will go into the block and all transactions that are in the block they will be basing their own work on</li>
<li>Each client needs to look for transaction destined to their own addresses, which can get hard if you have a large address pool</li>
<li>Since all transactions are broadcast the network itself could potentially be flooded.</li>
</ol>

<p>The first two are pretty simple to solve since most computers already can process up to 100 transactions a second (resulting in roughly 10*60*100=60'000 transactions per block) and this can be pushed by investing in larger hardware to do the processing, and offloading verification to trusted third parties.</p>

<p>The last part is harder to solve as it results in possibly O(n^2) messages going around the network. Here a more structured network might do the trick, but all attempts so far to create a structured network have been dismissed.</p>

<p>Last but not least the blockchain grows linearly with every transaction which uses diskspace on every client. This has been partly solved by Satoshi in his paper.</p>

CC BY-SA 3.0
2011-09-03T21:47:26.060Z
It might be worth adding the relevant quote from the paper, along with the citation.
Gary
CC BY-SA 3.0
2011-09-09T06:30:42.350Z
Also work is underway to implement a Bitcoin node proxy that splits the light work of transaction sharing and the heavy work of transaction processing. This is an example of the more structured network.
Gary
CC BY-SA 3.0
2011-09-14T13:19:50.790Z
Actually no, a node proxy is just isolating a single node (shielding it of sorts), it does nothing to reduce the number of messages in the entire network. Since any transaction/block is verified at most once at every node (work that still has to be done anyway) it does not reduce the amount of work to be done. It only reduces the number of messages to and from the shielded node.
cdecker
CC BY-SA 3.0
2011-10-06T15:42:36.977Z
@cdecker there could easily be a one-to-many relationship between proxies and the nodes that use them.
eMansipater
CC BY-SA 3.0
2011-10-06T19:46:24.520Z
In that case you reduce the network to a hierarchical network whereas peers behind a proxy/supernode trust them.
cdecker
CC BY-SA 3.0
2011-09-03T21:08:31.227Z
2011-09-03T21:08:31.227Z
cdecker
<p>I'm coming at this from a point of view that assumes Bitcoin has been widely adopted as a currency worldwide and is essentially mainstream. Every day people are using Bitcoin in the same way that they use their credit cards today.</p>

<p>Will the transaction volume at this level be sufficient to overwhelm the Bitcoin network given that transactions are processed differently to those of the credit card companies?</p>

CC BY-SA 3.0
2011-09-03T21:24:44.987Z
I think a good answer to this question should include a link to the wiki - https://en.bitcoin.it/wiki/Scalability
ripper234
<transactions><scalability><future-proof>
Can the number of transactions per second ever overwhelm the network?
Gary
# Can the number of transactions per second ever overwhelm the network?

(Asked by: username_0 on 2011-09-03)

I'm coming at this from a point of view that assumes Bitcoin has been widely adopted as a currency worldwide and is essentially mainstream. Every day people are using Bitcoin in the same way that they use their credit cards today.

Will the transaction volume at this level be sufficient to overwhelm the Bitcoin network given that transactions are processed differently to those of the credit card companies?

**Tags:** transactions, scalability, future-proof

> **Comments:**
> **username_1**: I think a good answer to this question should include a link to the wiki - https://en.bitcoin.it/wiki/Scalability  

---

## 3 answers

### Answer by username_4 on 2011-09-03. Score: 9 | Accepted answer

There are three parts to this:

1. The miners have to verify each transaction that will go into the block and all transactions that are in the block they will be basing their own work on
2. Each client needs to look for transaction destined to their own addresses, which can get hard if you have a large address pool
3. Since all transactions are broadcast the network itself could potentially be flooded.

The first two are pretty simple to solve since most computers already can process up to 100 transactions a second (resulting in roughly 10\*60\*100=60'000 transactions per block) and this can be pushed by investing in larger hardware to do the processing, and offloading verification to trusted third parties.

The last part is harder to solve as it results in possibly O(n^2) messages going around the network. Here a more structured network might do the trick, but all attempts so far to create a structured network have been dismissed.

Last but not least the blockchain grows linearly with every transaction which uses diskspace on every client. This has been partly solved by Satoshi in his paper.

> **Comments:**
> **username_0**: It might be worth adding the relevant quote from the paper, along with the citation.  
> **username_0**: Also work is underway to implement a Bitcoin node proxy that splits the light work of transaction sharing and the heavy work of transaction processing. This is an example of the more structured network.  
> **username_4**: Actually no, a node proxy is just isolating a single node (shielding it of sorts), it does nothing to reduce the number of messages in the entire network. Since any transaction/block is verified at most once at every node (work that still has to be done anyway) it does not reduce the amount of work to be done. It only reduces the number of messages to and from the shielded node.  
> **username_5**: @username_4 there could easily be a one-to-many relationship between proxies and the nodes that use them.  
> **username_4**: In that case you reduce the network to a hierarchical network whereas peers behind a proxy/supernode trust them.  

---

### Answer by username_2 on 2011-09-03. Score: 7

There are actually a number of possible threat models to evaluate. But since you asked about overwhelming "the network", I'll look only at attempts to overwhelm the network as a whole and not talk about attempts to overwhelm a few nodes. (You can overwhelm a node with invalid transactions, but that won't hurt the network as a whole.)

First, nodes will only pass verified, valid transactions to other nodes. And a node will only pass one transaction that attempts to claim a given output. And further, a node will not pass a transaction that claims a new output (one that hasn't been stable for a long time) unless it includes a transaction fee.

You have to assume an attacker will use no transaction fees. Otherwise, he'll go broke pretty soon. So in order to get his transactions relayed, he'll have to use old outputs. The problem is, his transactions will get into mined blocks, consuming his old outputs and replacing them with new ones. With new ones, he won't be able to get his transactions relayed for free.

The net effect is that you can't sustain such an attack for long because you can't have that many old transaction outputs that you can claim, and you'll burn them very quickly because you can only relay one transaction per output.

Effectively, after a short initial burst, at best you can send new transactions as fast as they're included in mined blocks, which might be maybe 100 transactions every 10 minutes. That's not much load.

> **Comments:**
> **username_0**: +1 Although I'm not really looking at this from a threat perspective, rather from massive mainstream adoption. However, your observations are entirely valid.  
> **username_2**: It's hard to imagine mainstream adoption ever overwhelming the network, especially since that's a few years off and CPU power is going up at a high rate.  

---

### Answer by username_3 on 2011-09-03. Score: 2

The answer is no, and here is why: average computer can verify about [80 transactions per second](https://bitcointalk.org/index.php?topic=3971.msg56932#msg56932). But most miners now days connected to pool servers, and in that case transaction verification happens only on the server, which could have a very sophisticated hardware and process [much larger number of transactions](https://bitcointalk.org/index.php?topic=6284.msg92201#msg92201).


---

