15

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?

9

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.

  • 2
    It might be worth adding the relevant quote from the paper, along with the citation. – Gary Rowe Sep 3 '11 at 21:47
  • 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 Rowe Sep 9 '11 at 6:30
  • 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 Sep 14 '11 at 13:19
  • @cdecker there could easily be a one-to-many relationship between proxies and the nodes that use them. – eMansipater Oct 6 '11 at 15:42
  • In that case you reduce the network to a hierarchical network whereas peers behind a proxy/supernode trust them. – cdecker Oct 6 '11 at 19:46
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.

  • +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 Rowe Sep 3 '11 at 21:49
  • 1
    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 Sep 3 '11 at 23:15
2

The answer is no, and here is why: average computer can verify about 80 transactions per second. 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.

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.