The Logical Components of Blockchain
At first glance the blockchain space may seem confusing and complicated, and there is no doubt that the underlying mathematics and low-level programming involved to implement a blockchain ecosystem comes with a considerable degree of difficulty. This article identifies and explains the purpose of the individual logical components that make up all blockchain ecosystems to help shine light on the various blockchain ecosystem options that exist today.
Cryptocurrencies are built on blockchain technology, a technology that enables a shared distributed tamper-proof ledger to be be viewed by anyone with the corresponding software.
What then are “altcoins”? What about Ethereum and “ether” and smart payments and smart contracts? What about Ripple and “ripples”? How is blockchain technology distinct from a cryptocurrency? Is it necessary to speak of these two concepts concomitantly?
The short answer is, no, these are two different paradigms. Liberating blockchain technology from its application to cryptocurrencies is important in understanding the broader implications and applications of blockchain technology. Splitting the two will help to understand why it is that there is such excitement about blockchain-inspired disruption. Disruption in bioinformatics, governance, banking, trading, society, politics, and even the very structure of the Internet itself are are ripe for disruption. Generally speaking, blockchain technology is likely to bring about the disintermediation of everything.
To understand how blockchain technology, as distinct from its application to cryptocurrencies, it is necessary to understand the logical components of a blockchain ecosystem and what each component does. The four (4) main components of any blockchain ecosystem are as follows:
- a node application
- a shared ledger
- a consensus algorithm
- a virtual machine
I recognise there are other more detailed decompositions that have been made. DTCC.com, for example, explains eight features of blockchain ecosystems. IBM’s xyz a similar structure. I chose this decomposition into four components as I feel it provides a simpler introduction to the space, and elements of most of the decompositions I have seen still fall under these broader four categories.
1. Node Application
Each Internet-connected computer needs to install and run a computer application specific to the ecosystem they wish to participate in. Using the case of Bitcoin as an example ecosystem, each computer must be running the Bitcoin wallet application.
(In slightly more technical parlance, the blockchain ecosystem constitutes a service overlay network (SON) and to be a node in the network your computer must be able to process application-specific messages and affect the shared state of the SON.)
In some blockchain applications, like Bankchain, participation is restricted and requires special permissions to join (referred to as permissioned blockchains). Bankchain only permits banks to run the node application. Whereas the Bitcoin ecosystem allows anyone to download and install the node application and thus participate in the ecosystem.
Regardless of how one is qualified, once one has a node application one can participate in the respective blockchain ecosystem.
2. Shared Ledger
This is a logical component. The distributed ledger is a data structure managed inside the node application. Once you have the node application running, you can view the respective ledger (or blockchain) contents for that ecosystem.
If you are running the Ethereum client, you can see the Ethereum ecosystem ledger and interact according to the rules of that ecosystem (smart contracts, payments, etc.). If you are running the Bitcoin client, you can participate in the Bitcoin ecosystem, according to the rules set out in the program code of the Bitcoin node application.
You can run as many node applications as you like and are permitted to use, and each will participate in their respective blockchain ecosystems. It is important to note that regardless of how many ecosystems you are a participant in, you will only have one shared ledger for each ecosystem.
3. Consensus Algorithm
This, too, is a logical component of the ecosystem. The consensus algorithm is implemented as part of the node application, providing the ‘rules of the game’ for how the ecosystem will arrive at a single view of the ledger. Different ecosystems have different methods for attaining consensus depending on the desired features the ecosystem needs. For example, Bitcoin arrives at consensus of the ledger in a few minutes, the Lightning ecosystem provides Guardtime’s industrial blockchain platform provides sub-second consensus formation times, and Ripple guarantees consensus in a few seconds.
Participation in the consensus building process, the method for determining the “world state” of the ecosystem can be vested in a number of different schemes: proof-of-work, proof-of-stake, proof-of-elapsed-time; each method qualifies nodes as honest in a different way before participate in the consensus building process.
4. Virtual Machine
The virtual machine is the final logical component implemented as part of the node application that every participant in the ecosystem runs. To understand the capabilities added to an ecosystem by including a virtual machine let’s take a quick look at what a virtual machine is.
To understand virtual machines it helps to understand how a computer program runs on your computer. When a physical computer runs a computer program, the instructions in the computer program tells the computer to changes its “state”. We sense the changes of “state” on the physical computer in multiple ways: as a display showing information and graphics, as the alteration of information held in memory, as sound sent out to the speakers, as information stored on a solid-state drive.
A virtual machine is a representation of a machine (real or imaginary) created by a computer program and operated with instructions embodied in a language. It is an abstraction of a machine, held inside a machine. To some degree we are already are accustomed to abstraction of real world objects and entities as virtual objects in a computer. Think of a button in a graphical user interface of an application. You press the button on the screen and the state of the program inside the computer changes. Another example might be your driver’s license as it represented in a government computer. It is an abstraction of your real-world legal authorisation to operate a motor vehicle and it is largely what counts these days, rather than the real-world physical printed driver’s license.
Ethereum is a blockchain ecosystem that, like Bitcoin, implements a virtual machine. The virtual machine lives in the Ethereum node application, called a wallet, and unlike Bitcoin, it can understand a wider range of instructions making it possible to manage the state of a digital contracts aka smart contracts. The instructions take the form of a special programming language that instructs the Ethereum virtual machine in the node application to enforce the terms of the contract consuming and releasing a digital token called “ether” as part of the transaction. The contract cannot be tampered with, again because of the cryptographic integrity of information on the Ethereum blockchain.
Conclusion
The four components of a blockchain ecosystem operate together, a human user observing them as a node application or an app that is installed in order to participate in the respective blockchain ecosystem.
The explanation above is very much from a human user’s point of view, but blockchain technology is simply a mechanism for creating a distributed shared data layer and entries can be placed into the data layer by machines and program code, just as easily as a human user does.
By splitting the blockchain technology into these four constituent components, the latest developments in the space and the emergence of new ecosystems can be better understood. Each new development attempts to provide improved capabilities over the original application of blockchain to Bitcoin by improving one or more of these constituent components.