To examine some of the claims, we have to define what a blockchain is and herein lies a lot of the confusion. Many companies use the word “blockchain” to mean some sort of magical device by which all their data will never be wrong. Such a device, of course, does not exist, at least when the real world is involved.
So what is a blockchain? Technically speaking, a blockchain is a linked list of blocks and a block is a group of ordered transactions. If you didn’t understand the last sentence, you can think of a blockchain as a subset of a database, with a few additional properties.
The main thing distinguishing a blockchain from a normal database is that there are specific rules about how to put data into the database. That is, it cannot conflict with some other data that’s already in the database (consistent), it’s append-only (immutable), and the data itself is locked to an owner (ownable), it’s replicable and available. Finally, everyone agrees on what the state of the things in the database is (canonical) without a central party (decentralized).
Decentralization is very attractive because it implies there isno single point of failure. That is, no single authority will be able to take away your asset or change “history” to suit their needs. This benefit, however, comes at a great cost.
Development is stricter and slower
Creating a provably consistent system is not an easy task. A small bug could corrupt the entire database or cause some databases to be different than other ones. Of course, a corrupted or split database no longer has any consistency guarantees. Furthermore, all such systems have to be designed from the start to be consistent. There is no “move fast and break things” in a blockchain. If you break things, you lose consistency and the blockchain becomes corrupted and worthless.
You may be thinking, why can’t you just fix the database or start over and move on? That would be easy enough to do in a centralized system, but this is very difficult in a decentralized one. You need consensus (the agreement of all players in the system) in order to change the database. The blockchain has to be a public resource that’s not under the control of a single entity (decentralized, remember?), or the entire effort is a very expensive way to create a slow, centralized database.
Incentive structures are difficult to design
Adding the right incentive structures and making sure that all actors in the system cannot abuse or corrupt the database is likewise a large consideration. A blockchain may be consistent, but that’s not very useful if it’s got a lot of frivolous (useless) data in it because the costs of putting data into it are very low. Neither is a consistent blockchain useful if it has almost no data because the costs of putting data into it are very high.
Maintenance is very costly
A traditional centralized database only needs to be written to once. A blockchain needs to be written to thousands of times. A traditional centralized database needs to only check the data once. A blockchain needs to check the data thousands of times. A traditional centralized database needs to transmit the data for storage only once. A blockchain needs to transmit the data thousands of times.
The costs of maintaining a blockchain are orders of magnitude higher and the cost needs to be justified by the utility.
You may be thinking that you can simply refuse service to malicious users, which would be very easy to do in a centralized service. However, unlike a centralized service, refusing service is difficult because no single entity has the authority to kick anyone out. The blockchain has to be impartial and enforce the rules defined by the software. If the rules are insufficient to deter bad behavior, you’re out of luck. There is no “spirit” of the law here. You simply have to deal with malicious or misbehaving actors, possibly for a very long time.
All upgrades are voluntary
A forced upgrade is not an option. The other players on the network have no obligation to change to your software. If they did, such a system would be much easier, faster and cheaper to build as a centralized system. The point of a blockchain is that it’s not under the control of a single entity and this is violated with a forced upgrade.
Instead, all upgrades have to be backward-compatible. This is obviously quite difficult, especially if you want to add new features and even harder when thinking from a testing perspective. Each version of the software adds a lot to the test matrix and lengthens the time to release.
Scaling is really hard
Finally, scaling is at least several orders of magnitude harder than in a traditional centralized system. The reason is obvious. The same data has to live in hundreds or thousands of places than in a single place.
You can, of course, reduce the burden by reducing the number of nodes. But then at that point, why do you need a decentralized system at all? Why not just make a centralized database if scaling costs are the main concern?
Centralization is a lot easier
If you notice a theme, it’s that decentralized systems are very difficult to work with, expensive to maintain, hard to upgrade and a pain to scale. A centralized database is much faster, less expensive, easier to maintain and easier to upgrade than a blockchain. So why do people keep using the word blockchain ?
First, a lot of these industries that are being sold on blockchain are really overdue for IT infrastructure upgrades. Health care has the terrible software. Financial settlement is still running on software from the 70’s. Supply chain management software is both difficult to use and hard to install. Most companies in these industries resist upgrading because of the risk involved. There are lots of infrastructure upgrades that cost hundreds of millions and end up being rolled back anyway. Blockchain is a way to sell these IT infrastructure upgrades and make them a bit more appetizing.
Second, blockchain is a way to look like you’re on the leading edge of technology. Like it or not, the word “blockchain” has taken on a life of its own. Very few people actually understand what it is, but want to appear hip so use these words as a way to sound more intelligent. Just like “cloud” means someone else’s computer and “AI” means a tweaked algorithm, “blockchain” in this context means a slow, expensive database.
Third, people really don’t like government control of certain industries and want a different adjudication mechanism than the legal framework which is often slow and expensive. To them, “blockchain” is really just a way to get rid of the heavy apparatus of government regulation. This is overselling what blockchain can do. Blockchain doesn’t magically take away human conflict.
So what is blockchain good for?
We’ve already established that a blockchain is very expensive relative to centralized databases. So the only reason you should be using a blockchain is to decentralize. That is, remove the single point of failure or control.
This naturally means that the software or database must not change things around often, if at all. There should be little upside to upgrading and much downside to screwing up or changing the rules.
Most industries are not like this. Most industries require new features or upgrades and the freedom to change and expand as necessary. Given that blockchains are hard to upgrade, hard to change and hard to scale, most industries don’t have much use for a blockchain.
The one exception we’ve found is money. Unlike most industrial use cases, money is better if it doesn’t change. Immutability and difficulty in changing the rules is a positive for money and not a detriment. This is why blockchain is the right tool for the job when it comes to Bitcoin.
What’s clear is that a lot of companies looking to use the blockchain are not really wanting a blockchain at all, but rather IT upgrades to their particular industry. This is all well and good, but using the word “blockchain” to get there is dishonest and overselling its capability.
Back in the early 2000’s, there was a push by a lot of executives in the tech industry to use Java and XML. Despite these two things beingtoolsand not actual products, many executives insisted on their use, no matter how poor the fit was to what their engineers were trying to achieve. Blockchain is very much like that. Focus on the problems you’re solving and the tools will make themselves readily apparent.
In a sense, current conceptions of blockchain are trying to do the impossible. They want the security of a decentralized system with the control of a centralized one. The desire is the best of both worlds, but what they end up getting is the worst of both worlds. You get the costs and difficulty of a decentralized system with the failure modes of a centralized one.
Blockchain is used way too much as a buzzword to sell a lot of useless snake oil. The faster we get rid of the hype, the better off long-term we’ll all be.
Read More:Decentralization Explained