Blockchain Technology
A mechanism for revolutionizing multiple sectors, elicit
accountability and eliminating errors
Since the blockchain database system provides security, trust, provenance,
traceability and availability, the stakeholders of various business systems/
organizations can collaborate with each other. This technology has been
initially experimented in the finance sector as in Bitcoin network, insurance
payments and cross border payment networks.
Overview
A business involves transactions and information exchange among various stakeholders. Since most of the
existing systems are centralized, there is greater risk to security, and this necessitates a secure and shareable
system to help stakeholders interoperate efficiently. Blockchain is a distributed system where transaction
records are bundled in blocks and linked with previous ones. Transaction data within a block is secure
because it is encrypted and digitally signed. Bitcoin network is a peer to peer payment network, and it is an
application of blockchain technology.
Blockchain Ecosystem
Blockchain is a decentralized distributed database (ledger) of immutable records accessed by various
business applications over the network. Client applications of related businesses can read or append
transaction records to the blockchain. Transaction records submitted to any node are validated and
committed to the ledger database on all the nodes of blockchain network. Committed transactions are
immutable because each block is linked with its previous block by means of hash and signature values.
Protocols such as Gossip and Consensus ensure that the submitted transactions are transferred to all nodes
and committed on all blockchain nodes consistently.
As shown in Figure 1, blockchain ecosystem consists of blockchain client, blockchain node, blockchain
network, transaction processor and consensus process.
Blockchain client is an application that creates transaction message in a prescribed format and submits it to
blockchain node through web API. It may be any existing application, which posts transaction message to
blockchain node. Clients are restricted using Public Key Infrastructure (PKI) technology at blockchain
node level.
Blockchain node is a server node that runs blockchain services responsible for receiving the transaction
and transmits the transaction to other blockchain nodes. With respect to the design, the node participates in
consensus process to commit the block of transaction data to ledger database.
Blockchain Node
BC Client Blockchain
API
Application Core Process Transaction
Processor(s)
Consensus
Engine Ledger
Database State Db
BC Node
BC Node BC Node
BC Node BC Node
Fig. 1: Blockchain ecosystem
Blockchain network is a network of linked nodes used for read, write transactions into ledger database.
The topology (as shown in Figure 2) is based on the nodes participating in consensus process. Traditional
systems are centralized where all data and decision-making is concentrated on a single node or cluster of
nodes. In decentralized systems, the data and decision-making are spread out among a large number of
nodes. These nodes maintain copies of the shared database and decide among themselves which data is to
be committed to the database using consensus mechanism. Decentralized networks can be an
interconnection of centralized or hub-and-spoke type networks. A distributed network is a special case of
decentralized system where every single node in the network maintains the shared database and participates
in consensus to determine which data is to be committed to the database.
Fig. 2: Blockchain network topology (Centralized, decentralized, distributed)
Blockchain Types: Public, Private and Consortium: In public blockchain, anyone can read and submit
transaction, and take part in consensus process. Bitcoin and Ethereum are examples of public blockchain.
Private blockchain is controlled by only a single body or an organization that controls who can read and
submit transaction, and take part in consensus process. Consortium blockchain operations are controlled by
a selected set of participating organisations. Public blockchain is called permission less blockchain. Private
and consortium blockchain are called permissioned blockchain.
Transaction Processor/ Chain Code/ Smart Contract is a process that runs at blockchain nodes for
processing the transaction data and maintaining the status in ledger database. It is called by blockchain
process when the transaction commit is started. During the process, it can call or execute other business
process tasks transparently before committing the transaction.
Consensus is a procedure to select a leader node, which decides whether the block of transactions is to be
committed or rejected. Earlier versions of blockchain system used Proof of Work (PoW) for consensus
process. Every node or participatory node is given a mining task, and a node elected as leader completes
the mining task first. Mining task is to find or calculate a certain pattern value of hash value by adding
nonce to current hash. Node that participates in mining process requires heavy computing resources. Latest
consensus protocol uses PoET, “Proof of Elapsed Time”. Every node in the consensus process selects
random time and keeps decreasing. The node that reaches zero first is selected as leader.
Transaction is a unit of business data within Block. Block is a set of transactions bundled with signatures
and hash value of previous block. Genesis block is the first block of chain created during installation and
configuration.
Merkle Tree is a tree data structure (as shown in Figure 3) in which leaf node holds hashes of every
transaction and intermediate node holds hash calculated from immediate child nodes. In blockchain, a
block consists of one or more transactions and its respective tree of hashes. In a distributed system, this tree
is used to maintain data consistency among all participating nodes.
Block1 Block2
Block Header Block Header
Genesis Hash (Block1)
Hash (Gen block) Nonce Nonce
Block
Root Hash Root Hash of Txn
Hash 01 Hash 23
Fig. 3: Block chain
transactions hashed in
Hash 0 Hash 1 Hash 2 Hash 3 Merkle Tree
Txn 0 Txn 1 Txn 2 Txn 3
Ledger/ Chain Database is a key-value database for a chain of serialized blocks. One block may contain
one or more transactions.
State Database is a key-value database for storing transaction state and links of its related transactions.
Criteria for adopting blockchain technology
Following are some of the questions to assess the need of blockchain technology for existing/ new applications.
Is there a need to remove intermediaries that add complexity?
In order to complete certain main business process some sort of sub process is required. For example for Loan
sanction, the applicants KYC, and Income status needs to be verified. For recruitment process, employee
verification including personal details, qualification details, experience details. Nowadays the above verifications
are outsourced to third party agencies which is time consuming and costly.
Is non-repudiation i.e., the proof that someone submitted a transaction, needed?
After transporter delivers goods or food grains to Retail shop, a transaction about the delivery on block chain
ensures that it has been delivered because it is accessible to supplier, and transporter ensures. Retailer cannot deny
the delivery and delay the payment. Some places we need to proof the financial transaction for getting Income tax
relief or other benefits.
Is tamper resistance needed?
System which ensures the transaction data can’t be tampered. In traditional system the transaction data can be
tampered whereas the same is in block chain, it is very difficult because of its immutable property.
Does data need to be shared across multiple entities?
In the business process, transaction data requires to be shared among various stake holders.
Do multiple entities need to modify the data?
Suppose a business needs to be accessed by different entities and modify. Need a complete trace of what has been
modified and by whom.
_____________________________________________________________________________________________
Comparison between Blockchain Platforms
Hyperledger Sawtooth Hyperledger Ethereum Quorum
Fabric
Type based on Private Private Public Private
availability to user
Sector focus Any Any Any Financial
Consensus Proof of Elapsed Time Proof of Stake Proof of Work Raft
Multi-tenancy Using Family Using Channels Not Supported Not Supported
Language support Python, GO, Java, Nodejs, Python, GO, Java, Solidity Solidity
C++ NodeJs
Throughput ~2000tps ~2000tps ~ 500tps ~ 100tps
Security PKI based, Supports PKI based , Supports
Access Control policies Access Control Need to encrypt the PKI based
policies and network data
security
Scalability Scalable, Performance Scalable, Scalable,
depends on consensus Performance depends Performance depends
algorithm and number of on consensus on consensus Scalable.
nodes. algorithm and algorithm and, block
number of nodes. size and compute
power.
Project type and Open source and Open source and Open source
maintainer maintained by Intel maintained by IBM Open source maintained by
JP Morgan
Conclusion
While selecting the sector for adopting Blockchain technology, essential care needs to taken to assess its
suitability for the sector. Several blockchain platforms are currently available with different features.
Hence, the selection of suitable platform for an application requires detailed survey and testing. Identifying
the best platform for different classes of application requires detailed study and evaluation.