A part of the blockchain popularity stems from the idea that it makes things cheaper than traditional databases. The reason for this seems to be the word “distributed” in “distributed ledger” — as well as the fact that the ledger is “server-less”, i.e., kept by the public. This sounds like a Seti@Home-type “distributed computing” project, where the load and the cost is spread across all the participants, making it cheaper for everyone involved. As everyone who understands the technology behind a blockchain node can tell you, this analogy is wrong.
To put it simply, a blockchain is distributed in the same sense as a newspaper is distributed: everybody gets a copy. This has very little to do with the traditional sense of distributed computing:
Seti@home and similar projects consist of a central authority that splits the work up in multiple different packages, and distributes them to the participants. Often the same package is given to multiple participants at the same time for redundancy, because the nodes are unreliable. Some of them will turn off their computers and go on vacation, some will have power failures or data corruptions, some will uninstall the client, having received a shock with their power bill. If a package fails to get computed in time, it can get distributed to somebody else, again. All the clients together perform the total amount of work maybe 3 times, maybe more, but all together much faster than any single computer could. At the same time, the project (the central authority) itself did not have to pay for the electrical power, or the computing infrastructure.
A blockchain, by its nature, can not work this way. Let us ignore miners for a second (we will come back to them later), and focus on the work going into the housekeeping of the chain. Unlike Seti@home, the “blocks of work” are monetary transactions — they have to occur in order, otherwise you could double-spend your money. They also have to be the same for every node. After all, we are talking a record of all transactions on the network with untrusted and unreliable nodes, without any kind of central authority as a backup. If only a few nodes store a particular piece of data, you could completely lose this data even without any malicious intent — if those nodes happen to go offline, for example because the AWS datacenter they are all in loses power. It would not be so great if this data happens to be the contents of your wallet.
Thus, every node of a blockchain network keeps track of the same chain — of every single transaction on the network — as well as coordinating this work with each other. Every one of the nodes pays the same power bill, and a hardware maintenance bill.
Let us look at a simplified case. We have 3 nodes that maintain the chain, and everyone of those pays $10 per month for the connection and the power. We have a total of $30. Let’s posit that they have more than enough bandwidth and CPU to handle the chain. Now let’s add a node number 4. What happens? This node, too, has to track all the transactions on the network. It also has to talk to the other 3 nodes. It pays the same $10 bill as the other three. Now we have a total cost of $40, and every single node has slightly more work, not less.
In the worst case, the three nodes were already at their limit. Adding another node puts more strain on every node, because now they also have to coordinate their work with the node number 4. Thus, they have to either upgrade their nodes (or bandwidth), or the performance of the entire chain degrades. Adding the fourth node didn’t just become more expensive to the network as a whole (it always does), but to every single participant as well. Node number four, of course, has to process the same transactions as the other three, therefore its entry into the game is already more expensive.
What about the miners though?
Miners mostly exist on public chains with Proof Of Something (mostly Proof Of Work), and their role is to secure the network. On a Proof Of Work chain, like bitcoin, this is done by including a token into every block that is very “expensive” to compute — it takes a lot of attempts, which use a lot of CPU power, and therefore electricity. Surely, more computing power would help?
While adding more nodes does indeed help to find the target faster, finding it is not a goal in itself — in fact, faster hashing makes it necessary to increase the mining difficulty (this Stack Exchange thread here is a good write-up on why)— making it less probable for each miner to find the correct hash. This way, with every joining miner, every miner “hits the jackpot” less often, getting a smaller part of the pie — therefore making everyone’s payout smaller in relation to his operating costs. The total power consumption, and therefore, cost of the network, of course, increases with every added miner, since it doesn’t make the workload of the other miners smaller. Again, if you add a node, everybody loses — albeit making the network more secure in the process.
How does this affect the user of the blockchain? If you store your data in a database, you have to run a database node. If you want to store and access your data on the blockchain, you have to run a blockchain node. You have at least as much work as before (more on this later) … and also the work of maintaining the blockchain integrity. At the same time, you have to create some incentive for the other blockchain participants to run their nodes. For example, pay them a transaction fee.
With private blockchains, the seti@home argument doesn’t even apply in the first place: everything you do happens on your own nodes. In fact, a blockchain node can not be cheaper to operate than a database node for one simple reason: the blockchain layer requires some type of database to have fast/indexed access to its data in the first place. For example, every bitcoin client runs an Oracle Berkeley database.
Where does this leave us? After many discussions following my previous two articles, it seems, there is only one type of blockchain that actually provides a benefit versus other solutions: a permissioned blockchain with multiple principals. This, however, fails the main promises made by the crypto community: anonymity, openness, and lack of trusted middlemen — to the point where a lot of the crypto purists would not even consider this solution a true blockchain. A “true” blockchain, on the other hand, sadly does not scale — and as the Ethereum Classic 51% hack in the last few days has shown, isn’t even all that safe.
In the end, there is simply no free lunch.