A Study of Various Open Source Blockchain Platforms

0
5003

Blockchain platforms are important because they can be used in e-governance, eliminate middle men, and secure the confidence of businesses. Get acquainted with the various blockchain platforms in this interesting article.

The term ‘blockchain technology’ typically refers to the transparent, trustless, publicly accessible ledger that securely transfers the ownership of units of value using public key encryption and proof of work methods. The technology uses decentralised consensus to maintain the network, which means it is not centrally controlled by a bank, corporation or government. In fact, the larger the network grows and becomes increasingly decentralised, the more secure it becomes. Blockchain technology is picking up at a fast pace nowadays. The technology that emerged in 2009 as the underlying platform for Bitcoin exchange has now evolved into a mainstream technology. It finds application in various fields like healthcare and finance. Many companies venturing into this domain are developing blockchain based applications that help in making business operations more transparent and efficient.

Figure 1: Pillars of blockchain platforms

What exactly is blockchain?

At the most basic level, blockchain is just a chain of blocks, but not in the traditional sense of those words. When we use the words ‘block’ and ‘chain’ in this context, we are actually talking about digital information (block) stored in a public database (chain).

Blocks on the blockchain are made up of digital pieces of information and they have three main parts.

Part 1: Blocks store information about the transaction like the date, time and amount involved in the transaction of the recent purchase.

Part 2: These blocks store information about the participants in the transactions. For example, a block for purchase of some items from Amazon would record the name along with other information to amazon.com. Instead of using the actual name, the purchase is recorded without any identifying information using a unique ‘digital signature’ like a sort of user name.

Part 3: Blocks store information that distinguishes them from other blocks, much like names of people, and each block stores a unique code called a hash that allows every block to be different from the other. Hashes are the cryptographic codes created by special algorithms.

Figure 2: Ethereum architecture

Blockchain variants

Public: The ledgers of these blockchains are visible to everyone on the Internet. They allow anyone to verify and add a block of transactions to the blockchain. Public networks have incentives for people to join and are free for use. Anyone can use a public blockchain network.

Private: Private blockchains exist within a single organisation, allowing only specific people of the organisation to verify and add transaction blocks. However, everyone on the Internet is generally allowed to view.

Consortium: In this blockchain variant, only a group of organisations can verify and add transactions. Here, the ledger can be open or restricted to select groups. A consortium blockchain is used across organisations. It is only controlled by pre-authorised nodes.

Pillars of blockchain platforms

When there are many public and private blockchain platforms available in the marketplace, one has to carefully choose a suitable option based on one’s requirements. This has to be evaluated based on the pillars of the blockchain platform as listed below:

  • Decentralised network
  • Platform security
  • Immutability of the record state

Decentralised network: One of the key architectural principals of the blockchain platform is its decentralised nature. This means the transaction in the blockchain network is copied across all the nodes of the network and all the nodes are connected. This blockchain platform is highly reliable as there is no possibility of tampering with the transaction record because it is copied to all the nodes — and tampering with all the nodes in the network is practically impossible at any given time.

Platform security: Though the blockchain platform is decentralised in nature with many users being a part of the workflow process and participating in the various stages of executing the transaction, there is a higher level of security ensured in any blockchain platform due to its decentralised nature and multi-node record copy. Also, different blockchain platforms ensure higher levels of platform security like permissionless ledgers, the consensus algorithm, usage of cryptocurrency for transactions and the smart contract facility, to name a few.

Figure 3: OpenChain’s platform architecture

Record immutability: In any blockchain platform, the decentralised network and ledger copied across all the nodes of the network ensures that all the records kept in the ledger for any transaction are secure enough so that a change in a record is accepted only if it’s accepted by all participants across nodes, thus changing the record unanimously across all the ledger copies in the network. This ensures that the records in the transaction processing stages are immutable in nature. Any correction in the record is amended as a new transaction processing stage in the network, thus ensuring all the record processing transaction stages are kept as distinct entries in the ledger.

Blockchain platforms

Blockchain platforms assist us in creating applications that implement the concepts of blockchain. Every person or company does not have either the resources or the time to develop their own blockchain from scratch, and hence these companies leverage blockchain platforms developed by tech giants for faster and easier application development. Any organisation deciding to implement blockchain may choose from the prominent frameworks available, i.e., Ethereum, Hyperledger Fabric, Quorum, Corda, Ripple, etc. The final decision should be based upon the suitability of each, to the organisation. Let’s now discuss the most popular open source blockchain platforms.

Figure 4: BigChainDB architecture

Ethereum

Ethereum (a public blockchain network) was developed by Vitalik Buterin and is considered an efficiently developed platform that has smart contract features, flexibility and multi-industry adaptability. Ethereum acts as a base component in building and developing most of the decentralised applications. ERC20 is the most popular token standard among cryptocurrencies. Stability, security, corruption prevention and zero downtime are some of the benefits offered by Ethereum over other applications.

The Ethereum network has two types of accounts, namely:

  • External accounts
  • Contract accounts

Both  are referred to as ‘state objects’ and comprise the ‘state’ of the Ethereum network, i.e., every state object has a well-defined state. For external accounts, the state comprises the account balance while for contract accounts, the state is defined by the memory storage and balance.

Figure 5: Hydrachain architecture

How Ethereum is different

  • Ethereum offers greater transparency as compared to Hyperledger.
  • The flexibility of the platform allows any developer to create applications using an inbuilt programming language.
  • Having ‘Ether’ as a built-in cryptocurrency provides a competitive edge to Ethereum applications over Hyperledger and Corda in use cases that require cryptocurrency.

Key highlights

  • Activity: Highly Active on GitHub
  • Type of network: Public, smart contract based
  • Pricing: For transactions and for computational services
  • Supported languages: Python, GO, C++
  • GitHub repo: pyethereum (Python); gpethereum (GoLang); cpp-ethereum (C++)

OpenChain

OpenChain is an open source distributed ledger technology. It is suited for organisations wishing to issue and manage digital assets in a robust, secure and scalable manner.

Figure 3 explains the architecture blocks of the OpenChain platform, which contains multi-layer components for consensus, ledger and platform services, and supports membership services to handle workflow and permissioned transaction management.

  • Anyone can spin up a new OpenChain instance within seconds.
  • The administrator of an OpenChain instance defines the rules of the ledger.
  • End users can exchange value on the ledger according to those rules.
  • Every transaction on the ledger is digitally signed, like with Bitcoin.

How OpenChain is different

  • Tokens on OpenChain can be pegged to Bitcoin, making it a side chain.
  • Has smart contract modules and unified API.
  • Assigns aliases to users instead of using base-58 addresses.
  • Multiple levels of control and an hierarchical account system allowing permissions to be at any level.
  • Ability to have multiple OpenChain instances replicating from each other.

Key highlights

  • Activity: Medium active on GitHub
  • Type of ledger: Distributed ledger technology and is private
  • Pricing: Open source
  • Supported languages: JavaScript
  • GitHub repo: Openchain-js

BigChainDB

BigChainDB is built from a federation of enterprise-ready database nodes, such as MongoDB instances, which store immutable information about assets in a synchronised manner.

BigChainDB is a MongoDB database that uses Tendermint to obtain its blockchain features. A BigChainDB network may be public, private or permissioned, according to the access permissions entities have over the system. In a public BigChainDB, any participant is able to access the network or deploy that participant’s own MongoDB+Tendermint node and connect it to the database federation, while a permissioned BigchainDB could be managed by a consortium or a governing entity, where every member of the consortium manages their own node in the network and no one can join without permission.

BigChainDB’s transaction model is analogous to that of Bitcoin as shown in Figure 4, in the sense that an asset transaction receives an asset input, which is then transformed to an output that may be used in the future as an input for a new transaction. Asset outputs can only be used once as input for a transaction. There are two types of transactions in BigChainDB, as given below.

Figure 6: Corda architecture

Create transactions generate a new asset in the system (as a JSON document in MongoDB) with two types of information in it. These are asset information, which is immutable and can’t be modified once the asset is created; and metadata, which can be modified through subsequent transfer transactions.

Transfer transactions allow the transfer of ownership of an asset or the modification of the metadata. The only one entitled to perform this transaction over an asset is its owner. These transactions use as input an unused output of the asset, generating as a result a new output with the corresponding modifications.

Key highlights

  • Activity: Active on GitHub
  • Type of ledger: Multi-ledger integration
  • Pricing: Open source
  • Supported languages: JavaScript and Python
  • GitHub repo: bigchaindb

HydraChain

HydraChain, an extension of the Ethereum platform, is fully compatible with the Ethereum Protocol on an API and contract level. It supports distributed ledgers and private chains, which are mainly set up for the financial industry. The infrastructure of HydraChain allows users to develop smart contracts in Python, which can improve development and debug efficiency enormously.

HydraChain has a well-defined configuration system, as shown in Figure 5, which provides flexible customisation adjustments such as transaction fees, gas limits, genesis allocation or block time.

Features

  • Fully compatible with the Ethereum Protocol
  • Accountable validators and native contracts
  • Fully customisable, easy to deploy, and open source with commercial support available

Key highlights

  • Activity: Low but actively updated on GitHub
  • Type of ledger: Private
  • Pricing: Open source
  • Supported language: Python
  • GitHub Repo: Hydrachain (Python)

Corda

Corda is an open source blockchain platform that enables businesses to transact directly and in strict privacy using smart contracts, reducing transactions and record-keeping costs while streamlining business operations. In a world of permissionless blockchain platforms, in which all data is shared with all parties, Corda’s strict privacy model allows businesses to transact securely and seamlessly, as shown in Figure 6.

R3 delivers two interoperable and fully compatible distributions of the platform – Corda, a free download based on the code available on GitHub; and Corda Enterprise, an enterprise blockchain platform that offers features and services fine-tuned for modern-day businesses.

Corda provides three main tools to achieve global distributed consensus:

  • Smart contract logic, which specifies constraints that ensure state transitions are valid according to pre-agreed rules, described in the contract code as part of CorDapps.
  • Uniqueness and timestamping services known as notary pools to order transactions temporally and eliminate conflicts.
  • A unique component called the flow framework, which simplifies the process of writing complex multi-step protocols between multiple mutually distrusting parties across the Internet.

Key highlights

  • Activity: Actively updated on GitHub
  • Type of ledger: Distributed
  • Pricing: Open source
  • Supported language: Kotlin
  • GitHub repo: Corda

MultiChain

MultiChain technology is a platform that helps users to establish a certain private blockchain that can be used by organisations for financial transactions. A simple API and a command-line interface are what MultiChain provides us. This helps to preserve and set up the chain.

MultiChain is for creating new blockchains with their own native currencies and/or issued assets. Users cannot transact existing cryptocurrencies on MultiChain unless someone trusted acts as a bridge in the middle, holding some cryptocurrency and issuing tokens on MultiChain to represent it as shown in Figure 7.

MultiChain is an off-the-shelf platform for the creation and deployment of private blockchains, either within or between organisations. It aims to overcome a key obstacle to the deployment of blockchain technology in the institutional financial sector, by providing the privacy and control required in an easy-to-use package. 

Key highlights

  • Activity: Medium but actively updated on GitHub
  • Type of ledger: Private, permissioned
  • Pricing: Open source
  • Supported languages: Python, C#, JavaScript, PHP, Ruby
  • GitHub repo: savior (Python); c# MultichainLib (C#); Multichain-Node (JavaScript); libphp-multichain (PHP); multichain-client (Ruby)
Figure 7: MultiChain architecture

Functionality

The functional architecture of the blockchain platform is based on various consensus algorithms, which are used as the basis of the platform execution mechanism. These include the following.

Proof of Work (PoW): This is the original type of consensus algorithm from Satoshi Nakamoto’s first research on blockchain. This algorithm is used as a mechanism to confirm the transaction completeness and if successful, a new block gets added to the chain of network. This helps any Distributed Denial of Service (DDoS) network attacks.

Proof of Stake (PoS): Since PoW involves a lot of system resources like GPU, it is an advanced mechanism suitable for sophisticated blockchain networks. PoS solves the challenge of this high resource usage by using an algorithm based on distributed tokens and static coin supply.

Deleted Proof of Stake (DPoS): This is an extended version of PoS. The PoS is like a lottery mechanism based on the coin stake of the users and DPoS is based on influencing the network by all stakeholders equally. It is based on an algorithm approach that balances electing a list of nodes by any stakeholder to complete the transaction.

There are other consensus mechanisms like Practical Byzantine Fault Tolerance (PBFT) and Directed Acyclic Graph (DAC), which are evolving in the Blockchain 3.0 wave (Blockchain 1.0 is Bitcoin architecture and Blockchain 2.0 is Ethereum consensus architecture). They are getting implemented in platforms like HyperLedger and Ripple.

When any transaction happens in a blockchain platform, it gets validated either by permissionless or permissioned blockchain. In permissionless blockchains, the transaction is validated by the public, who are participants in the network and hence the transaction processing rate is higher at any given time. In permissioned blockchain, the transaction is validated by a selected group of participants and approved by the blockchain owner or approver.

Figure 8: Comparison of open source blockchain platforms

The table in Figure 8 compares various features and architectural points of the blockchain platforms like security, support, community activity, limitations in platform support, industry-focus of the solution and the type of ledger used in the platform, as well as the functionality supported.

LEAVE A REPLY

Please enter your comment!
Please enter your name here