This article will help newbies understand the basic principles of blockchain decentralization. We will explain that decentralization is a scale and a dynamic process, that two single points of failure can become one, and that being sure of security is more than just an assumption. We will focus on block production and not governance. However, the principles are often similar.
Decentralization is scale
Decentralization is not a binary value that can be turned on and off. Decentralization is scale. The lower bound is known. If there is only one dominant actor in the network who has absolute control over the production of blocks, the network is centralized.
The upper bound is more difficult to define. Ideally, every participant in the system should have the same decision-making power. However, in practice, the ideal is impossible to achieve, especially in the case of blockchain. Economic and technical aspects prevent it.
Decentralization is usually based on an expensive resource. Wealth in our society is not distributed equally. Rich people can buy a higher amount of expensive resources with money, so they can have more control over the network. Power in the blockchain network can be bought with money.
Every participant in the network can't produce blocks. The ability to reach a consensus would decrease as the number of participants increases, as the cost of computing resources and the complexity of communication increase.
In the following text, by participants, we mean those who actively participate in the production of blocks. So primarily producers of blocks, but also delegators of expensive resources (hash rate, coins).
Decentralization is a dynamic process and is constantly changing over time. People react to events and make decisions that have a direct or indirect impact on the quality of decentralization. Therefore, decentralization can increase or decrease.
Multiple positions with different tasks can be defined for the production of blocks or governance.
In Bitcoin, pool operators, miners, full node operators, and BTC holders participate in block production. It's similar in Cardano. Participants are pool operators, stakers, full node operators, and ADA holders (who for some reason do not stake ADA).
If we wanted to quantify decentralization, it would be necessary to describe the roles, define their impact on the entire infrastructure, and then assess the number of individual actors in the context of their proportional size.
Comparing two blockchain networks against each other can be a challenge for these reasons. However, in most blockchains, the roles are very similar. Mostly there are nodes producing blocks and entities that delegate power (miners, stakers).
There are always large, medium, and small players in the ecosystem. Old participants leave and new ones come. Over time, some participants may gradually gain a dominant position.
The old ones may gain such a strong position that it can be difficult for the new ones to get involved. Monopolization of power is an undesirable condition, but it occurs in markets and politics.
In a decentralized ecosystem, there is always a power struggle. If one or more participants succeed in this struggle, centralization begins to occur.
Decentralization is like democracy. It is necessary to constantly take care of decentralization, draw attention to problems and solve them. Without this process, sooner or later someone can usurp an excessive amount of power.
Decentralization should be stable. Ideally, however, it should grow (at least slightly) along with the number of new users i.e. scale with adoption.
It makes no sense for the network to be controlled by an ever smaller number of consensus participants while the number of users grows. So it can be said that stagnation itself represents a risk (or at least a warning signal) if we expect higher adoption.
No single point of failure
A decentralized network must not have a single point of failure. This means that there must be no weak point that could be exploited to attack or weaken the network.
In centralized networks, this weak point is the server to which the clients are connected. The server is the master and the clients are the servants. Clients cannot communicate with each other without a server. If the server stops working, all clients will stop working at once. A client cannot become a server. The server is therefore a single point of failure.
For example, if your bank's server stopped working, no client would be able to make a bank transfer. Someone needs to fix and restart the server to get everything back to normal.
In practice, servers are almost always backed up. If one fails, the other takes over. One server serves the clients, and if it fails, the second backup server immediately takes over all tasks.
However, this is not the same as decentralization. Decentralization is not about taking over work in case of failure but about the shared responsibility of all nodes in the network for the same task. In other words, nodes have a similar position and importance among themselves in the context of participating in key processes in the system.
If suddenly one node is offline, the impact on the processes in the network will be minimal. If two nodes go offline at the same time, the impact will be slightly higher, but users will most likely not even notice.
The goal of the network is maximum diversification, whether in the number of nodes (or their owners), geolocation, use of cloud services, etc.
If 2 dominant pools are producing blocks and one suddenly goes offline, there may be a short-term problem that users will notice. If there are 1000 block producers in the network and the diversification is high, the failure of one of them (or even 100 of them) is insignificant.
If there are 2 dominant producers of blocks in the network, they are two 'single points of failure'. It is important to note that 2 such points can easily become one.
They can agree on cooperation. Someone may try to attack these two points at the same time. For example, targeting a DDoS attack on 2 dominant producers of blocks.
It is always easier to attack a smaller number of targets than a large number.
Decentralization grows with a higher number of participants and diversification. If the participants do not know each other and there are a large number of them, there is a low chance that they can agree on something. The network is thus protected against external as well as internal attacks.
An external attack is carried out by someone who wants to destroy the network and does not have a positive relationship with it. An attacker can perform a DDoS or 51% attack. An insider attack can be carried out by someone who has a positive relationship with the network but wants to abuse their strong position. For example, 2 operators of dominant pools can agree on an attack.
The participants do not have to be the ones who voluntarily initiate the attack. They can be involuntarily or unknowingly exploited to attack or directly forced to attack. This is an important insight in the context of the next section.
A Certainty Is Better Than An Assumption
Decentralization should not be based on the assumption that it is economically disadvantageous for dominant participants to attack the network, but on the certainty that they cannot attack it due to high decentralization.
The assumption is that the more entities participate in decentralization, the better because they do not have to know each other and there is less chance that they will cooperate on an attack (or they will be exploited or forced to do so).
The assumption means that the attack is technically (relatively) feasible, but there are other primarily economic reasons for not committing it.
We can make another assumption. Maybe no one will want to commit a crime by physically attacking the participants, or no one will write a law that would dictate the behavior of the participants. Miners (delegators of power) will delegate elsewhere if the pool behaves dishonestly (for example, censoring transactions).
We can make many such theoretical assumptions, but the practice may be different with unpleasant consequences for decentralization.
Let's show it with an example.
If the network is dominated by a single producer of blocks, this entity can, for example, censor the blocks of smaller producers and thus destroy them economically. We can still assume that the dominant producer will not commit this attack because it is economically advantageous to behave honestly and keep a profitable business running.
This attack would essentially destroy not only the dominant producer but the reputation of the entire network (if there was no mechanism to reduce the power of the participant).
We can continue this thinking and increase the number of producers.
We can assume the same in the case of 2 dominant producers, 3 producers, and so on.
If only one of the two dominant producers participated in the attack, the network would still be reliable and somewhat decentralized (neglecting the influence of other minority producers).
From a certain number of producers, the assumption becomes more of a certainty that the attack is unfeasible. More precisely, the chance of success decreases as the number of participants increases.
There is no exact number. Ideally, we should approach the limit of maximum possible decentralization from a technical feasibility perspective.
So certainty will never be 100%. However, the degree of certainty can grow.
A larger number of participants is in itself a good prevention against attacks. If one participant has a minority share of power (perhaps only 10%) and assumes that other similar participants (another 9 participants each with 10%) will behave honestly, it does not make sense to behave dishonestly.
If the participants are economically motivated to behave honestly and do not know each other's strategy, there is a high probability that the attack will not occur. Any attack has little chance of success. As centralization increases, so do risks.
How to achieve high decentralization? It is a mix of economic incentives, inclusiveness, and the ability to make adjustments in the protocol if a problem appears, i.e. governance.
It is difficult for society to understand and use decentralized systems because since ancient times we have lived in a hierarchical society. In many countries, we manage to maintain democracy. This experience can be useful to us. However, with blockchains, it will be more complicated, as it is not possible to create a system where 1 person = 1 vote.
Power in the network can be bought with money. Like it or not, blockchains will tend to centralize. As the number of users increases, the social and economic importance of blockchain for society will necessarily increase. Pressures to gain control over them will increase.
We will have to make a huge effort to get the rules and incentives right and keep the networks as decentralized as possible. It is certainly not possible to say that we have solved all the problems related to decentralization, as the adoption is low which correlates with the desire to dominate the networks. An important test is just ahead of us.