Comparison of different network topologies. Centralised and decentralised networks both represent hierarchical structures which are less fault tolerant than distributed networks. In a distributed network, such as a blockchain, each node is connected to numerous other nodes making these networks robust and highly available.
While there are many potential applications, and hence many variations of blockchain technology, every implementation relies on a consensus algorithm. Consensus is the process by which a distributed blockchain is updated such that every node has an identical replica. Many consensus models have been proposed and implemented, however an empirical analysis of them is lacking. Such an empirical evaluation would be of great benefit to companies and organisations who are considering implementing different use cases involving blockchain technology. The aim of the CeADAR blockchain project is to provide an analysis of different consensus methods and blockchain implementations.
The blockchains we evaluate represent some of the most recent and popular open source implementations:
- Fabric: IBM’s submission to the Linux Foundation’s Hyperledger Project – A project focused on developing a cross-industry open blockchain standard.
- Tendermint: Focus on high throughput, low latency and short consensus time.
- Ethereum: The most popular smart contract platform and the cryptocurrency with the second largest amount of money invested in it.
CeADAR’s implementation piece for the Blockchain Project involves comparing the performance of established consensus models and blockchain implementations using the following metrics:
- Transaction throughput
- Transaction latency
- Consensus efficiency
- Compute cost: memory usage, CPU usage and network utilization
The evaluation project uses Docker to create containers running blockchain nodes. Transactions are then sent over to each node in the blockchain, simulating how transactions are sent to live blockchains. Once all the transactions have been sent, the blockchain is downloaded from each node. The results from many iterations are averaged to give an accurate measure of the metrics.
Creating a robust, secure, efficient and reliable blockchain is a difficult task. In particular, how to achieve consensus amongst validation nodes in a trustless environment is a challenging problem. It may be a good option for a company wishing to use blockchain technology to choose an existing implementation. The blockchain evaluation results are useful for anyone wishing to use or experiment with blockchain technology. The evaluation code itself may be useful for evaluating future blockchain implementations. All that would be required is implementing the necessary functions for setting up and communicating with the new blockchain.
Blockchain technology has demonstrated itself to be capable of storing and transferring value in a secure and efficient way. Therefore it may be useful in a wide variety of industries. The principle industries currently interested in blockchain technology include:
- Financial Services
- Insurance Industry
- Logistics Management
- Legal and Identity Services
Blockchain has demonstrated its potential as a disruptive technology, particularly with Bitcoin, the first blockchain implementation. While the value of Bitcoin fluctuates greatly, it currently has over $9.9 billion invested in it. It is therefore important for companies to stay informed about the current state of this technology as it has the potential to change the marketplace dramatically.
The CeADAR Blockchain Report discusses the evaluation results and also analyses the blockchain implementations from perspectives such as security, trust, transparency and privacy. In addition to this, a high level overview of blockchain technology is available, providing an introduction to the technology and its uses, both current and potential. A state-of-the-art review of available implementations as well as innovative companies and solutions in this space is also provided.
•Dr. David Haughton, UCD School of Computer Science and Informatics
•Dr. Oisín Boydell, UCD School of Computer Science and Informatics
•Dr. Brian MacNamee, UCD School of Computer Science and Informatics