Comparison of DLT platforms
A little help to decide which platform is fitting for purpose
One of Alastria’s mission is to disseminate knowledge about blockchain technology in a total agnostic way. Now, our members are working and experimenting on three different types of networks inside the association (RedT in Quorum, RedB in Hyperledger Besu and RedH in Hyperledger Fabric).
But many of our partners wonder for the best kind of network in a particular use case. So, we have asked an open question to David Creer, Blockchain SME of our partner GFT, about this issue. David has written the following article to answer the question. We are sure you will enjoy the reading.
(you can find also an Spanish version of this article in https://medium.com/@alastria_es/comparativa-de-plataformas-dlt-2fc425c30204
GFT has more that 5 years experience working on DLT projects. As a consulting firm we have been involved in many successful projects where clients have proposed the technology choices or the client has defined this for us. As a result, our Blockchain Practice has worked with all major platforms available in the current market and has a good market vision across the board. GFT are platform agnostic and therefore presents an independent view on DLT platform advantages and disadvantages.
Please note that this comparison is a high-level guide that can be used to make platform choices and this does not represent a deep technical dive on any of the platforms mentioned. It is important to also bear in mind that this is a snapshot of these platforms at this point of time, a current view of the market, and that platform evolution is continuous and changes are constant.
For a more in depth technical or business analysis please do not hesitate to contact GFT using the contact details at the bottom of this article.
Ethereum
At GFT we started our journey with Ethereum. Ethereum is possibly the most known of all blockchains (after Bitcoin) and the first major blockchain designed to use Smart contracts, leading the blockchain 2.0 revolution.
Being a public blockchain (a permissionless network) it does not support the creation of private networks other than for testing purposes. Although the Ethereum network is generally stable and development is steady (with a large Open Source community), it is also quite saturated due to the amount of crypto-trading it now supports. Transaction costs are quite high (compared with other platforms) and the speed of transactions (per second) is generally quite low. In 2020/2021 there is a pipeline of work that will introduce sharding, a new consensus mechanism (proof of stake), and a replacement of the EVM (to EWASM) in order to try to improve performance.
Ethereum supports multiple clients that allow you to interface with the network in different ways. Currently the three major contendors in the market are Geth, Parity and Hyperldeger Besu. Geth is the most common Ethereum client and it is the traditionally used client. It handles all interaction with the Ethereum blockchain (mining, transfers, contract creation etc.) via command line and it is possible to invoke it programmatically using JavaScript. Parity is another client intended for production use cases; it is lighter than the majority of other clients and supports a high transaction throughput. The Parity client also guarantees the quality of its own code and promises that it is 100% tested and evaluated by third parties. Hyperledger Besu (previously Pantheon) is an Ethereum Java client designed for scalability and security. Hyperledger Besu allows you to apply different consensus mechanisms such as IBFT or PoW. Crucially it makes it possible to create private (permissioned) networks and supports private transactions between network participants with the configuration of node and account permissions.
Currently the only smart contract language supported by Ethereum is Solidity. Initially Solidity had some security issues with the language (which could be avoided using work-arounds), but is now quite safe and stable. It is an object oriented language which is somewhat similar to Javascript in syntax.
It is important to bear in mind that there are many forks/new versions of Ethereum, many of which are focused on quite different areas of interest. In the following section, we go into detail on one of them that GFT has extensive experience with: Quorum.
Quorum
Quorum is an Ethereum based platform focused on privacy, scalability and reduced transaction time/cost. It was created as a JPMorgan initiative, but is also an Open Source project that anyone can contribute to. Quorum networks are permissioned (private) and there is no public option available. There is some optionality however around consensus mechanisms, where you can choose between using RAFT or IBFT.
Quorum uses Solidity for smart contracts, so it had the same security issues as Ethereum (until they were resolved). There were also some complications regarding scaling the number of nodes in private networks. It should also be noted that after the initial push of commits from the open source community, in recent years, there has been less community activity and these types of issues have been left in the backlog for some time. There is heavy competition in the Enterprise Ethereum area and platforms such as BlockApps (similar to Quorum, but with a management and smart contract layer called Strato that simplifies integration and development greatly) and Pantheon (now Hyperledger Besu — Officially an Ethereum Client) share this market space.
Quorum networks can be used for a wide variety of use cases. In general, banking and exchange based projects seem to be the norm, due to the benefits in terms of the privacy it brings to processes such as payments or post trade settlement. There are also several implementations of Quorum Networks modelling supply-chain transactions, as privacy is also a key element in the supply chain network and sensor integration is relatively straight forward with a Quorum network.
Alastria actually uses Quorum in their RedT network. RedT has a distinct node configuration and is designed to use three types of nodes: validator nodes, boot nodes, and regular nodes. The validator node runs the consensus (IBFT) and accepts transactions. Boot nodes allow nodes to access the network and find other nodes deployed on the network and regular nodes are effectively client nodes. Alastria’s RedT hosts a vast amount of nodes on its network from diverse companies compared to similar networks worldwide. Currently RedT is running 12 validator nodes, 4 boot nodes, and more than 90 regular nodes in total.
Corda
Corda is a DLT, but not technically a blockchain as its persistence layer is a DAG (Directed Acyclic Graph). It is also not necessarily as decentralized as Ethereum (or bitcoin, quorum, etc.) as complete decentralisation is not the platforms main objective. Corda networks have optionality regarding distribution and centralisation due to the use of validator nodes that support transactions based on a service or validation mechanism (validator nodes manage consensus, effectively signing transactions). Due to the nature of the data layer and consensus the network is highly scalable and performant. Corda networks are also permissioned/private and permissions can be defined to determine who has access to data via smart contracts. There is range of tools, created by Corda itself that make development easier, such as Corda Modelling Notation, Corda Settler or the Corda Token SDK. In general, there is plenty of documentation and it has a fairly active community.
Compared to other networks Corda network creation and maintenance is relatively difficult, for example, operations such as adding a new node to the network are somewhat manual and there have been some internal reports in the past have questioned the privacy of the network nodes. The transactions per second level is high, but still somewhat lower than other platforms (the old DA Platform or IOTA for eg.).
Corda has an extension called Cordite (officially a cordapp) which is highly recommended if you need to create DAOs manage multicurrency operations (Standard Corda only supports one type of currency). The Corda DAML smart contract language integration is also coming soon.
Originally, Corda was created with banking use cases in mind (especially investment banking), but there as it is a generic DLT there are also plenty of supply-chain and trade finance cordapps that have been created.
Iota
IOTA is a DLT platform focused on IoT. IOTA nodes are thin, making it is possible to have an IOTA node running directly on a sensor. IOTA uses a persistence layer called The IOTA Tangle which is a type of DAG with certain minor changes. Consensus is also handled in small groups of nodes (and then roled up to the rest of the network) which means that transaction times per second are extremely low. The IOTA team is also one of the few mainstream platforms that uses quantum proof cryptography, this was however somewhat controversial at first as it is not common practice for DLT platforms to use home cooked cryptography methods (and certain bugs were found).
Until a year ago, IOTA did not support Smart contracts though this has now changed. Smart contracts can be written in the ABRA language (supported by extensions like TOQN) and run on QBriq. The implementation of tokenisation smart contract complexity is relatively limited when compared to Smart contracts languages like Solidity and DAML. Until Coordicide happens, the network is effectively centralized as a central coordinator is used to manage the network.
Cardano
Cardano is in its infancy and new and its first public testnet (Shelley) has just been made available to the public. Although it has not been long in the market we have decided to include it in this report due to the advanced features the platform offers (we think that it is likely to become one of the leading open source/free platforms in the future). It is incredibly scalable (in theory with no documented limits), and supports interoperability via side chains which collect off-chain information from other networks and systems. One of major advantages that Cardano offers is the separation of the management layer (node/network management) and logical layers(smart contracts), this makes maintenance of networks potentially much easier. It has its own Smart contracts language, called Plutus.There are however a few small issues with Cardano: First and foremost, the time it took to create the first testnet and the speed of development. It is an open source project with a fairly active community, but due to the complexity of the platform and the academic approach favouring research-led development it has been progressing slowly. The other elephant in the room is the lack of privacy in the subcontract level (there is network privacy, but there is no programmable privacy at smart contract level). If you want more privacy on a Cardano network than there is in a permissioned/private network, you would have to venture into the realms of zCash over a Cardano network, which is not a straight forward integration.
More details about Cardano here.
VMware Blockchain
Also new to the market is VMWare Blockchain. Currently in Beta, but with GA release is planned for the first quarter of 2020 it is about to make a big splash in the market. VMware actually been building its own Blockchain platform since 2015 and has released a new consensus (Concord) as Open Source development. Concord is the base for their BAAS (Blockchain As A Service) offering that will hit the market soon. Being a heavy contender in the production space we have decided to list it here.
VMware Blockchain is focused on scalability and security. Trusted VMware infrastructure is used to deploy and monitor your DLT network meaning that it is production ready out of the box. There is a cloud hosted flavour (for most cloud service providers) and an on-premises version available. It currently supports DAML and Solidity smart contract languages and there are plans also to integrate Golang Chaincode in the future. Its integrated privacy model supports subcontract privacy written in smart contracts via DAML.
Using this platform makes sense when you want a SAAS solution. Maintenance and network creation is automated for you and there will be guarantees regarding the service when it goes GA. VMware Blockchain has a cost per node, so should be used for projects that have a clear path to production and your ROI can pay for the service.
DAML and Canton
DAML is a smart contracts language that offers portability between different platforms. Currently DAML smart contracts have been integrated with Hyperledger Sawtooth and VMware Blockchain platforms, but in the future in Corda, Amazon QLDB, Hyperledger Fabric (amongst others). We mention it here because it is, perhaps, one of the most efficient and secure smart contracts language in the current market.
DAML is a functional language based on Haskell, but as it is focussed in on smart contract definition is somewhat simplified and easy to learn. One of DAML’s main selling points is that about how to interface with the network or network setup (it provides an abstraction layer for the developer). DAML is highly readable and efficient, meaning that you can usually make a smart contract with significantly less code in DAML (~75% less Solidity Smart contracts or Go Chaincode code).
Canton is the reference platform for DAML — the perfect implementation of a network that supports DAML contracts. Platform owners can download it and use it to find out how to integrate DAML with their platforms. In addition, developers may use it to experiment with DAML over Canton if the project is not destined for commercial use. It is a highly scalable platform, that supports permissioned networks and subcontract privacy and has mechanisms to comply with GDPR requirements regarding the treatment of data.
Comparison diagrams
Conclusion
There are many different types of networks available for a project. They key is choosing the platform that suits your project needs. It is therefore crucial that before you decide which platform to use, you define high level functional and non-functional requirements.
Although some platforms seem to have success in certain verticals there is clearly none that dominate the entire market. There have been some changes in the last year; VMware has entered the race now, and there is a big focus on production ready platforms. Will other large organisations (such as the major Cloud Service Providers) also follow suit? Will the tendency towards the creation of new platforms and a high quantity of forking continue for the next few years? Only time will tell… One thing that can be sure is that it doesn’t look like there will be a short-term market leader in the foreseeable future.
A successful project needs to be based on an adequate platform/network and choosing the right platform can make or break your project. At GFT we have dedicated specialists that help our clients choose their right platform for their projects and deliver globally recognised technology services. If your company needs help considering different platforms or DLT related professional services please do not hesitate to contact us.
David Creer — Blockchain SME and Innovation Consultant
https://www.gft.com/int/en/index/discovery/gft-specialists/david-creer/
Please, if you have any other article you want to share in the Alastria Community to help us to clarify the usage of DLT/Blockchain networks, let us know in communication@alastria.io.