Bitcoin Weaknesses: Debunked, Part 1 – 5 Easy Arguments
Hardly a day goes by that someone doesn’t tell me that bitcoin is going to fail or that it has a critical weakness that needs to be addressed in order to avoid a future failure. Most of these arguments are made by people who have looked at one aspect of the system and – failing to understand the intricacies of the rest of the system – assume that what they perceive as a weakness in one part must be a systemic issue that will cause the whole thing to fail.
In this post, I will address the five simplest of those arguments. The remaining arguments, however, are larger and require more in-depth analysis, so I’ll do those arguments the honour of a separate post each.
The arguments I’m planning on covering in separate articles are:
- Bitcoin mining uses too much energy and is bad for the environment
- Bitcoin doesn’t perform enough transactions per second to handle global commerce and (relatedly) scaling solutions that have been proposed are not viable for a number of reasons
- Bitcoin in the long term is a deflationary monetary system and is therefore not viable
- Bitcoin lacks some feature that is critically required. Alt-coins with newer/better technologies will overtake/replace it.
If you have any further arguments that you’d like me to address, please do comment and I’ll let you know when I’ve got a new post addressing it (or – if I think you’re right – I’ll discuss the impact of the issue you’re arguing for).
Until then, here are the 5 “easy” arguments:
Bitcoin can be banned
If Bitcoin becomes too large and popular, it will threaten national currencies. Governments will then ban it so that it is illegal to use. This will cause it to be relegated to only black market usage.
There is nothing really stopping governments from choosing to ban bitcoin, this much is true. However, they are disincentivised from doing so by the fact that it would give significant advantages at that point to any competing government that chooses not to ban it.
If a government bans bitcoin once it has reached a point that they can see it threatening their national currency, then they are already much too late. It won’t be seen as threatening their national economy unless it is already used for a significant amount of trade. By banning it, they are effectively banning a currency that is already held and used by a not-insignificant number of people in their country. Those people will either continue to hold it and use it (illegally) or will resent their government’s action for forcing them to switch from a sound money to a less sound one. This will have knock-on effects which could include devaluation of the national currency, reduced trade opportunities, and more.
Any attempt to strongly enforce the ban would be even more catastrophic. Since Bitcoin is pseudonymous and uncensorable, the government would have to resort to near police-state tactics for such a ban to be effective – there is no technological way that they can stop bitcoin transactions from happening without literally switching off the internet (and even then, there are still some alternative methods of using it). Any country that does this is clearly already on the path to totalitarianism and a citizens’ uprising would be almost inevitable. Not because they care about bitcoin per se, but rather because living in a police state is something that free people will naturally fight against if they’re able.
Bitcoin’s code might have a trojan horse from the creator
Because Bitcoin’s creator “Satoshi Nakamoto” is anonymous and no one knows who he/she/they are, they might have inserted trojan horse computer code into the Bitcoin protocol that allows them to control it or take it over.
Another variant of this argument is that it was a government that created it in order to have a new type of money that the people accept but they still really have control over.
No matter who created bitcoin, the code is open source. Any software developer can audit it and understand it. If there were code in bitcoin that allowed someone to take control of it, it would be removed by the first developer who found it and disagreed with it.
As a decentralised system, anyone is able to run whatever code they agree with, that plays by the economic rules they agree with. If one node starts enforcing completely different rules that disagree with everyone else, it will simply be kicked off the network. Transactions under those different rules will not be processed by the rest of the network and are effectively irrelevant. If you have the choice of running bitcoin software that allows your money to be stolen vs software that doesn’t, which would you choose?
This response is the same whether you think Satoshi Nakamoto is a government or not. It simply doesn’t matter who they are – they had the foresight to make a system in which they are irrelevant.
Forks and alt-coins increase supply
One of Bitcoin’s supposed strengths is that the supply is limited and therefore there can never be hyperinflation or inflation controlled by someone taking the role of a bank. However because anyone can create new hard forks of Bitcoin (such as Bitcoin Cash (and now Bitcoin Cash ABC/Bitcoin Cash SV)) or even completely new cryptocurrencies (Dash, Monero, Ripple, Ethereum, and a thousand or so more), each of these is a new supply of coins and effectively increases the supply forever.
This argument assumes that every cryptocurrency is effectively identical and completely fungible. That is, it assumes that if I hold 1 FooCoin, it has the same properties as 1 Bitcoin and is both functionally identical as well as entirely liquid with Bitcoin.
This is, of course, complete rubbish. It’s no different than saying that the hyperinflation of the Venezuelan Bolivar means that all other fiat currencies are magically worthless. At the start of 2010, 2.15 Bolivars was worth one US dollars. In June of 2018, it was 4 million Bolivars to the dollar. This huge increase in the supply of Bolivars, however, did nothing to influence the value of any other fiat currency. The euro, dollar, pound, and yen were not massively devalued just because the supply of an unrelated currency increased. Bitcoin is no different: the creation and increased supply of other cryptocurrencies is completely irrelevant to the value of bitcoin, of which only 21 million will ever exist.
Because Bitcoin is digital, it can be hacked
Bitcoin exists in a purely digital form. It can, therefore, be hacked so that money can be stolen, and/or the economic rules can be changed.
Another attack vector that people think about is the digital ledger (the blockchain). If someone just writes a new ledger with new values in it, they effectively can undo transactions or create new ones at will.
A final type of attack that people describe is what is called a key collision. Since Bitcoin private keys are randomly generated and can be done so offline, there’s obviously no mechanism for “checking” if a key has been used before or not. It must, therefore, be possible to just keep on generating new keys until you get one that someone else has, and steal their money.
Bitcoin is decentralised. I run a Bitcoin node on my computer, as do hundreds of thousands of other people. Each of these is a part of the Bitcoin network. As described above in argument 2, this means that the rules from the perspective of my node are the rules that I choose to agree with. If my node is hacked (which is possible, although unlikely), it will do nothing to the rest of the network other than making me incompatible with them.
If I kept private keys on my node that had access to funds, the hacker could also steal this money. But they’d have to use it in agreement with the rules that the rest of the network follows, otherwise, their transaction would be rejected.
As it happens, I don’t keep private keys on my node. I have a hardware wallet that keeps keys offline (never attached to the internet directly), as well as on my mobile phone using a wallet that I keep a much smaller amount of funds in for day-to-day use. Someone hacking my phone could steal this money, but that’s no different than someone picking my pocket and stealing my wallet with euro in it. As long as I never keep a large amount in it, I’m not an interesting target.
Regarding rewriting the ledger: Bitcoin mining uses a system called “proof of work”. This means that a certain amount of work has to be done in order to create a block of transactions. Since each block builds on each previous block, you can’t simply create a new historical block without then re-creating every block after it (otherwise they wouldn’t match up). To rewrite a block, you’ll need to put – on average – the same amount of work into recreating it as went into creating it in the first place (globally). This means that to rewrite the last block from 10 minutes ago, you need the same amount of computing power as every other bitcoin miner in the world combined. Even then, you’ll be one block behind as they will have built another new block while you were recreating the last one. Going several blocks back, you’ll need as much power as the rest of the mining world put in over that time within the next ten minutes in order for your newly rewritten chain to be valid.
This is where one of the clever aspects of Bitcoin’s game theory comes in: The cost of doing the attack described above would be extraordinarily vast. Even if the transactions you were undoing were somehow so valuable that it was worth it for you, you’d actually still be better off using that vast computing power to mine new Bitcoin blocks honestly, as that would net you a significantly greater reward (not to mention that a successful attack of that type would immediately destroy faith in Bitcoin and any value you got from rewriting the chain would be wiped out immediately).
Note that I’ll be writing another separate article going into depth about proof-of-work at some point in the near future which may help to get a better understanding not only of how it works but also some of the implications inherent in the concept when followed through logically.
Regarding key collision attacks: The assumption that this is feasible is based on misunderstanding just how big the numbers involved are. But – the person may argue – computers get more powerful all the time. Surely one day computers will be able to generate new keys fast enough to make this attack feasible.
I can’t say it better than the cryptographer Bruce Schneier, so here are his words on it:
Imagine you built a perfect computer; Forget about GHash and Megahertz. You built a computer which used the absolute minimum amount of energy theoretically possible to record a change in a single bit. [ 1 to 0 or 0 to 1 ].
Now imagine you used most of the natural resources in our star system to construct a Dyson sphere and covered the entire surface of this sphere with a single star system sized supercomputer.
Now imagine you could keep this supercomputer cooled at roughly absolute zero and could do so without expending any additional energy.
If you had that and captured (with no inefficiency or loss) the entire energy output of our star (not just in a day or week; continually until it burned out) you couldn’t COUNT to 2^256 before you ran out of energy.
Keep in mind this is simply counting.
Just counting, not hashing, not comparing, not performing lookups just counting 1….2….3….2^256-1.
These numbers have nothing to do with the technology of the devices; they are the maximums thermodynamics will allow. And they strongly imply that brute-force attacks against 256-bit keys will be infeasible until computers are built from something other than matter and occupy something other than space.
Limited supply means there’s an end-date to bitcoin
Bitcoin has a finite supply and miners generate new bitcoin when they mine blocks. They generate 12.5 bitcoin every ten minutes and this is how they make money. Once this runs out, they stop generating new bitcoin, and so they’ll stop mining.
This argument has a couple of misunderstandings in it.
The first is that miners actually get income from two different sources when mining a block: the first is the new supply (currently 12.5 bitcoin) and the other is the mining fees. Fees are what you pay to incentivise a miner to include your transaction into a block that they mine. You can choose what the fees are, but if everyone else is paying more than you, your transaction may not be included in a block for a long time since the miners will choose other people’s transactions over yours. Even when no new bitcoin are being added to the supply, miners will continue to make money from fees.
Another misunderstanding is that the amount of newly generated bitcoin isn’t fixed. When Bitcoin was new, 50 new bitcoin were generated each block. Every 210000 blocks (a bit under 4 years on average), this number is halved. Right now, it’s 12.5 and some time in early to mid-2020 it will halve again to 6.25. The last new bitcoin will be generated some time in or around the year 2140.
Miners will generate blocks as long as they’re economically incentivised to do so. A reduction in the reward without a corresponding increase in the price (which can happen due to the reduced supply of new coins) would mean that many miners would switch off their mining equipment. This, however, would just mean that the difficulty adjustment would kick in (since it now took longer than 10 minutes on average to find blocks) and mining would get easier. Any remaining miners would now be expending less energy per bitcoin that they generate. This will always balance itself out. Therefore either the price increases, or the number of miners decreases, but either way, it will always be economically viable for someone to mine and continue generating new blocks, processing transactions, and keeping the network alive/running.