What are Decentralized Systems?¶
A decentralized system is an interconnected system if no single entity (individual, organization, or group) is the sole authority. In a decentralized system, control and decision-making is in the hands of those participating in the system, and they have (more or less) equal standing in terms of influence. This is in contrast to a centralized system where a single authority is above all others in terms of rights and privileges.
A good example of a decentralized system is an ant colony, where control is distributed among the colony's members. Without any form of central control, an ant colony successfully achieves its goals, performs all its required tasks, and effectively responds to the ever changing conditions on the colony's environment through the collective contribution of the individual ants.
Another great example is when you fly internationally from one place to another. There are numerous participants working together and communicating efficiently to make that a seamless experience without there being a central unit that manages and plans it all.
There are two key characteristics of decentralized systems:
Equality of participants: all participants contribute towards the system's decision-making and control, and each of them takes an active role in managing the system.
Lack of central authorities: It is not that decentralized systems lack the authority to make changes to the management of the network, rather this authority is distributed among the participants. The system is run by the participants for the benefit of the participants.
Decentralized vs Distributed¶
These are very easy to get confused, and sometimes it seems they are used interchangeably but they are actually quite different.
A decentralized system is one where there is a lack of central authorities.
A distributed system is a system in which the physical location of the participants, the servers, the nodes, and whatever other components involved are in different places. So instead of the system being physically all in one place, different parts of the system are located on physically different places and the processing of tasks are shared between them.
The most obvious example of a distributed system is cloud computing, where tasks are shared among numerous computers or a database hosted on more than one computer.
What determines whether a system is decentralized or not is whether there are central authorities. What determines whether a system is distributed is whether the processing is done in one or multiple physical locations.
Decentralized vs Centralized¶
In a centralized system, there is a central authority that manages the system, makes decisions about how it is run and exercises control over the other components of the system.
Some examples of centralized systems:
- Expedia: Hotel owners and people looking for hotel rooms connect to each other through Expedia, rather than communicating and transacting directly together.
- Messaging services such as WhatsApp: People communicate with each other through a centrally controlled and owned messaging service.
- Amazon: Buyers and sellers interact commercially through Amazon.
- Client-server model: Clients interact with each other only through the server, a great example of this is email where communication between two users goes through a server.
Why are Decentralized Systems Useful?¶
Decentralized systems are useful because they are open and democratic, more transparent, and they are run solely in the interests of their participants by their participants.
Democratic: Decentralized systems require participation in order to successfully function, and therefore they are naturally democratic.
Open: Participants can freely join or leave as they wish. The system is open to new participants and does not stop existing ones leaving.
Public: Because decentralized systems need to be managed and run by their participants (democratic) and anyone can in principle join the system or leave (open), these systems are often public and their inner workings are not kept confidential.
Transparent: In order for the participants of a decentralized system to contribute to its liveliness, they must be made aware of how the system works, how it is managed, and so on.
Trust minimisation: participants do not have to go through central authorities to interact with others and achieve their goals. Hence, there is no need to trust central entities to handle your needs. Any guarantees needed by the system has to be provided by the system itself and the way it is designed, and (due to transparency) this is typically well known.
Speed: Decentralized systems are often slower than centralized systems. Because there is more than one decision maker, decisions have to be made by consensus in the group and arriving at that consensus takes more time than a single entity making the decision.
Efficiency: In decentralized systems, decision-making about the system requires participation. This makes it far slower to make changes to the system as it takes time for participants to agree to change. Also, because the system is open, participants can leave/join as they wish, then the system has to be designed to cope with an often changing number of participants. All this added complexity inevitably affects the efficiency of the system's operation.
Control: Because a decentralized system is often run collectively by its participants, controlling how the system is managed and the direction of its development is difficult.
Simplicity: For any system, it is often more complex to engineer a decentralized version with more than one decisions maker than a centralized one that achieves the same goals via central decision-makers and enforcers.