Blockchain Basics: A Non-Technical Introduction in 25 Steps, by Daniel Drescher

Blockchain Basics: A Non-Technical Introduction in 25 Steps (Part 2: Distributed vs Centralised Systems)


This article is intended to serve as a summary of Step 2 in the book titled Blockchain Basics: A Non-Technical Introduction in 25 Steps, by Daniel Drescher.

Step 2: Seeing the Big Picture

So that you may see the big picture (and the role of blockchain technology in it), this part touches on software architecture as a concept and elucidates its relation to the concept of separating a system into layers and aspects. In order to locate the place of blockchain technology in the big picture, this step clarifies the link between blockchain and software architecture.

This step indicates the key purpose of the blockchain in just one sentence. Appreciating its purpose is vital in understanding the blockchain and comprehending the course of the later steps.

Two Types of Software Architecture

There are multiple ways to implement software systems. However, one of the foundational decisions when implementing a system is that of its architecture, the way in which its components are organized and related to one another.

The two big and popular architectural approaches for software systems are centralized and distributed ones.

"In centralized software systems, the components are located around and connected with one central component. In contrast, the components of distributed systems form a network of connected components without having any central element of coordination or control."

In a distributed architecture, components (called nodes) are connected to one another without having a central element/controller. It is worth noting that none of the components is directly connected to all other components. However, all components are connected with one another at least indirectly. The system is fault tolerant in that failure of one or more components doesn't result in the failure of the whole system. The downside is that distributed architectures are more difficult to build, test and correct than centralised ones.

In a centralised architecture, each component is connected to one central component (the controller). The components are not connected with one another directly. They only have one direct connection to the central component. If the controller fails/malfunctions, then the whole system fails/malfunctions.

Distributed vs Centralised Architecture Distributed vs Centralised Architecture

The Advantages of Distributed Systems

The major advantages of a distributed system over single computers are:

  • Higher Computing Power: Since the computing power of a distributed system is the result of combining the computing power of all connected computers, distributed systems typically have more computing power than each individual computer. This has been proven true even when comparing distributed systems comprised of computers of relatively low computing power with isolated super computers. [^1]
  • Cost Reduction: Since distributed systems consist of many computers, the initial costs of distributed systems are higher than the initial costs of individual computers. However, the costs of creating, maintaining, and operating a super computer are still much higher than the costs of creating, maintaining, and operating a distributed system. This is particularly true since replacing individual computers of a distributed system can be done with no significant overall system impact.
  • Higher Reliability: The increased reliability of a distributed system is based on the fact that the whole network of computers can continue operating even when individual machines crash. A distributed system does not have a single point of failure. If one element fails, the remaining elements can take over. Hence, a single [and central] super computer typically has a lower reliability than a distributed system.
  • Ability to Grow Naturally: One can increase the computing power of the whole system by connecting additional computers with the system. As a result, the computing power of the whole system can be increased incrementally on a fine-grained scale.

The Disadvantages of Distributed Systems

The disadvantages of distributed systems compared to single computers are:

  • Coordination Overhead: Distributed systems do not have central entities that coordinate their members. Hence, the coordination must be done by the members of the system themselves. Coordinating work among coworkers in a distributed system is challenging and costs effort and computing power that cannot be spent on the genuine computing task. This incurs coordination overhead.
  • Communication Overhead: Coordination requires communication. Hence, the computers that form a distributed system have to communicate with one another. This requires the existence of a communication protocol and the sending, receiving, and processing of messages, which in turn costs effort and computing power that cannot be spend on the genuine computing task. This incurs communication overhead.
  • Dependency On Networks: Any kind of communication requires a medium. The medium is responsible for transferring information between the entities communicating with one another. Computers in distributed systems communicate by means of messages passed through a network. Networks have their own challenges and adversities, which in turn impact the communication and coordination among computers that form a distributed system. However, without any network, there will be no distributed system, no communication, and therefore no coordination among the nodes, thus the dependency on networks.
  • Higher Application/Program Complexity: Solving a computation problem involves writing programs and software. Due to the disadvantages mentioned previously, any software in a distributed system has to solve additional problems such as coordination, communication and utilizing of networks. This increases the complexity of the software. [This makes the system more susceptible to failure than a centralised system using simpler software.]
  • Security Issues: Communication over a network means sending and sharing data that are critical for the genuine computing task. However, sending information through a network implies security concerns as untrustworthy entities may misuse the network in order to access and exploit information. Hence, any distributed system has to address security concerns. The less restricted the access to the network over which the distributed nodes communicate, the higher the security concerns are for the distributed system.

Distributed Peer-to-Peer Systems

Peer-to-peer (P2P) networks are a specific type of distributed systems. They are made up of individual computers (also called nodes) that make directly available, to all other members of the network, their computational resources (such as processing power, storage availability/capacity, data or network bandwidth), without having any central point of coordination. The nodes in the network are equal as far as their rights and roles in the system are concerned. Additionally, all of the nodes are both suppliers and consumers of resources.

Peer-to-peer systems have interesting applications (such as file sharing, content distribution and privacy protection). Most of these applications use a simple but powerful idea: Turn the computers of the users into nodes that make up the whole distributed system. Consequently, the more users or clients that use the software, the larger and more powerful the system becomes. This idea, its consequences, and it challenges are covered in later steps.

Mixing Centralized and Distributed Systems

Centralized and distributed systems are architectural polar opposites. Technical opposites have always inspired engineers to create hybrid systems that combine the strengths of their parents. Centralized and distributed systems are not exceptions to this. There are two typical ways of combining these two types of system(s), and they need to be understood since they will become important when learning about blockchain applications in the real world. They are ...

  • Centrality within a distributed system
  • Distributed system in the center

Mixing Distributed with Centralised Architecture

"What these two approaches have in common is that it is hard to determine their true nature. Are they distributed or centralized? [...] It is important to point out their dual nature. This is particularly important because it may not be easy to spot the centrality or the distributed nature within them."

Identifying Distributed Systems

"The emergence of hybrid architectures makes it hard to identify distributed systems clearly. [...] For the course of this book, it is important to have an idea of what a distributed system is and how it differs from other software systems. If you are in doubt whether or not a system is distributed, look for a single component (e.g., a database, a name or user registry, a login or logoff component, or an emergency switch-off button) that could terminate the whole system. If you find such a component, the system under consideration is not distributed."

The Purpose of the Blockchain

The blockchain is a tool for achieving integrity in distributed software systems.


[^1]: Distributed Systems: Principles and paradigms; Andrew S. Tanenbaum and Maarten Van Steen

How do you rate this article?

23


Great White Snark
Great White Snark

I'm currently seeking fixed employment as a S/W & Web developer (C# & ASP .NET MVC, PHP 8+, Python 3), hoping to stash the farmed fiat and go full Crypto, quit the 07:30-18:00 grind. Unsigned music producer; snarky; white; balding; smashes Patriarchy.


Cryptographic Anarchy: (Mis)Adventures in Crypto
Cryptographic Anarchy: (Mis)Adventures in Crypto

The content of this blog is exclusively to do with online privacy/security, cryptography and cryptocurrency: Understanding it, investing in it, mining it (in groups/crowds), developing/programming it, the social problems it aims to solve and the various ways to make more of it (or not, as various losses and failures happen). Let's get away from banksters, Capitalists and fiat, to an unbanked anarcho-syndicalist commune. || Banner image: Blogger's own.

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.