This article introduces some popular open source platforms that help in quick and easy development of blockchain-based applications.
Blockchain technology is termed as the fifth evolution of computing. Blockchain is regarded as a novel approach towards distributed databases. It is a disseminated database of open records that 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 the bank or credit card company.
The same process applies to other application domains like games, software and so on. 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.
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.
Blockchain is a distributed database solution that maintains a growing list of data records that are confirmed by the nodes participating in it. 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 a third party.
Blockchain is secure by design and includes 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. Till date, Bitcoin is the most commonly used application using blockchain.
The invention of 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. It is a decentralised digital currency payment system that consists of a public transaction ledger called blockchain.
There are many different kinds of blockchains, explained as follows:
Public blockchain
It is like Bitcoin, a large distributed network that runs through a native token. It is open for the public to participate at any level and has open source code that the community maintains.
Permissioned blockchain
Permissioned blockchain like Ripple controls roles that individuals can play within the network. It is a large and distributed system that uses a native token. Its code may or may not be open source.
Private blockchain
Private blockchain tends to be smaller and does not use a token. Its membership is closely controlled. This type of blockchain is favoured by consortiums that have trusted members and trade in confidential information.
All the above blockchains use cryptography to allow each participant on any given network to manage the ledger in a secure way, without the need for any central authority to enforce the rules.
Underlying principles of 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 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, records cannot be altered because these are linked to every transaction record that is previously recorded. Various types of computational algorithms and proposed approaches are deployed to ensure that 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 Blockchain works
Blockchain is a new concept when compared to traditional financial practices and involves 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
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 Blockchain domain, both A and B are in the form of cryptographic keys holding unique public and private keys. 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 time-stamp, 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 Bitcoin in return.
Verification
Once the transaction is confirmed, blocks are time-stamped and coupled together with previously verified blocks present in the blockchain. Once the process is complete, B receives the amount from A.
Open source Blockchain platforms
Blockchain technology was first used for financial transactions, but now 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 more.
A number of commercial and open source platforms provide the framework for creating applications that support 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. It is different from Bitcoin in terms of capability and purpose. Bitcoin blockchain is used to track ownership of digital currency, while Ethereum blockchain mostly focuses on running the programming code of any decentralised application.
In Ethereum, Ether is a crypto type, which is the heart of the network. It is used by application developers to pay transaction fees and services on Ethereum network.
Ethereum is made up of the following components:
- Ethereum virtual machine (EVM) is a 256-bit register stack that is completely sandboxed and isolated from the network, file system or other processes. Every node runs an EVM and executes the same instructions.
- Smart contracts are high-level programming abstractions compiled to EVM byte code and deployed to Ethereum blockchain for execution. These are programmed using various languages like Solidity, Serpent, LLL and Mutan.
- Ethereum has almost 50 per cent of the market share and more than 250 live decentralised applications (DApps), which are used for digital signatures, stock market predictions, gaming, social media and other applications.
- It makes use of Merkle trees to improve scalability and optimise transaction hashing.
Latest version: 0.10.0
Hyperledger
Hyperledger is an open source collaborative effort hosted by Linux Foundation. It does not support Bitcoin or any other cryptocurrency. The objective of Hyperledger is to advance cross-industry collaboration by developing blockchain and distributed ledgers, with a focus on improving performance and reliability of these systems as compared to traditional cryptographic designs—to make these capable of supporting global business transactions by major technology, finance and supply chain companies. Fig. 2 highlights Hyperledger reference architecture.
The following are some Hyperledger frameworks:
- Hyperledger Sawtooth is a modular blockchain suite developed by Intel, which makes use of the consensus algorithm called Proof of Elapsed Time (PoeT).
- Hyperledger Iroha is a project of some Japanese companies to create an easy-to-implement framework for blockchain.
- Hyperledger Fabric was 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 develops a permissible smart contract machine along the specifications of Ethereum.
Some popular tools of Hyperledger are listed below.
- Caliper is a benchmarking tool that allows users to measure the performance of specific blockchain implementations with a set of predefined use cases.
- Cello blockchain module toolkit brings the on-demand as-a-service deployment model to the blockchain ecosystem to reduce the effort of managing and destroying blockchain.
- Composer creates smart contracts and applications to solve complex business problems.
- Explorer is a user interface to view, deploy and query blocks, transactions, chain codes as well as other relevant information in the ledger.
- Quilt is a payment protocol developed to transfer value across distributed and non-distributed ledgers.
Official website: click here
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 service built on top is 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 blockchain, Corda ensures minimal information leaks by sharing transaction data only with participants who require it. It maintains confidentiality and provides encryption to client data.
As a smart contract platform and host of distributed apps called DApps, Corda 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. 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: click here
Latest version: 3.1
HydraChain
HydraChain is an open source blockchain platform designed by Brainbot Technologies and Ethereum Project. It is regarded as an extension to 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. Smart contracts are designed using Python programming language. In HydraChain network, all blocks are not allowed to enter the network without proper validation; a block can only be added with a proper validator’s signature. Once the block enters the network, it becomes persistent with no reverts.
HydraChain platform provides the following components in a blockchain:
- Transaction cost, which is the cost of executing computational steps in a transaction. In HydraChain, cost is calculated on the basis of requirements.
- Gas limits, which are basic units for transactions executed in blockchain. Every transaction is sub-divided into opcode, and every opcode has specific gas units based on opcode type.
- Genesis allocation, which is related to the hashing and mining capacity of blockchain.
- Block time, which is the time delay between mining or validation of two blocks.
Official website: click here
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 build their own blockchains. It offers users 45 customisable parameters and changeable protocol-level restrictions.
Following are some unique features of MultiChain:
- 1000 transactions per second
- Dynamic control over connections, send and receive transactions, asset creation, streams and blocks
- Cross-chain applications and users can issue millions of assets on blockchain
- Highly developer-friendly and fully customisable
- Extends Bitcoin protocol, formats and APIs including full multi-signature support
- Ideal for data sharing, encryption archiving and time stamping
Official website: click here
Latest version: 1.0.4
Openchain
Openchain, a distributed ledger based on open source technology, is specially designed for organisations to issue and manage digital assets in a highly scalable, secured and robust manner. Openchain does not make use of the concept of blocks—transactions are directly chained to one another. Transactions get linked to the chain at the same time that these are submitted to the network.
This is how it works:
- There is a single authority for validating transactions for every Openchain instance.
- Rather than having 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 transactions.
There are three modules of Openchain blockchain, as follows:
- Storage engines, which are the core components. Their primary task is to store transaction chains and records. Modules include Openchain.Sqlite, Openchain.SqlServer, Openchain.MongoDB and more
- Validation engines
- Anchoring media
Official website: click here
Latest version: 0.7
Elements
Elements, being an open source collaborative project, was designed to bring advanced technological improvements to Bitcoin. 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 proof-of-work (POW) mining algorithm with 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 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 (under development)
Official website: click here
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 high speed and throughput in terms of processing private transactions and a permissioned group of known participants.
It has been designed to overcome many of the key challenges of the financial industry. Being an extension to Ethereum, it basically modifies some part of Ethereum core, and integrates all updates of Ethereum without any hiccups.
Quorum supports:
- Privacy at transaction level and maintains a wide, transparent network; is highly customised as per the requirements of the business
- Institutional transaction volumes
Following libraries have been designed especially for Quorum:
- Quorum Blockchain Explorer, which supports viewing of private transactions.
- Quorum-Genesis—a simple CL utility for Quorum to help populate the genesis file with voters and makers.
- Quorum Maker—a utility to create Quorum nodes.
- QuorumNetworkManager, which makes creating and managing Quorum networks easy.
- ERC20 REST service—a Quorum-supported RESTful service for creating and managing ERC-20 tokens.
- Nethereum Quorum—a .NET Quorum adapter.
- web3j-quorum—an extension to web3j Java library, which provides support for Quorum API.