Module 1: Understanding Centralized, Decentralized & Distributed Centralized Systems
In this first module, we will guide you through centralized, decentralized & distributed systems. You will learn about each system's characteristics, architecture, advantages, disadvantages, and more!
Before diving into what blockchain is and its applications, it’s important that we first understand the different types of databases that blockchains operate on. Blockchains can function on centralized, decentralized and distributed systems.
Centralized Database
We begin with centralized systems since they are the easiest to understand.
Client/server systems with one or more client nodes directly connected to a central server are known as centralized systems. Blockchain nodes store a complete copy of the distributed ledger and are responsible for the reliability of the stored data. The nodes are used by developers to create blockchain-based applications. In many organisations, this is the most prevalent sort of system, in which a client submits a request to a company server and receives a response.
A centralized database is one that is stored, located, and maintained in a single location. This sort of database can only be altered and controlled from the location itself. This location is primarily any database or centralized computer system. An internet connection is used to access the central location (LAN, WAN, etc).Institutions and organisations are the primary users of centralized databases.
For any transactions to occur in a centralized database, they have to come through a central authority (oftentimes a third-party). A bank is a useful example of a centralized system.
Characteristics
Global Clock
Because the entire system is made up of a central node (a server/master) and many client nodes, all client nodes must be in sync with the global clock (the clock of the central node).
One Centralized Unit
All other nodes in the system are served/coordinated by a single central unit.
Failure of Components
When a central node fails, the entire system fails. This is because there is no other entity to send/receive responses/requests when the server is offline.
Architecture of Centralized System and Its Limitations
The central node that serves the other nodes in the system is the server node. All the other nodes are the client nodes. Because of its design, it is easier to secure and maintain the server and client nodes compared to other databases. However, centralized systems do have their limitations:
Scalability
After a certain point, this system can no longer scale vertically. Vertical scaling means expanding a network by adding more power and memory to the main processing unit of a system, while horizontal scaling means adding more nodes (i.e., machines) to the framework of an existing system.
Even if the server node's hardware and software capabilities are increased, the system's performance will not improve significantly. On the flip side, vertical scaling is possible in decentralized networks. Each node can add resources (hardware, software) to itself to increase the performance leading to an increase in the performance of the entire system.
Bottleneck
When traffic surges, bottlenecks can arise because the server can only have a certain number of open ports available for client nodes. It’s like trying to fill in a jar with something. There is only a limited opening for material to fall into or out of a jar at once. As a result, when there is a lot of traffic, such as during a shopping sale, the server can suffer a Denial-of-Service attack or Distributed Denial-of-Service attack.
A denial-of-service (DoS) attack is an attack that aims to shut down a computer or network so that it is no longer accessible to its intended users. DoS attacks accomplish this by flooding the target with traffic or sending it information that causes it to crash.
A DDoS attack is a type of cyber threat that relies on sending too many requests to an online resource, causing that website or resource to be offline. The attacker uses an extensive network of computers to create this pressure, often using "zombie" machines that they have taken over through malware.
Advantages of the Centralized System
Fast Deployment
Because command chains are well defined within centralized networks, network delegation is relatively straightforward. For example, when an organization uses centralization, the chain of command is already established. This means that each person in the organization knows their role and to whom they must report. This makes delegation more straightforward.
By adding or removing connections between the client node and the main server, it's easy to add and delete client nodes from the network. This, however, has no effect on the network's computational power.
Affordable
For small systems, centralized networks are usually the most cost-effective solution because they require fewer resources to set up and operate. Furthermore, only the central server needs to be updated when a network administrator needs to patch or upgrade the network.
Disadvantages of the Centralized System
Because there is just one central node, the system is very reliant on network connectivity. The failure of one node will affect the whole network.
There will be no gradual degeneration of the system; instead, the entire system will fail abruptly. Also, if the server node fails and there is no data backup, the data will be lost immediately. This kind of failure would cause major disruption in any organization.
Decentralized Database
In a decentralized database there is no central storage. Instead, data is stored across interconnected databases in the system. Overall, decentralized databases are more reliable and it is less unlikely for this kind of system to fail because the data is always backed up.
In summary, a decentralized network is a “trustless environment,” where there is no single point of failure.
A trustless environment simply means that you do not have to place your trust solely in a stranger, institution, or other third party in order to use the network or payment system.
Because there is no single entity control, there is zero possibility of the network going down. For the network to crash all the nodes would need to go down simultaneously. This is highly unlikely when there are so many systems connected all over the globe.
One interesting example of a decentralized system is the website, BitTorrent. The BitTorrent protocol allows users within the ecosystem to share data without a central server. Because BitTorrent was decentralized, it made it very difficult for regulatory bodies to enforce anti-piracy laws or shut down the network.
Characteristics of Decentralized Systems
As there is no global clock in a decentralized system, each node is independent of the others. Therefore each node has its own clock.
In regards to dependent component failure, the failure of a central node results in the failure of part of the system, not the entire system.
Architecture of Decentralized System and Its Limitations
Peer-to-peer architecture is the foundation of a decentralized network. This means that each node is a peer of the others. No single node has dominance over the others. By voting and assisting in the coordination of a section of the system, one node can become a master, but this does not mean that the node has supremacy over the other nodes it is coordinating with.
Decentralized networks also have limitations. For example, there may be coordination issues for corporate entities utilising a decentralized database. This is because it is difficult to accomplish collective objectives when each node is the owner of its own behaviour. This is because there is no superior node overseeing the behavior of subordinate nodes
Decentralized networks are also not recommended for smaller networks, this is because centralized systems are far less expensive to set up.
Advantages
Decision-Making
Decentralisation enables more people to participate in decision-making. This means more input of solutions and unique ideas. This is a great benefit for businesses since it allows them to diversify operations in a variety of ways.
Data Reconciliation
Decentralized systems help to improve data reconciliation thanks to its immutability. Companies frequently share information with their partners. This data is then modified and stored in each party's data silos, only to resurface when it's time to transfer it downstream. Each time the data is modified, the possibility of data loss or inaccurate data entering the workstream increases.
Fewer Points of Weakness
Points of weakness are reduced in decentralized systems. Decentralisation can help to mitigate sources of weakness in systems where there may be too much reliance on certain actors. Systemic failures could result from system failures, such as inability to provide promised services or inefficient service due to resource exhaustion, recurrent outages, bottlenecks, or corruption.
Disadvantages
Currently, there is a notable lack of regulatory oversight in decentralized finance, but regulators are catching up. Following the rapid growth of blockchain-based alternatives to the traditional financial system, global authorities have taken steps to introduce regulations into the world of decentralized finance. However, at the time of writing, these regulations are few and in their infancy.
In the event of a node failing, It's difficult to figure out which node failed. Each node must undergo availability checks. These checks must then be reviewed to determine which one failed by comparing expected output to what the node produced.
Determining which node has failed is a lengthy process and each node must be checked individually which takes a lot of time and resources.
Centralized vs Decentralized – Overview
Before moving on, let’s have a quick look at some of the key differences between a centralized network and a decentralized network in the table below.
Distributed Systems
Distributed systems are a computing paradigm in which two or more nodes collaborate in a coordinated manner to achieve a common goal. All nodes are capable of sending and receiving messages to and from each other.
An example of an everyday distributed system is Google search. Hundreds of computers work on each request, casting a trawler’s net across the web and returning relevant results. To the user, Google appears to be a single system, but it is actually a collection of computers working together to complete a single task.
Characteristics of Distributed System
In order to agree on the same values and transactions, the nodes use consensus methods. Consensus methods are how different nodes agree on a new block being added to the blockchain. The consensus method allows a blockchain network to function in a distributed manner.
There is no global clock because each node keeps its own time.
In a distributed system, nodes fail independently without having a significant impact on the overall system. If one of the nodes fails, the system as a whole continues to function.
The Architecture of Distributed Systems and Its Limitations
All nodes in a distributed system are peers of one another and collaborate toward a common goal. Some nodes become server nodes and take on the roles of coordinator, arbiter. Different components of an application are spread across different system nodes, which work together to form an application for the end-user.
Each node in a decentralized system makes its own decision. The aggregate of decisions made by each node determines the final behavior of the system. Note that there is no single entity that receives and responds to the request.
The distributed system also has its own limitations. For example, the lack of a common clock makes it difficult for a node to acquire a global perspective of the system and, as a result, make informed judgments depending on the condition of other nodes.
Advantages
Fault Tolerance
In distributed networks, a single node can fail without harming the remainder of the system since the computational workload is simply rebalanced among the surviving nodes. As a result, distributed data systems are far more dependable than alternative network architectures that rely on top-down node hierarchy. A similar situation in the real world could be when an employee is not able to arrive at work, so management decides to delegate their tasks to the remaining employees for the day.
Speed and Scalability
Both centralized and decentralized networks are less scalable than distributed networks. However, due to the equitable distribution of network processing power and data, they typically have lower latency issues. Blockchain network latency is the time between the submission of a transaction to a network and the first confirmation of acceptance by the network. After the initial confirmation, the transaction becomes more final as more blocks are added after the initial confirmation.
Better Transparency
It is much more difficult to successfully edit, censor, or erase information on a distributed network since data is spread uniformly across the whole network. As a result, distributed networks are inherently more transparent than conventional systems, especially when cryptography is frequently used to secure data. For example, companies can digitize physical assets and create a decentralized, immutable record of all transactions that allows assets to be tracked from production to delivery or use by the end user.
Disadvantages
Expensive to Maintain
Distributed networks, like decentralized networks, require more resources to maintain or reconfigure. This is because any major change requires updating each node. Network managers cannot easily order commands because the scattered nodes have different latencies and do not share a common clock. Consequently, creating algorithms for a distributed network can prove challenging.
Coordination Issues
There are no superior nodes overseeing the behaviour of subordinate nodes. Therefore, there is no method to regulate individual nodes on the system. As a result, making timely decisions or completing large-scale tasks can be challenging. For some organisations, the decentralized chain of command can be an insurmountable problem. Furthermore, because gaining a global picture of the complete network is impossible for any single node, it is difficult for individual nodes to make well-informed decisions based on the condition of other nodes in the system.
What is the Difference between a Decentralized and Distributed Network
The main distinction between the two is how a "decision" is reached and how the information is then communicated throughout the system's control nodes.
There is no single point of decision-making in a decentralized system. Every node makes a decision about its own behaviour, and the system's overall response is the aggregate response. In a centralized network, on the other hand, decision-making authority is delegated to a few select leaders at the top of the organizational structure.
While decentralized and distributed systems have significant distinctions, in the blockchain world, they are inextricably linked. These systems each have their own set of benefits, and when we combine them, we have a network that is considerably more stable and reliable.
Is Blockchain Distributed or Decentralized?
If you look at a distributed ledger, you'll notice that all of the mining nodes have a copy of the network's transactions. They can't be read because they are encrypted with private keys. Transactional data is replicated among nodes, just like in distributed systems. As a result, blockchain is designed to be distributed.
You can learn more about blockchain technology in the next module here.
But is it also decentralized?
Depending on the design of the network, a blockchain can be centralized or decentralized distributed. If the control is not in the hands of any financial organisation, the blockchain network is then decentralized distributed.
Conclusion
When comparing the relative benefits of various network designs, keep in mind that no one configuration is superior to another in all situations.
However, because the current internet was created in large part on the foundation of centralized networks, most legacy systems have some type of centralized setup. The widespread adoption of decentralized and distributed network structures are aiming to solve the limits of legacy system architectures.
In the next module, we’ll cover more about blockchain technology.
This is really useful, and I agree that it’s a strong start. Maybe it’s just because I’m old school, but any thoughts about the possibility of including in the academy some course formats that allow webinar or online classes that allow for some interaction either between peers or trainer led groups?
Started strong with the only picture in the entire article. It's well written just needs more diagrams/graphs. Thanks for your work so far.