EOS is promoted as a blockchain "utilizing a decentralized consensus algorithm". In this article I will discuss the theoretical decentralization, and how that plays out in reality as a centralized result.
Where most decentralized blockchains are run by a network of an unlimited numbers of nodes, the EOS network has a fixed number of 21 Block Producers. The 21 Block Producers are selected out of a bigger group of potential Block Producers by EOS holders through a voting mechanism. The 21 Block Producers with the most votes will be the active Block Producers. Besides producing blocks, these Block Producers will also:
1. Implement changes in the core protocol
2. Change the EOS constitution (Which is actually a user agreement)
3. They are able to confiscate EOS tokens and freeze accounts
4. Transactions can be singled out and excluded from any future blocks
5. They have the power to push transactions from accounts that they do not own
So block Producers have enormous power and responsibility over what happens on the blockchain. Important to notice is that points 2, 3, 4 and 5 are not commonly possible in decentralized blockchains. They obviously remove the "immutable" and "Trust-less" qualities out of the blockchain. There is obviously a central power in play here. The theory is, that this central power is being controlled by the community.
So in theory, the community controls the Block Producers in two ways:
- I) Voting on proposals through referendum. If changes should be made in the core protocolor the constitution, or if points 3, 4 or 5 will be in play, the community can vote for what they want Block Producers to do: EOS holders can vote for proposals. To come to a valid voting result, a minimum of 15% of all EOS tokens must vote. From these votes, a minimum of 55% must vote yes. The 55% positive vote margin must be sustained for 30 consecutive days. When a vote turns out positive, the 21 Block Producers need to enforce the proposal. (At least 15 of the 21 Block Producers need to act, for the change or, the action to take place.)
- II) Voting for Block Producers. The community also decides who the Block Producers will be. So if Block Producers do not act according to the EOS constitution or the wishes of the community, then the community can vote for other Block Producers. This is expected to be enough incentive for Block Producers to play by the rules.
Now let's look how this plays out in reality:
Voting for proposals by EOS holders.
First thing to notice is that voting for proposals is not done on-chain. There is no protocol level code that prevents the Block Producers from ignoring the voting procedure. So the Block Producers have the final say in what actually happens. Again: they have an enormous amount of power. More even than miners or stakers have in other blockchains. (Remember that points 2, 3, 4 and 5 from the list above, are not commonly possible in other blockchains.)
But lets imagine that the Block Producers always follow procedure and act according to the voting procedure. (This is not the reality, but more about that later.)
In the voting procedure, the amount of EOS tokens is a deciding factor. So the first thing we should look at is the token distribution. The top 2 addresses own enough EOS combined to reach that 15% alone. This means that we can only conclude that the 15% threshold is not enough. Just two holders can vote a proposal through. That's it. Here ends decentraiozation for EOS. Two entities can rule the EOS chain if they decide they want to. The EOS governance model has turned a 51% attack, into a 15% attack.
EOS New York, has voiced their own objections against the 15% threshold. You can read more about their point of view here.
But the case against EOS' claim for decentralization doesn't end here:
Voting for Block Producers.
As explained above, Block Producers are elected by EOS holders. As you can see on this website, there are a few 100 potential Block Producers you can vote for. The top 21 Block Producers have the biggest percentage of votes and thus they lead the EOS chain at this moment. EOS holders can change their vote at any time, so the top 21 could, in theory change at any time. At this time of writing, the top 21 Block Producers, hold a total of 55.12% of all votes. Number 1 has 2.8% of the votes and number 21 has 2.7% of the votes. On average, if you would be able to account for 2.63% of the total votes, you could establish 1 Block Producer. We have just seen that EOS has some big whales among the holders. Besides pushing a vote through, these whales could also use their votingpower in the decision who becomes Block Producer.
Let's take a closer look at todays reality: To be able to vote, your EOS tokens need to be staked. Currently, a total of 58.91% of all EOS is staked. So if you would stake all your EOS, and you want to establish a Block Producer of your personal choice, you would need 58.91% of the average 2.63% that we saw in the paragraph above. That means that if you have 1.55% of all EOS, you could stake that amount and you would have enough votes to establish 1 Block Producer. This means that 32.55% of all EOS would be enough to dictate all 21 Block Producers. That sounds like an enormous amount. But if we look at the EOS richlist again, we see that the first 7 accounts hold enough EOS to dictate all 21 Block Producers today. Remember how much power Block Producers have. This means that just 7 accounts could hijack EOS at this point of time.
But it is worse. Not all Block Producers need to agree. You need only 15 block Producers to be able to establish a core protocol change, or any of the 5 mentioned powers the Block Producers have. This means that you only need 15 x 1.55% = 23.25% of all votes to rule the EOS chain. This means that as little as 4 of the top addresses can rule the Block Producers today.
Lets summarize: the 2 top holders can push through any proposal they want. The top 4 holders can dictate who the majority of the Block Producers are. This means that EOS is extremely centralized.
If we continue to look at the EOS token distribution, we see that the top 50 EOS token holders, which is a 0.005% of the total of holders, represent 55.21% of all votingpower. If we add the next 50 holders, we see that the top 100 EOS token holders together, (Which represent 0.01% of the total holders), control 67% of the total voting power. The top 150 represents 74.79% of the total circulating supply.
Can it get any worse?
I'm afraid so. Within the 21 Block Producers, there is a group that is linked to 1 single entity: The 6 largest Block Producers of EOS have been proven to be run by 1 entity. So technically, they have formed a pool. And even though they form a group of 6 and not the needed 15 to rule the EOS chain, it is a very serious issue since they do pretty much have veto power. They can immobilize the EOS governance process, since a minimum of 15 Block Producers is needed for major changes in the protocol. Here's the catch: it is very hard to get to a consensus among 21 Producers if a unity of six does not agree. All other 15 Block Producers would have to agree to get to the required 15. The unity of six pretty much has veto power.
How about we just throw all the rules overboard?
Done. Actually happened this year. Since Block Producers are not bound by any core protocol rules, sometimes, all the non-hardcoded rules are just thrown overboard. And that has already lead to centralized decisions by Block Producers. They can in fact decide to make crucial changes "overnight". This means that they can decide to form a majority, propose changes and execute straight after the proposal. People who voted for certain Block Producers, but not for an "overnight" proposed, and executed proposal, find themselves sidelined. EOS holders should have influence in this type of decisions before proposals get executed. Holders should have time to change their vote for another Block Producer, but if a group of Block Producers can (and has) make a power move and push an important change through without consulting the community, there is something wrong. This happened February the 25th of this year. This proposal was implemented without the required 15% vote turnout and without the required waiting period that should be obeyed before actually implementing a core protocol change. Some people in the community said it was in the best interest of EOS, but on the 7th of March 2019, the proposal was made for the first time and did not reach the required 15% turnout threshold. It reached just 1.7%. Apparently, according to some the interest of EOS is not something you can measure in the therefore intended voting procedure. Block Producers wanted it to happen anyway. So on February the 25th 2020, it was pushed through overnight. This again emphasized the centralized power of a few within the EOS blockchain. And this is not theory, this actually happened.
This is another indication that "The promise of EOS governance" is worth nothing since the rules can be set aside without consequences.
The reality of the EOS governance system, is that it results in centralization and that EOS is at the mercy of a small group of people. On top of that: these people have power that is not supposed to be possible in blockchain-based-cryptocurrencies. Confiscate EOS, freeze accounts, and force transactions from any EOS account. This looks more like a traditional bank and it certainly is not immutable, censorship resistant, and trust-less.
To "solve" this and to restore trust, EOS has actually added a centralized government function in the EOS ecosystem for a while: EOS Arbitration. They could give rulings over on-chain events and order Block Producers to confiscate EOS, freeze accounts, and force transactions.
Currently they seem to have abandoned EOS Arbitration, but it shows EOS is struggling with a trust issue.
All these issues have already lead to the fact that EOS has most promising project: "Everipedia" has expressed serious doubts about continuing to build dapps on EOS.
Immutable? Trust-less? Decentralized? No, EOS does not fit that bill in reality. You still feel comfortable with EOS? Fine, but you've ran a full circle. Before EOS, we embraced blockchain to turn our backs to banks, middle men and centralized systems: "blockchain, the new revolutionary tech that cuts out the middleman. Trust-less, immutable, decentralized." but EOS made a full circle and went back to: "Well, those things aren't that practical." Again, fine if you like EOS, but let's not kid ourselves. This is not what decentralization is and it certainly is not what made blockchain application revolutionary.