Welcome to this series of blogs – Demystifying Blockchain for Enterprise. The goal is to take away the vagueness and complexity around blockchain. During this series I will go over the concepts of an enterprise blockchain, its potential for certain industries, and how it can solve real-world challenges. I also explain the factors to a successful or failed implementation and how to design and implement a blockchain solution.
The main reason for starting this series is that in my experience, as the person responsible for developing and promoting our blockchain proposition at AMIS and author of the book Blockchain across Oracle, they quickly drown in the technology due to its proposed complexity, immutability, and comparison to digital currencies. I feel it’s time to look at the current state of enterprise blockchains and take any doubt away you might have on the purpose of blockchain in a modern IT landscape.
In this first part I will explain the technology behind an enterprise blockchain, what it’s added value is, and how it can save you money (hint: no more individual implementations). I also go over the importance of smart contracts while developing decentralized applications, and how blockchain compares to a traditional database and servicebus/streaming platform.
What’s (an Enterprise) Blockchain?
When you ask multiple people what they think the term “blockchain” means, you might be surprised to get different and conflicting answers, as use of the term blockchain can be a bit confusing. Most people immediately refer to Bitcoin or other digital currencies. Some people (e.g. developers) refer to Distributed Application Platforms such as Ehereum or smart contracts (executable code), but most of the time blockchain is explained as a immutable distributed, shared ledger.
In essence, an (enterprise) blockchain is a digital system for maintaining a (permissioned) distributed ledger in a way that allows parties or individuals who do not fully trust each other to agree on the updates to the shared ledger. That is why it is easier to just refer blockchain as a distributed ledger technology (DLT).
The ledger records transactions of assets in a immutable list that is replicated across available nodes in the network, rather than being stored in a central data store (i.e. traditional databases). A record commonly holds the raw data part of the transaction and information on the node or participant that submitted the transaction.
The structure of data within a transaction can be both structured or unstructured data. Structured data is often represented as JSON (key/value) documents, whereas unstructured data can be (encrypted) strings or binary content.
Depending on the DLT technology, a transaction might only be possible to submit through the use of smart contracts (i.e. in the case of enterprise blockchains). Programmable code that represents an agreements between parties with automated execution that can act as a complement, or substitute, for legal contracts or business transactions.
In the context of an Enterprise Blockchain a separate key/value database is part of the system holding the current state of an asset (i.e. the latest data object). If an application queries data from the ledger it is using this state database.
This makes the data immediately accessible without the need of reprocessing all transactions / events.
So think of blockchain as a series of data blocks, each containing information about business transactions / events that have recently occurred, such as track & trace event, sensor alarm, property transfer and a sale or purchase of goods.
In a distributed ledger such as blockchain, the data is distributed to all nodes in a trustless manner using a peer-to-peer protocol in near real-time rather than a central authority or third party (like VISA) to verify transactions between entities.
Each node individually processes and verifies every transaction redundantly (e.g. through the rules of a smart contract), bundles the verified transactions periodically into a block, and broadcasts them to all other nodes in the network.
The blockchain or DLT uses a combination of digital signatures and cryptography to securely hash each block. This hash is based on the hash of the previous block, so they are strung together into a chain, making it nearly tamper proof. It also proves your (pseudo) identity and authenticity and to enforce read/write and execute permissions (access rights).
Through a consensus mechanism (there are several out there), the block of transactions is validated by designated nodes (sometimes called “miner” or “ordeners”), parties who use cryptographic software to confirm all activities. The majority has to approve the block before it becomes final and is added to the blockchain. The whole process from transaction submission to verification is shown in the following flow diagram.
As each node independently validates the blocks and comes to a consensus about the block’s validity. This makes it difficult to introduce fraudulent transactions (as long as a majority of nodes are integrant), thus ensuring trust and integrity without the need for a central authority.
Commonly, one other property of an enterprise blockchain is, it’s permissioned-based. You are able to permit write access for certain participants and read access to other participants, or even to a wider audience; for example, everybody (i.e. the default behavior of public blockchains )
The added value of a blockchain solution
There are still many myths surrounding the effective application of blockchain. This is mainly the effect of the hype surrounding the technology due to the popularity of crypto currency. Applying blockchain in an environment with a limited number of users is often not effective because it can be better solved with a central database. With the exception of the solutions in which the participants may mutually agree on rules for the exchange and registration of information.
The added value of blockchain lies in applications where multiple parties have a need for a common view of the truth. Where there’s no one owner / leader, with the aim of indelibly (immutably) recording the status (truth) at any point in time by any of the parties.
Blockchain key aspects
– It always keeps the most current data, either by replaying all transactions or by reading a state database.
– The validation of transactions is decentralized by trusted nodes
– Transaction automatically trigger business rules when conditions occur
(e.g. the maintenance of a turnout immediately triggers a physical check by one of the parties responsible for that check).
– Indelible / immutable recording of evidence
– Tracing complex chains (e.g. food & agriculture, cargo) to a great extent
What is a decentralized application?
A DApp (Decentralized Application) is a ‘blockchain enabled’ web-application. It runs on a peer-to-peer network of computers rather than a single server, where Smart Contracts are allowing it to connect to the blockchain data. It contains both front-end and back-end and run independently on all nodes!
A DApp runs on the blockchain protocol in it’s own virtual machine. This VM is distributed and runs on all designated, trusted nodes (i.e. decentral). Every node has your logic running locally and its consistency is constantly monitored by the blockchain.
A decentralized application also includes:
– Data model describing participants, assets, transactions and optional events
– Authorization and permission model
– APIs that let’s the front-end connect with the back-end
– A front-end web application (can run outside of blockchain)
Blockchain versus traditional database
If you loosely compare a blockchain to a traditional database, a blockchain is a system that contains a highly cryptographically secured database (or event log) and some extra software which validates that submitted records conform to previously agreed-upon rules before adding the new records into the database. This extra software listens and broadcasts new records to all nodes, or “peers,” participating in the network, ensuring that each peer has the same data in its database. The following figure is an overview of the capabilities that make up blockchain technology:
The major technologies used by the blockchain are divided into five groups, i.e. application, consensus, incentives, network and data/security layer.
Blockchain versus (governmental) servicebus platform
If you compare blockchain to a traditional servicebus or even a streaming platform there is much to gain. In the Netherlands for example we have a few big servicebus platforms between (semi-)governmental organizations in which a central organization is responsible for the message transport between de organizations. When one organization send a message, i.e. to start a workflow/case, this central organization checks, based on information in the message, to whom it needs to be delivered.
In many cases this message needs to be send to multiple organizations to be processed (the same way) into their system. The central organization provides the distribution of the message, bus it does not provide the functionality to process the message. This is up to every individual recipient, who needs to implement the logic itself.
The next image shows such a traditional implementation:
The Blockchain protocol in this case would replace the distribution to recipients via this central servicebus and would implement the logic to process the information using smart contracts. The smart contract would only needed to build once and used many times by all parties. All interaction with the data go through the smart contract. If a recipient wants to have the data in their existing system they can query the blockchain using the smart contract, but the blockchain also contains the single source of truth.
The next image shows the same implementation using blockchain:
Cutting significant costs
Blockchain can cut significant costs in licensing and development of such a distributed messaging platform. Instead participants needed to run their own middleware and backend, and implement the business rules on their side, it’s controlled by the smart contract and the underlying state database.
Participants only have to provision their own blockchain node, join the network and install the most recent smart contract. The protocol does the rest. Participants can then choice and implement how to interact with the smart contract to submit and query data.
During this series I will cover this in more detail, but if you are interested in this subject it’s covered in chapter 9 of my book.
In this first part I explained the concepts of an enterprise blockchain and what the added value for your organization can be by implementing blockchain versus traditional approaches.
In the next part I will explain where in my opinion the potential of the technology is within certain industries and explore what kind of problems blockchain in the enterprise space can solve.