We are in 2050. People show an ever-growing distrust in the global banking system and start transitioning to only using Bitcoin: most companies accept it as a form of payment, and people settle their bills with Bitcoin. Even the kid with the lemonade stand down the road accepts Bitcoin as her payment.
Banks are worried because they are losing customers and revenue. Legislation has not managed to protect banks and the smaller ones have already started to shut down or provide alternative services.
Then, the CEOs of Atlantis Bank and River Banks, who are the only healthy banks remaining come up with a plan:
A transaction’s hash can easily be checked. Why not attack the Bitcoin network with an insurmountable number of fake transactions! We will produce so much noise, and the network nodes will be occupied with checking our fake transactions instead of the real ones, so much so, that a considerable fraction of the total network computing power will be devoted to checking fake hashes. Real transaction verification will come to a halt, and people won’t be able to do any everyday trade. They will only be left with one option: return back to us.
Here is my thinking:
- Bitcoin’s blockchain is increasing in size.
- More nodes are added to the Bitcoin network.
- Nodes are getting faster.
I expect this to have an overall quadratic effect (in the best-case scenario) in this attack: it will be cheaper for the attacker to generate and submit fake transactions, but it will also be cheaper for the network to discard the fake transactions. BUT the blockchain is increasing in size so at some point the network will be at disadvantage.
Here are some back-of-the-envelope calculations I made, assuming a constant blockchain size of 15 GB:
- SHA256 efficiency with today’s processors: 45 cycles/byte;
- So a chain of size 350 GB, requires 1.6e+13 cycles to be discarded as fake.
- With 1 core syncing at 3.5 GHz, this will take 4500 s (1.25 hr).
Are my premises wrong? Won’t there be a turning point, when the cost of the largest banks losing customers will be greater than the cost of them launching such an attack (in full secrecy)? How can the network defend itself against these attacks? Sure, one can always add more nodes to the network increasing the fee, but won’t that also turn customers back to the banks (i.e. rendering the attack successful)?