"Conceal a flaw, and the world will imagine the worst" - Marcus Valerius Martial
In my previous post about blockchain I touched on how blockchain works with the hope that it will help some of you guys understand at a quick glance what is it all about. For those that wanted a deep dive in the subject I also created a blockchain course on udemy which is available for free right now.
Today I want to talk about something else, about a realization that I had somewhere during this year that ultimately led me to give up on this technology, even though I was quite invested in it for a while. This realization is why I now think that the technology is deeply flawed and most probably it will not succeed, except for maybe some very fringe applications.
Short blockchain recap
In case you were too lazy to go to any of the resources indicated above, let me do a very very quick summary on the main concept of blockchain, not going in the technical details.
The main idea of blockchain is that of decentralization, more specifically, the idea being promoted is that you can construct a decentralized and distributed system which you can just trust without making use of any 3rd centralized party. The main construct behind this system is a distributed database, or distributed ledger how it is usualy called in the blockchain world. This ledger is not controlled by any one entity, but as a whole by the majority of the node of the network (miners in blockchain terms).
Truth be told, there are a lot of problems with blockchain technology at this moment. Just to mention a few:
- No proven use cases - even as a currency it arguably failed for now due to the high fees and price instability
- No proven scalability solution - a few solutions are being proposed or in early adoption, but nothing proven is out there for now to match the number of transactions per second that credit card companies can do, while at the same time keeping the advertised properties of blockchain
- No proven solution for private data storage - there are some advanced cryptomagic solutions being proposed and tested, but no proven and usable solutions exists for now so most information on the blockchain is public and accessible to everyone
- The tendency of blockchain networks to become centralized - the emergence of corporations with datacenters constructed solely for mining cryptocurrencies and the emergence of large mining pools are one of the main causes.
Decentralization at a disadvantage
Actually, arguably the only success stories in the blockchain world, Bitcoin and Ethereum, are worse than their centralized counterparts in every technical comparison point possible: a lot slower, a lot less user friendly and less stable/resilient.
The only advantage they could claim is that they operate in a trustless decentralized environment. Besides the fact that this claim can actually be argued to not be true (at least not completely), is this property actually worth trading for all the other benefits that usually centralized systems come with? Some may argue that yes, but I dare to say that the majority of the population will not agree.
I am not saying decentralization is bad, just that centralized systems usualy offer better performance and user experiences than their decentralized ones. I am sure if all other aspects were equal then decentralization would win, but as history proves, for the reasons mentioned above, most of us migrated to centralized service providers: Facebook or Twitter for social networking, Youtube for video sharing or Amazon for shopping.
The internet itself, which was considered the go-to model of a decentralized system, is now considered quite centralized with a surprisingly small number of ISPs controlling the flow of traffic across the globe.
Being optimistic did not help
Even with all this problems being evident to me, I wanted to ignore them and be optimistic, because I saw that a lot of money was being thrown into researching new solutions for these problems, attracting a lot of smart people that could maybe provide a decentralized experience on par with the centralized one.
It is true that this money also attracted a lot of scammers who got rich by taking advantage of people believing that they could switch the economic classes around by buying cryptocurrencies or investing in ICOs with the hope of becoming the new oligarchs and the old ones becoming poor once the cryptocurrency revolution would complete (This is actually a very interesting topic for another time).
I realized that even when ignoring all these issues, there is one problem of blockchain that cannot be solved by any technical solution. This is because the issue is rooted in the core of the technology and once you take that out you don't really have a blockchain technology to speak of.
The hype-generating promise
Let us assume we have the perfect blockchain system: scalable, fast, good privacy, easy to use and completely decentralized. I said earlier that such a blockchain system is basically, from the users point of view, a public decentralized ledger that they can trust. And why can they trust it? It is because of a property that is always associated in media circles (and not only) with blockchains and with the ledger it provides: Immutability. The narrative goes that everyone can trust a blockchain system because it ensures, with its underlying magic, that the data it stores cannot be altered.
I am here to tell you that things are not so black and white. It is actually one of the misconceptions that acts as a litmus test for me to see if someone talking about blockchain really has any idea about it.
The not so hype-generating truth
My guess is that this misconception comes from the fact that the technology uses as an underlying data structure the blockchain, which indeed is immutable in the sense that you cannot alter anything from previous blocks since the chain of hashes would not match anymore.
But if we think in terms of the distributed ledger that is constructed on top of the blockchain, we can change the ledger very well with hard forks. Usually this hard forks can only happen with the agreement of the majority of the miners.
This leads me to the following statement which I think everyone needs to remember as a rule for every future interaction they will have with this technology:
The blockchain distributed ledger is not immutable, it is just a collection of facts on which the majority agrees, but if the majority agrees to change the facts then they can do that.
Following this rule, we can see why private blockchains (all miners controlled by one entity) don't make any sense. There is no magic happening here, if one entity controls all the miners then it can decide to do whenever they want forks in order to change history or the rules of the chain. A fully private blockchain represents a fully mutable distributed ledger. It is basically a completely inefficient database, so next time you hear your boss talking about stuff like this please confront him and present the facts.
That is why most people will tell you it is important for the majority to be distributed as much as possible between multiple entities, it reduces the risk of agreements on changing history. Notice I said it reduces risk, not that it eliminates it. Even with our perfect blockchain network, completely decentralized across a very large number of miners, there is a chance that a hard fork will happen and change the previously agreed upon facts.
The issue emerges
We need to realize that ultimately this ledger's underlying infrastructure (the miners) is run by human beings, not by some algorithmic machines. And human beings, even if they are independent of each other, tend to align their ideas in some area of interest to a few possible choices. As an example think of political parties, only 4 or less strong parties exist in most democratic countries, even though there are tens of millions of independent voters.
That is all fine until we realize that this effect may intersect with the functioning of the blockchain system. It may very be the case that some event happens that makes the majority of the miners (even though independent entities) to have a common interest in changing the history of the blockchain. In that case all the hyped immutability of the blockchain is gone. This was the truth that struck me: even with completely decentralized blockchain environments, majorities can can formed. And once you have that, you basically get a dictatorship of the majority.
History already taught us
You may say that this is all hypothetical and the chances of this actually happening are close to nonexistent. The thing is, it has already happened. We just have to look a couple of years ago and find the infamous DAO hack event.
Short summary of what happenened then:
- The DAO is setup on the Ethereum blockchain network.
- The DAO gathers from its crowdsale 150 million dollars worth of ether.
- A hacker takes 50 million dollars worth of ether from the DAO using a security hole in the DAO smart contracts.
- In fear of Ethereum losing further investors and to maintain the value of Ether, the Ethereum community "decides" to break the promise of immutability and alter the blockchain. A hard fork was done making it so that every investor gets his money back.
The reason why I put "decides" between quotes is because the way it was handled cannot be considered fully transparent. Ultimately the miners had to decide for the hard fork and the process for this is quite controversial. In order to mine the old chain, the miners had to put a special parameter at the start of the miner software, while if they started the software like they would always do with no parameter, they would implicitly vote for the hardfork. Basically miners who for some reason did not vote at all were counted as voters for the hardfork.
The fatal flaw
With the previous example in mind I hope you realize, the same way I did, the problem: the skeleton of the blockchain system is made by humans, and not by some sort of elite, but by the masses (since everyone can become a miner). Masses usually don't make decisions based on reality, facts or long term consequences, most people make decisions on the basis of social identities, partisan loyalties and quick personal gains.
If you think about it, this does not sound like the kind of decision making you would depend on to properly manage your money, properties, freedom, voting, medical information and all other things considered as blockchain applications...
...except that is exactly on what blockchain systems are based on.
And this is the fatal flaw of blockchain.