This article presents the author’s choice of the best open source blockchain platforms. Of course, we realise that opinions will always differ on what is the ‘best’. But to have an argument, there must be a starting point. Perhaps readers might like to share their preferences, if they happen to be different from what is featured here.
A blockchain is basically a time-stamped series of immutable records of data that is managed by a cluster of computers and not by any single entity. Each block of data is secured and bound to the other using various cryptographic principles, thus forming a chain. There is no central authority for the blockchain network. It’s more like a democratised system with a shared and immutable ledger, with the information open for everyone to see. So we can say that anything built using blockchain technology is very transparent by its very nature, and everyone involved in it is accountable for his or her actions.
Each blockchain is a linked list that contains data and a hash pointer (a pointer containing the hash of the data as well as the address of the previous block) pointing to its previous block, and hence generating the whole blockchain. Let’s try to understand this with an example. When we book railway tickets through any mobile app or the Web, the credit or debit card company takes its commission for processing the transaction. If we consider migrating the entire ticketing system to blockchain technology, then we need to consider only the two parties in the transaction – the railway company and the passenger. Each booked ticket is a block that is continuously added to the complete ticket blockchain. Just as every monetary transaction on the blockchain is a unique, tamper-proof and independently verifiable record, so is the case with each of the booked tickets. Hence, the final ticket blockchain is nothing but a record containing all transactions for, say, the entire train network or a certain train journey, comprising every ticket sold.
The most important part here is that all of this includes just the blockchain setup cost and the rest is free. Not only can the blockchain technology help us transfer and store money, it can also replace all the processes and various business models that rely on charging a small transaction fee. The blockchain is really a simple yet ingenious way of passing different information from A to B in an automated and safe manner. Falsifying any single record would mean falsifying the complete chain in millions of instances, which is virtually impossible. Bitcoin, the pioneering blockchain based cryptocurrency, uses the same model for various monetary transactions.
The pillars of blockchain technology
Here are the three significant properties of a blockchain that have made it a preferred technology in the market.
Decentralisation: Before Bitcoin came into existence, we were more used to a model in which we solely interacted with a centralised entity that stored all the data, in order to extract whatever information we required. As we all know, such centralised systems do have a few vulnerabilities associated with them, like being easy targets for hackers, difficult to upgrade, no proper backup if the system shuts down, etc. Considering all this, the concept of decentralised systems was introduced. In such systems, the information is not stored by a single entity. Everyone in the network is the owner of the information. If the first party of the system wants to interact with the second one, both can directly interact with each other without the intermediary third centralised entity. In the case of Bitcoins, we can send our money to anyone on the chain without having to go through a bank.
Transparency: One of the most misunderstood concepts about blockchain technology is transparency. Some of us understand that a blockchain gives us privacy while some of us consider it as transparent. In a blockchain, a everyone’s identity is masked by complex cryptography and is represented by their public address only. So if we look at a person’s transaction history in a blockchain, we will not see something like ‘Bob sent US$ 100’ but instead, we will see something like 1MF1bhsFLkBzzz9vpFYEmvwT2TbyCt7NZJ sent $100. So, while the person’s real identity is not revealed, we can still look at all the transactions that person has done using his or her public address.
This level of transparency never existed before within any financial system. If we consider this from a cryptocurrency point of view, we can simply pop the public address of a user in an explorer and look at the list of all the transactions that the person has engaged in, provided we already know the public address. This is what forces different companies using this technology to be honest.
Immutability: Immutability means that once something is entered into the blockchain, it cannot be tampered with. The blockchain supports this property as it stores data using the cryptographic hash function. Hashing refers to the process of taking an input string (of any length) and giving out a fixed-length output string. In case of cryptocurrencies like Bitcoin, different transactions are taken as inputs, and then run through a specific hashing algorithm that generates outputs of fixed length.
This makes the blockchain so amazingly reliable. If a hacker attacks and tries to change the data of any specific block, then it will impact the data present in all previous blocks as all the blocks are interlinked through their addresses, hence changing the whole blockchain drastically.
This is what keeps the blockchain immutable.
Types of blockchain technologies
There are three different types of blockchain technologies.
Public blockchain: Public blockchain protocols are based on the Proof of Work (PoW) consensus algorithms and are available as open source. Anyone can participate in these without permission. Everyone can download the code and start running any of the public nodes on their local device to validate various transactions in the network. This process helps in determining the state of different blocks that get added to the chain. Anyone in any part of the world can send their transactions through this network, and can expect to see them included in the blockchain if they are valid. Also, anyone can read the transaction on a public block explorer. All the transactions are transparent but anonymous. This process doesn’t incur much infrastructure cost. For example, Bitcoin, Ethereum, etc, fall under the public blockchain category.
Consortium blockchain: Consortium or federated blockchains always operate under the control of a group. In comparison to public blockchains, they do not allow just any person with Internet access to participate in the process of transaction verification. They are faster, more scalable and even provide more transaction privacy. Consortium blockchains are widely used in the banking sector. Here, the consensus process is in the control of a pre-selected set of nodes. The right to read the complete blockchain may be public, or may be restricted only to the pre-selected participants. This kind of blockchain reduces data redundancies and the associated transaction costs, hence simplifying the document handling process. It also helps in getting rid of the semi-manual compliance mechanisms. For example, EWF (from the energy sector) and R3 (in banking) are blockchains that fall under the consortium category.
Private blockchain: Private blockchains contain different groups and participants who can easily verify various transactions internally. Here, write permissions are kept centralised within just one organisation whereas read permissions might be public or restricted to a certain extent. For instance, database management and auditing applications are always internal to a single company, so public readability may not be necessary at all, in certain cases. In some cases, public audit permissions may be desired. Private blockchains are really valuable for their efficiency and security against fraud within various financial institutions. For example, MONAX, Multichain, etc, are private blockchains.
Listed below are some of the best open source blockchain platforms.
This is an open source blockchain platform that helps in running smart contracts and provides different programming tools to create them. It was proposed by Vitalik Buterin in the year 2013. It is a distributed public blockchain network that enables developers to build and deploy various types of next-generation decentralised applications easily. Ethereum helps in designing and issuing cryptocurrencies and tradeable digital tokens. We can even create our own democratic autonomous organisation using the Ethereum blockchain, which generally focuses on running the programming code for any decentralised application.
1. Helps in tracking ownership of digital currencies.
2. Supports different command line tools (like built-in Go, Python, C++, Java, etc).
3. Provides the Ethereum wallet.
4. Enables developers to hold and protect their crypto-assets.
5. Simplifies smart contract development.
1. Any third party cannot update or make any changes to the data.
2. It is corruption- and tamper-proof, making censorship impossible.
3. Provides high security. Applications in Ethereum are well protected against any hacking attacks or fraudulent activities.
4. Zero downtime as applications never go down.
This is an open source distributed ledger system that is designed for storing large data sets, and enabling its developers to deploy various blockchain Proofs-of-Concepts and applications. The important thing about BigchainDB is that it’s based on a production-ready database. This makes it really appealing for deployment in production without any need to wait for the rest of the blockchain platforms to catch up. The network of BigchainDB can be public, permissioned or private, as per the access permissions that entities have over the system. In the case of a public BigchainDB, any of the participants can have access to the network or can deploy their own node and connect it to the database federation. A permissioned version can be managed by a consortium or any governing body whereby each member of the consortium is responsible for managing his or her own node in the network.
1. It has the ability to deploy a decentralised system using various production-ready technologies.
2. BigchainDB is built using a federation of enterprise-ready DB nodes, like MongoDB instances, that store immutable information about assets in a synchronised manner.
3. Supports custom digital assets and also helps in establishing access permissions at a transaction level.
4. High speed transaction processing.
5. Low latency.
6. Powerful query functionality.
1. Available as open source.
2. Highly customisable.
3. Permissions can be set at the transaction level to enforce selective access.
4. It is a decentralised system and hence there is no single point of control or a single point of failure either.
This is an open source extension of the Ethereum blockchain platform that helps in developing and deploying different permissioned distributed ledgers. HydraChain is compatible with the Ethereum protocol and also provides the infrastructure to develop smart contracts in Python. It supports many tools and hence helps to reduce development time and improve debugging capabilities. It also provides a high level of customisation — different aspects of the system can be easily configured to achieve customer needs.
1. It is highly compatible at an API and contract level. All the existing toolchains used to develop or deploy smart contracts can easily be used again.
2. HydraChain relies on registered and accountable validators that propose and validate the order of different transactions.
3. It supports Instant Finality.
4. HydraChain provides the infrastructure to develop various smart contracts in the high-level language, which reduces development times and improves debugging capabilities. This also increases the execution of native contracts.
5. Many aspects of HydraChain can be easily configured to match the customers’ needs.
6. It supports easy deployment. A test network can be set up with almost zero configuration.
1. Available as open source.
2. Different support plans and consulting options are provided as per customer requirements.
3. Easily scalable to support multiple linked chains in the same process.
4. High level of transaction privacy.
Corda is one of the preferred open source blockchain platforms for building and developing various permissioned distributed ledger systems. It was created by the R3 consortium, which comprises the largest banks and allows them to manage all the legal agreements between parties. It can be used by diverse businesses like financial institutions in order to keep a shared ledger of all the transactions, hence removing the need for all the involved parties to constantly keep a check on their books after they interact with each other. This is one of the primary problems for which Corda was developed. Similar to other blockchain platforms, R3 Corda also provides safe data storage and immutable records of data. One of the significant things about Corda is that it enables us to develop interoperable blockchain networks that can transact in strict privacy. At the moment, it is probably the only distributed ledger platform that has got a pluggable consensus.
1. The entire transaction history on the Corda ledger is completely encrypted and is shared only with the required.
2. All the different versions of Corda can easily interoperate with each other on the Corda network.
3. Corda is really agile. It is a flexible platform that can scale itself to meet all business needs.
4. It is an open source platform that can deliver a suitable blockchain for any business.
5. It is backed by a robust community of experts who are continuously working on its enhancements, functionalities, features and more.
1. As Corda is available as open source, its source code is also available on GitHub under an Apache 2 licence.
2. A highly flexible and agile platform.
3. Easily scalable to meet customer needs.
4. Supported by an expert community of developers.
The author is a B. Tech in electronics and instrumentation engineering. He works on various software automation testing tools and on Android application development. He is currently working as an automation test engineer at Infosys, Pune. He can be reached at firstname.lastname@example.org.