Since the phenomenal rise in the value of the cryptocurrency Bitcoin, which uses a blockchain for accounting, there has been a tremendous interest in blockchain technology. A blockchain is a transparent distributed ledger which is revolutionising the financial services industry by empowering millions across the globe to authenticate and transact immediately, without the involvement of expensive intermediaries. This article introduces a few popular open source platforms that help in the quick and easy development of blockchain based applications.
Blockchain technology is termed as the ‘Fifth Evolution’ of computing. A blockchain is regarded as a novel approach to distributed databases. It is a disseminated database of open records which documents all transactions or advanced events that have been executed prior to that point in time when it is shared among participating members. Every transaction in the public record is confirmed by agreement by a larger number of members within that framework.
These days, transactions between persons or companies are often centralised and controlled by a third party organisation. Making a digital payment or currency transfer requires a bank or credit card provider as the middleman to complete the transaction. In addition, a transaction attracts a fee from banks or credit card companies. The same process applies to other application domains like games, software, etc. The transaction system is centralised, and all data and information are controlled and managed by a third party organisation, rather than the two principal participants in the transaction. Blockchain technology has been developed to solve this issue.
A blockchain is a data structure that makes it possible to create a digital ledger of data and share it among a network of independent parties. The ultimate goal of blockchain technology is to create a decentralised environment where no third party is in control of the data and the transactions. A blockchain is a distributed database solution that maintains a growing list of data records that are confirmed by the nodes participating in it. The data is recorded in a public ledger, which includes all the information about every transaction ever completed. This information is shared and available to all nodes. This, in turn, makes the blockchain system more transparent and leaves no room for third parties.
Blockchains are secure by design and include sophisticated distributed computing systems with high Byzantine Fault Tolerance. Blockchain technology was invented by Satoshi Nakamoto in 2008 to serve as a public transaction ledger of the cryptocurrency called Bitcoin. The invention of the blockchain for Bitcoin made it the first digital currency to solve the double-spending problem without any need for a centralised server or third party trusted authority.
Till date, Bitcoin is still the most commonly used application using blockchain technology. Bitcoin is a decentralised digital currency payment system that consists of a public transaction ledger called a blockchain.
There are many different kinds of blockchains.
- Public blockchain: Public blockchains are like Bitcoins, which are large distributed networks that are run through a native token. They are open for the public to participate at any level and have open source code that the community maintains.
- Permissioned blockchains: Permissioned blockchains like Ripple control roles that individuals can play within the network. They are still large and distributed systems that use a native token. Their code may or may not be open source.
- Private blockchains: Private blockchains tend to be smaller and don’t use a token. Their membership is closely controlled. These types of blockchains are favoured by consortiums that have trusted members and trade in confidential information.
All the above blockchains use cryptography to allow every participant on any given network to manage the ledger in a secure way, without the need for any central authority to enforce the rules.
The underlying principles of the blockchain
The following are the five basic principles underlying the technology.
- Distributed database: Every participant on the blockchain has access to the entire database and its complete history. No single participant controls the data or information and every one of them can verify the records of the transaction partners directly, without any intermediary.
- Peer-to-peer transmission: Communication occurs directly between peers instead of through a central node. Every node stores and forwards information to all the other nodes.
- Transparency with pseudonymity: Every transaction and its associated value is visible to anyone with access to the system. Every node or user on a blockchain has a unique 30+ character alphanumeric address that identifies it. Users can choose to remain anonymous or provide proof of their identity to others. Transactions take place between blockchain addresses.
- Record irreversibility: When the transaction is entered in the database and the accounts are updated, the records cannot be altered because they are linked to every transaction record that is previously recorded. Various types of computational algorithms and proposed approaches are deployed to ensure that the recording on the database is permanent, ordered in proper sequence and available to all others on the network.
- Computational logic: Because of the digital nature of the ledger, blockchain transactions cannot be tied to computational logic and programmed. So, users can set up algorithms and rules that automatically trigger transactions between nodes.
How a blockchain works
The blockchain is a new concept when compared to traditional financial practices and can involve a series of complex steps. The following points highlight the processes in a blockchain. The first few steps are simple to understand, but the subsequent steps become complicated as transactions mature.
- Transaction initiation: In order to run any business, it is necessary to have currency transactions. For example: Party A wants to buy some goods from Party B, for which the former has to perform some cash/online transactions with the latter. Now assume that A and B are Bitcoin users. And A wants to send money to B in exchange for the goods. This is the first stage of the blockchain process.
- Identity encryption: In the blockchain domain, both A and B are in the form of cryptographic keys holding unique public and private keys. The main objective of the private key is to ensure that only that user who owns the key can access and edit any specific part of the blockchain in an exclusive manner, and no editing can be done by any other entity. As each key is modified within its own domain, it keeps the whole chain coordinated in an efficient manner.
- Block creation: When A starts and locks the transaction, a block is created, which contains encrypted information of the person who intends to transfer the money to B. It is created by combining a timestamp, all significant information as well as a digital signature to ensure that the private key of A is attached to the public key of B to transfer the amount in the form of cryptocurrency.
- Noding: After the secure encrypted block is created, it is broadcast as a message across the blockchain via all nodes attached to the network. Nodes are computers connected to a single network. Once the block is communicated to the system, the nodes are primarily responsible for confirming each entry by solving an arithmetical problem connected to it to verify and validate the block and receive Bitcoins in return.
- Verification: Once the transaction is confirmed, the blocks are time stamped and coupled together with previous verified blocks present in the blockchain. Once the process is complete, Party B receives the amount from Party A.
Open source blockchain platforms
Blockchain technology was first used for financial transactions, but nowadays, its scope is increasing rapidly. Today it is applied in a variety of industries like e-commerce, data management, energy, online voting, gaming, e-governance and many more.
A number of commercial and open source platforms provide the framework for creating applications that support a blockchain. A blockchain product must fulfil the following primary requirements:
- Create a live and distributed transactional database
- Create user identification labels for active parties
- Each transaction must be verified on an active ledger for approval
- Transactions should stop in case of any non-verification
To develop a smart mobile blockchain app, one needs to use a transaction and ledger model. For easy and quick blockchain app development, there are various open source platforms available, some of which are featured here.
Ethereum
Ethereum is an open source, public, blockchain based decentralised platform running smart contracts — applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third-party interference. It was proposed in 2013 by Vitalik Buterin and was crowdfunded online between July and August 2014.
Ethereum is a distributed public blockchain network and is somewhat different from Bitcoin in terms of capability and purpose. The Bitcoin blockchain is used to track ownership of digital currency, while the Ethereum blockchain mostly focuses on running the programming code of any decentralised application. In the Ethereum blockchain, Ether is a crypto type which is the heart of the network. Ether is used by application developers to pay transaction fees and services on the Ethereum network.
Ethereum is made up of the following components.
- Ethereum virtual machine (EVM): This is a 256-bit register stack that’s completely sandboxed and isolated from the network, file system or other processes. Every node runs an EVM and executes the same instructions.
- Smart contracts: These are high level programming abstractions compiled to EVM byte code and deployed to the Ethereum blockchain for execution. They are programmed using various languages like Solidity, Serpent, LLL and Mutan.
- Applications: Ethereum has almost 50 per cent of the market share and more than 250 live Dapps, which are used for various applications like digital signatures, stock market predictions, gaming, social media, etc.
- Performance: It makes use of Merkle trees to improve scalability and optimise transaction hashing.
Official website:
Latest version: 0.10.0
Hyperledger
Hyperledger is an open source collaborative effort hosted by the Linux Foundation and doesn’t support Bitcoin or any other cryptocurrency. The objective of Hyperledger is to advance cross-industry collaboration by developing blockchains and distributed ledgers, with a focus on improving the performance and reliability of these systems as compared to traditional cryptographic designs – in order to make them capable of supporting global business transactions by major technological, finance and supply chain companies.
Figure 2 highlights the Hyperledger reference architecture.
The following are some of the Hyperledger frameworks.
- Hyperledger Sawtooth: This is a modular blockchain suite developed by Intel, which makes use of the consensus algorithm called ‘Proof of Elapsed Time (PoeT)’.
- Hyperledger Iroha: This is a project of some Japanese companies to create an easy-to-implement framework for a blockchain.
- Hyperledger Fabric: This has been designed by IBM as a plug-and-play implementation of blockchain technology for designing high-scale blockchain applications with a high degree of flexible permissions.
- Hyperledger Burrow: This develops a permissible smart contract machine along the specifications of Ethereum.
Some of the popular tools of Hyperledger are listed below.
- Caliper: This is a benchmarking tool that allows users to measure the performance of specific blockchain implementations with a set of predefined use cases.
- Cello: This blockchain module toolkit brings the on-demand ‘as-a-service’ deployment model to the blockchain ecosystem to reduce the effort of managing and destroying blockchains.
- Composer: This creates smart contracts and applications to solve complex business problems.
- Explorer: This is a user interface to view, deploy and query blocks, transactions, chain codes as well as other relevant information in the ledger.
- Quilt: This is a payment protocol developed to transfer value across distributed ledgers and non-distributed ledgers.
Official website:
Corda
Corda is an open source distributed ledger platform for recording and processing financial agreements that support smart contracts. The objective of Corda is to provide a platform with common services to ensure that any services built on top are compatible with network participants and innovations happen faster.
Corda is the only platform offering the ‘universal interoperability of public networks with the privacy of private networks’. As compared to traditional blockchains, Corda ensures minimal information leaks by sharing transaction data only with participants that require it. It maintains confidentiality and provides encryption to client data.
As a smart contract platform and host of distributed apps called Dapps, it acts as a gateway to a network of fully interoperable Dapps for finance and commerce. These are called CorDapps.
Listed below are some of the key components of Corda.
- Node: Every node hosts Corda services and executes CorDapps using JVM and communicates using AMQP/1.0 over TLS
- Permissioning service
- Network map service
- Pluggable notary service types
- Oracle services
- CorDapps
-
Corda applications
Official website: https://www.corda.net/
Latest version: 3.1
HydraChain
HydraChain is an open source blockchain platform designed by Brainbot Technologies and the Ethereum Project. It is regarded as an extension to the Ethereum blockchain platform, and provides support to create private blockchain networks.
It is fully compatible with API level as well as contract level protocols in Ethereum, and smart contracts are designed using the Python programming language. In a HydraChain network, all the blocks are not allowed to enter the network without proper validation, and any block can only be added with a proper validator’s signature. Once the block enters the network, it becomes persistent with no reverts.
The HydraChain platform provides the following components in a blockchain.
- Transaction cost: This is the cost of executing computational steps in a transaction. In HydraChain, the cost is calculated on the basis of requirements.
- Gas limits: These are basic units for transaction executed in a blockchain. Every transaction is sub-divided into ‘opcode’ and every opcode has specific gas units based on the opcode type.
- Genesis allocation: This is related to the hashing and mining capacity of the blockchain.
- Block time: This is the time delay between mining or validation of two blocks.
Official website: http://www.brainbot.com/projects.html
Latest version: 0.3.0
MultiChain
MultiChain is an open source blockchain platform that enables user based networks to supposedly perform 1000 financial transactions per second. It enables enterprises to build and implement blockchain applications with speed. It is specially designed for customers with requirements similar to what Bitcoin offers but with special features for corporate entities. With MultiChain, banks can even build their own blockchains. It offers users 45 customisable parameters and changeable protocol-level restrictions.
The following are some of the unique features of MultiChain:
1000 transactions per second.
- Dynamic control over connections, sends and receives transactions, asset creation, streams and blocks.
- Cross-chain applications and users can issue millions of assets on a blockchain.
- Highly developer friendly and fully customisable.
- Extends the Bitcoin protocol, formats and APIs including full multi-signature support.
- Ideal for data sharing, encryption archiving and time stamping.
Official website: https://www.multichain.com/
Latest version: 1.0.4
Openchain
Openchain is a distributed ledger based on open source technology and is specially designed for organisations to issue and manage digital assets in a highly scalable, secured and robust manner. Openchain doesn’t make use of the concept of blocks, and transactions are directly chained to one another. Transactions get linked to the chain at the same time that they are submitted to the network.
This is how it works:
- There is a single authority for validating transactions for every Openchain instance.
- Rather than have one single central ledger, every organisation has complete control over its respective instance and every instance connects with each other.
- Different transactions are validated by different authorities, depending on the exchange of assets.
- Every issuer of an asset has full control over the transactions.
There are three modules of the Openchain blockchain.
- Storage engines: These are the core components, and their primary task is to store transaction chains and records. Modules include Openchain.Sqlite, Openchain.SqlServer, Openchain.MongoDB, etc
- Validation engines
- Anchoring media
Official website: https://www.openchain.org/
Latest version: 0.7
Elements
Elements, being an open source collaborative project, was designed to bring advanced technological improvements to Bitcoin technology. It is a blockchain based digital currency that aims to revolutionise the loyalty rewards industry. It offers a unique platform to multiple merchants to leverage the underlying cryptocurrency technology to boost sales, visibility and customer satisfaction.
It operates on the Proof-of-Work (POW) mining algorithm with the X11-changed hashing algorithm as its POW. It provides a universal loyalty currency that can be adapted by various merchants and used by customers as per their requirements.
Components of the Elements blockchain are:
- Asset issuance
- Confidential transactions
- Segregated witnesses
- Relative time clock
- SCHNORR signatures
- New opcodes
- Signature covers value
- Deterministic pegs
- Signed blocks
- Bitmask Sighash, which is under development
Official website: https://elementsproject.org/
Latest version: 0.14.1
Quorum
Quorum is an open source extension to Ethereum created by J.P. Morgan. It supports transaction and contract privacy. It was designed especially for applications requiring a high speed and throughput in terms of processing private transactions and a permissioned group of known participants.
It has also been designed to overcome many of the key challenges of the financial industry. Being an extension to Ethereum, it basically modifies some part of the Ethereum core and is able to integrate all updates of Ethereum without any hiccups.
Quorum supports:
- Privacy at the transaction level and maintains a wide transparency network; it is highly customised as per the requirements of the business.
- Institutional transaction volumes.
The following libraries have been designed by developers especially for Quorum:
- Quorum Blockchain Explorer – This supports viewing of private transactions.
- Quorum-Genesis – This is a simple CL utility for Quorum to help populate the genesis file with voters and makers.
- Quorum Maker – This is a utility to create Quorum nodes.
- QuorumNetworkManager – This makes creating and managing Quorum networks easy.
- ERC20 REST service – This is a Quorum-supported RESTful service for creating and managing ERC-20 tokens.
- Nethereum Quorum – This is a .NET Quorum adapter.
- web3j-quorum – This is an extension to the web3j Java library providing support for the Quorum API.
Official website: https://www.jpmorgan.com/global/Quorum
Latest version: 2.0.2