Last week at the Financial Cryptography conference I made a presentation about a role of decentralization for a public blockchain. Now I want to describe better my thoughts and position. I’m going to make few blog posts about it, this one is the first in the series.
If we will come to a decentralization metric from 0 to 100%, where 100% is fully decentralized blockchain. I believe that the average value for the top 10 blockchains will be less than 50%, likely less than 25%.
Most in the top 10 don’t even try to be decentralized. A centralized blockchain is a current trend, it is more effective for the most of the use cases and easier to compete in marketing, so most of the current blockchains are fine with being centralized.
If we speak only about the protocol, a peer-to-peer network, in most of the cases we have a decentralized network. That’s where people usually stop thinking about decentralization.
But because of the financial part (cryptocurrency itself) blockchain is more than an underlying communication protocol. The infrastructure consists of many parts, and some of these parts are centralized or tend to centralization. I’m writing about this, about politics of blockchain projects, a centralization of control over infrastructure.
I would select following factors which affect centralization:
– premine/foundation/treasury/taxation and other internal concentration of capital
– official team/code and a leader
There are some external factors which can have enough political weight:
– mining pools
– nodes concentration
Premine, foundation and other concentrations of finances
A premine alone is not a big problem, initial developer can do whatever he wants, he can mine something for himself and later spend it on development or on his own things. I don’t know how Satoshi is planing to spend his premine, but fortunately he didn’t establish a single controlling entity like foundation. Because a blockchain foundation (as we get them in blockchain) tend to be a concentration of power.
Everyone expects the foundation will do development, sponsor research and make all decisions. Other companies, i.e. non-foundation backed, are in a disadvantaged position so they prefer avoid participation.
As a result everything become dependent on foundation, it decides for everyone what is right path, what is not. For example foundation decides which fork, in case of community split, is a right one. Like it happened during ETC/ETH split.
Official team and code
In an ideal world we’re going to have few separate teams for a decentralized protocol, with protocol which is just a specification, ideally once written and untouched after. Like most of other internet protocols.
We have not reached such maturity in blockchain tech yet, so a team of developers has a significant advantage and a powerful position. They can leverage their position to dictate rules, accept or reject proposals. If we have few independent teams or developers they can argue about possible modification. And arguing here is good, we need to have it. Would be bad if they have to agree with an established entity, with an official team and official code.
Below is the code from Parity Ethereum (which is an unofficial client):
In this particular case the code of unofficial client was forced to comply with the code written for an official client, though it wasn’t justified by a specification. Just a decision made by official team, everyone has to agree with it.
He just makes decision for the whole networks and all external participants
But the bigger issue is that no one argue with a leader.
External factors are more complex by nature, and we don’t have much examples to understand all possible scenarios. But some of them has already showed themselves.
Most people expect that whales will do price manipulation, but just a price manipulation is a toy war. What whales can actually do is drastically change development path.
First example we saw was BCH and BTC forks, followed by fork to BSV. All of them were driven by groups of whales who had a disagreement with “core team” so they made their own fork. With enough capital it became more or less successful fork of BTC.
Currently we’re seeing the same in ETC, though whales were smarter and took control over the community in advance to avoid a split.
51% attack is already a threat. But pools can also sabotage or spam
network. It’s possible because it’s cheaper for them as they basically
pay fees to themselves.
That was used during block size debates which led to BCH/BTC. There were some evidences that top miners spammed the network to fill up blocks which increased fees for legitimate transactions. That was used as an argument to increase block size, and almost succeeded.
Currently we have 4 pool in BTC which control 50% of hashrate, and 3 pools in ETH which controls more than 50%. Most of other blockchains has 3 pools as well, which I think is the minimum acceptable number.
In an ideal world every user will have own full node. Unfortunately it doesn’t work yet because a full node requires advanced knowledge and it is a resource intensive software, so people usually rely on a 3rd party node.
For some blockchains, like Ethereum, it’s a big problem because their growth of the blockchain. Even businesses, like small exchanges, fully depend on central providers like Infura. They can’t afford to run a full node on their server basically.
Worse situation in blockchains like Ripple and EOS, which require up to 10TB and 4TB of disk space for a full node currently. It leads to centralization.
Central provider in that case decides which fork is right, which transaction is acceptable, and so on. That’s also relate to ETC/ETH split, where Infura supported only one side.
Part II: http://igorartamonov.com/2019/05/on-decentralization-part-ii/