What Is Blockchain?
In the simplest of terms, a blockchain is a group of computers that works together to process and record data, ensuring the authenticity and security of the data transactions. From a more abstract and forward-thinking perspective, it’s the potential future of financial transactions, one that is not bound by global location or dependent on third-party intermediaries.
One of blockchain’s main features is the way it records data, which is:
- Immutable
- Transparent
- Decentralised
Immutable means that no entity can modify the transaction records.
Transparent implies that anyone can see and verify the transactions on a blockchain via the Internet.
Decentralised means no single entity can govern the whole network.
Bitcoin was the first application utilising blockchain technology (ironically, the term ‘blockchain’ was introduced after Bitcoin). The technology is now utilised in other cryptocurrency projects and business applications, such as trade finance, remittance, and e-commerce.
Distributed Systems
Blockchain is a distributed system, where hardware or software components located at networked computers communicate and coordinate their actions by passing messages. Many problems that blockchain encounters have already been discussed or solved in a distributed system.
The key characteristics of a distributed system are:
- Concurrency
- No global clock
- Independent failure
Concurrency
Concurrency means that multiple computations are happening simultaneously on different machines. It may seem intuitive, but complexity arises about how numerous machines should work together (see below).
No global clock
In a distributed system, every participant, or machine, has equal weight in deciding what is right or wrong. There is no single source of truth in a distributed system. For instance, Machine A may believe now is 11:13 a.m., while Machine B may believe it is 11:14 a.m.
Since network delay may further complicate the situation, even if two machines have the same time locally, they won’t know how long the network has taken to transfer the data. There is always potential noise involved when a machine has to confirm the time from its neighbour.
Independent failure
Independent failure is best explained as a hypothetical situation. For example, Machine A may need data from Machine B in order to continue its work, so it needs to communicate with Machine B and wait for a response.
However, Machine B can fail (e.g., shut down due to overheating), and the network can arbitrarily delay or even disconnect. The system designer must design with communication and failure responses in mind to ensure the system stays intact.
Blockchain and the Byzantine Generals Problem
Blockchain was invented to solve the Byzantine Generals Problem, which is particularly an issue for distributed computing systems, where components may fail and there is imperfect information on whether a component has failed.
To illustrate the problem clearly, let’s start with a story:
A group of generals, each commanding a portion of the Byzantine Army, encircle a city. They must decide whether to attack or retreat. But whatever they decide, the most important thing is that they reach a consensus. But the consensus is difficult to reach because the generals don’t know the decisions of the other generals.
Consider the following:
- There are three generals: A, B, and C.
- The generals must attack their enemy at the same time; otherwise, they may risk failure.
- The generals have no effective way to communicate instantly.
- Therefore, they need to send a courier to others to transmit their message.
- They must confirm that the other generals will attack at the same time.
- Therefore, the generals must relay messages and confirmation amongst each of them before launching an attack.
The problem gets more complicated when we consider that traitors may exist. We have no way of guaranteeing all of the messengers are trustworthy; on top of that, a messenger could be captured and forced to deliver a forged message.
From the above story, in relation to blockchain, we can infer that:
The Byzantine generals represent nodes on a chain.
Each consensus is formed by a group of generals representing a block (i.e., a set of valid transactions). All the generals must confirm each other’s decision to reach a consensus before launching a coordinated attack. Similarly, on a blockchain, all nodes must agree on the next block to be confirmed.
Nodes are subject to failure.
If one of the nodes, for example, shares inconsistent information (known as a malicious node) or fails to respond, the network could experience issues.
This is why everyone must acknowledge the information everyone else knows. At the same time, everyone needs to be aware of the information each other has; it creates a scenario where the information acknowledged and known by the majority is the final decision (i.e., consensus).
Consensus in Blockchain
The Byzantine Generals Problem presents a fine example of understanding consensus. It requires an agreement amongst a number of processes (or agents) for a single data value. Consensus protocols must be fault tolerant or resilient, as some of the processes (agents) may fail or be unreliable in other ways. The processes must somehow put forth their candidate values, communicate with one another, and agree on a single consensus value.
Those participating in a decentralised network do so using decentralised servers (nodes). Each node needs to agree on a preconceived set of rules (called ‘consensus mechanisms‘) in order to participate in the blockchain network and reach an agreement. Using these mechanisms, we can solve the Byzantine Generals Problem.
Centralised, Decentralised, and Distributed Systems
While a centralised system is easy to understand, differentiating a decentralised system from a distributed one is often confusing.
A distributed system stores and processes data in different locations or computers; the data is usually replicated. A decentralised system means that no single participant can decide how the system behaves. It must aggregate responses from multiple parties before reaching a decision.
A decentralised system must be distributed, while a distributed system may or may not be decentralised. In other words, a decentralised system is a subset of the distributed system.
For a deeper dive, this article by Vitalik Buterin may help in understanding decentralisation.
Blockchain Alternatives
Since the invention of Bitcoin, many have generalised its technology and called it ‘blockchain’. However, the original Bitcoin design is not the only design that works.
Distributed Ledger Technology
‘Distributed Ledger Technology’ (DLT), like Directed Acyclic Graphs (DAGs) or Block Lattice, is an alternative data structure to Bitcoin. DLT fulfils the vision of a decentralised system as originally wished, but we can no longer call these alternatives a ‘blockchain’. Hence, the term DLT was invented to generalise all similar systems that aim to solve consensus problems in a decentralised way.
Final Words on Blockchain
The mechanisms behind blockchain (or similar systems) — and integrating security mechanisms into its process — have allowed us to move from one centralised security system, like traditional financial institutions, to the crypto world. This is just the beginning, and the system is set to become even better as it evolves.