The Blockchain’s Broken Promises (The Blockchain Society, 1/?)
The hype is, for the most part, over, blockchain and cryptocurrencies are mainstream, and it looks like they are here to stay. There is now a crypto-wallet in the mobile Opera browser, and they are even beginning to be adopted by banks and governments. There are hundreds of new ICOs each year, thousands of companies founded around the technologies, and literally billions of dollars tied up in these companies. The technologies that we have ten years of experence in, that look solid and proven, and have only one tiny problem: they don’t work as intended.
Of course every aspect of them works well enough to be demonstrated, even on what some people consider a large scale. They have their applications (just not the ones most people think about). They have their early adopters, and their true believers —and I have no doubt I will get enough flack from those.
But these technologies have been failing their grand promises - and will keep to do so, simply because of … physics.
What are those promises?
- Trust-less: the participants of the network don’t have to trust each other to create or validate transactions.
- Anonymous: every participant is simply a wallet number, no name or address attached.
- A payment medium/currency outside of government control
And the final one, that is almost never spoken about, but always implied:
- The network can grow to allow world-wide, easy, cheap payment by everyone.
Let us look at those, mostly without getting too far into the technical nitty-gritty. Unlike in my my newer article that is meant for more technical users, here you don’t need to know what a database transaction log is. To follow, it should be enough to be able to think logically. Should any part be too confusing, you are welcome to ask in the comments, and I will re-write the offending parts of the article to be more clear, or write a more detailed explanation in a separate article.
How can a “distributed ledger” — a record of all your, and everybody else’s, financial transactions — be kept by somebody you don’t trust? How can you be sure that no-body fakes a payment from your wallet to his own, or, say, pays you with the money he already paid to someone else — it is just a number in a computer after all? Only if every participant of the service has an easy way to tell that the fraud is a fraud, even without having observed them fake the transaction. This is accomplished using a number of means, most important of which is the Proof of Work — a very hard to compute number that the “miners” agree upon — a new one for each transaction block, out of which the chain is built. Miners are simply computers that spend their CPU resources verifying transactions on the blockchain network.
Just to get an idea how hard to compute this number is: the whole Bitcoin network, which rivals supercomputers in its power, can only come up with one of those numbers every 10 minutes. And this is on purpose: the more computing power it has, the higher is the bar for the complexity of the calculation, so that one number can only be generated every 10 minutes.
The miner who comes up with this number — and this is random and different for each block — receives a reward for his work to keep the network safe from tampering. And this is how new currency is created. (Later, when all possible “coins” have been minted, the miner will be receiving a percentage of every transaction in the block he helped create.)
This is also why the network is outside of government control, because the currency is created by the “miners”, people contributing computational resources to the network, mostly at random — by whoever manages to compute the correct number for a transaction block. Nobody is controlling how much a bitcoin costs, nobody can print more at will.
Sounds good, right?
But what happens, when the “miners” disagree about the validity of a block? Simplistically saying, democracy happens: the ones with the most votes win. The “voting power” of the miners are their CPU resources. This is the origin of the so called 51% attack, something that is a very real issue that has been plaguing small cryptocurrencies like Verge, ZEN and more.
So it all comes down to: the party that has the most computing resources, or the resources to acquire such resources in the shortest amount of time, can actively manipulate the contents of a blockchain.
But if a lone hacker can take control of enough resources to control the Bitcoin Private network, what do you think a government intelligence agency with a large staff, a few supercomputers and a yearly budget of tens of billions of dollars can accomplish? “Outside of government control”, indeed.
Of course your crypto address is still anonymous, so you have nothing to worry about. The revolution of trust-less computing. Right?
Except it mostly is not: as many in the crypto community will tell you, unless you go to great lengths, whoever can observe your network traffic will be able to associate your IP address with your Bitcoin address. Your IP address is assigned to you by your internet provider - who, in turn, knows your name, and your physical address. Now, who could possibly be observing your internet traffic, or be able to easily request information about who an IP address belongs to…? Oh, did I mention government agencies yet?
Yes, if you are a professional at evading unwanted attention on the internet — using VPNs, darkweb, and anonymizer services — this is probably not going to be a problem for you. Everybody who is not a cyber security professional or a criminal is, currently, out of luck.
But no, this is not a piece about a totalitarian society. This is a piece about Blockchain and Cryptocurrencies. So let’s look at the remaining two promises, the trust-less-ness, and the ability to scale. To understand how and why they fail, we have no choice but to look at both of them together, because each of the problems can be solved — as long as you regard them separately.
As I mentioned earlier, in order to enable trust-less computing, you need to be able to verify every block yourself. The integrity of each block contributes to, and depends on, the integrity of the whole chain before it. This means, you have to download every block from the network. This costs network resources — not just yours, but every computer’s that you are downloading the blocks from. And once a new computer connects, and wants to retrieve the history for the current block, he will contact you, and use your network resources, to download parts of the block chain. He might do it a few times over, just to make sure that no-one fed him bad data. Once he synchronized all the way up to the present (and with some coins it can take weeks), he will also receive a copy of every new transaction on the network. And of course, in order for him to be able to do so, somebody has to keep the copy of the entire block chain — forever. If you trust no-one, you have to keep them all.
Now let’s say Paypal, Visa and Mastercard switch to a blockchain-based currency — this would mean, every single transaction made by everybody in the world — millions of transactions per day — tens of billions of transactions per year —would all be stored on your mobile phone. Forever.
Every new participant costs additional network resources. In addition, he is not simply there to listen to other people’s transactions. He is there so that he can receive and send payments. In an ideal crypto-world — where you pay for your coffee in the morning, then pay for your bus ticket to work, then pay to read an article of your favorite newspaper, then pay for lunch, and all of it with your favorite crypto-currency — every participant also puts an additional strain on the network. Together, this means that the strain on the network is non-linear: every one of your transactions per day has to be distributed to all (n) participants. Every their transaction has to be distributed to all participants as well. This makes it n*n — the amount of data that needs to be distributed grows as a square of the number of participants of the block chain.
Everybody who has some experience with networks, knows that non-linear traffic growth does not scale — is a good recipe for Denial Of Service. A decade ago, whole successful p2p file sharing services based on the wrong assumptions have committed suicide by non-linear growth.
In the end, the solution was to distribute the load… but with a trust-less service, it does not work. There is no way to optimize the traffic on the network, without also trusting some of your peers in regards to some of the data: You can partition the network so that not everyone has to receive all the transactions. But then you have to trust those, who tell you that the transaction was valid. You can reduce the load by throwing away parts of the blockchain information. But this would mean, you — or the next person who attempts to download the missing information — have to trust that they were valid. That you are not withholding information from them that proves that you have defrauded the network.
Of course people could just use a “wallet” at a crypto exchange or a service, thereby making it unnecessary for everybody to invest the resources. But by this, you are trusting the service with your money. Even if you trust them, personally, you are also trusting that they will not get hacked — a bet that has not worked out very well in the past.
Just as there is no way to stay anonymous without trust —trust in your VPN provider that he won’t sell you out — OR without sacrificing even more of your bandwidth to a packet-shuffling service like Tor.
And don’t get me wrong, this is not a technical limitation of the current solutions, this is a fundamental property of the medium: It is trust versus traffic, safety versus scaleability. There is no free lunch.
Full disclosure: I hold a small amount of about 10 different crypto currencies, including Bitcoin, as a hedge. Originally just in case something like the fluke of 2018 happened again. Now — in 2020 — because I realized that the incentive structure of Bitcoin makes it virtually invincible against logic and morale. It works for the same reason why communism doesn’t: there are always enough greedy people around.
Edit: This has become a short and developing series of articles about Crypto, titled “Blockchain Society”. I add to it irregularly, as I see fit: