Blockchain technology is now very popular because it provides a new tool to solve problems in a way people could not before. When people think of blockchains, they most likely think of Bitcoin, the most well-known implementation of a blockchain. There are many other blockchain implementations as well.
Some of them are still in development, while others are currently running. Different implementations will vary in many ways such as their purpose, ease of participation, how governance is handled, and much more. To determine which blockchain implementation should be leveraged for a given application, it is important to be familiar with the differences between each implementation.
Possibly the most important consideration for a blockchain implementation is its purpose. This seems obvious, but is truly overlooked by many developers. Most existing blockchains are specialized for cryptocurrencies, and many of these blockchains use Bitcoin’s code base. These blockchains often provide ways to enable usage in non-monetary applications by storing application data within transactions. For example, some solutions store information off the blockchain, then create a hash of that information and submit it in a blockchain transaction. The hash is stored on the blockchain and can be referenced by anyone to validate the same information. However, these methods are often limited in use, so cryptocurrency blockchains might not be a good fit for other applications. This makes it very important to understand the purpose of the application utilizing a blockchain to ensure that it aligns with the intended usage of the implementation.
The next aspect to consider is the ease of participating in the blockchain. For example, connecting to a blockchain may require running a full node that stores the entire history of transactions and blocks. Some blockchains have lightweight clients that allow access to the blockchain’s network without downloading the whole transaction history. In addition, it is necessary to check whether the blockchain ecosystem is open to anybody, or only a closed group. If the codebase is open-source, then it will typically be an open network. Developers can create a software fork from open-source code to make a similar but different blockchain implementation. But doing so will bring maintenance under one’s own responsibility.
The governance of a blockchain can also impact how it operates and what it can do. Thus, one should consider who controls access to the ecosystem, and who enforces decisions to make changes to the blockchain. Depending on the implementation, it may or may not be possible to see who is making or enforcing these decisions. Most blockchains require consensus from all participants in order to agree to a change on the blockchain. Someone who has less control in the blockchain’s network may find it difficult to utilize the blockchain for their specific application.
Another important aspect is how well the blockchain performs. This means measuring how fast transactions are accepted by the blockchain’s network, how much bandwidth it uses, how much blockchain data needs to be stored, and in what way the data must be stored. More specific metrics that one should measure are how quickly blocks are added to the blockchain, block and transaction sizes, and transaction rates. It is also important to note how transactions are bundled within blocks, and what limitations that may cause.
Some people are interested in blockchain technology because of the enhanced security features they offer.
Different blockchains often use varying algorithms for key parts of their systems. For example, there are many algorithms that can be used to create the proof-of-work or proof-of-stake necessary to add blocks to the blockchain. Blockchains may also use different scripting languages to run smart contracts. Some blockchains might implement a managed public key infrastructure (PKI) for strong validation of users.
Furthermore, they may have widely differing consensus models for obtaining agreement on the state of the blockchain.
This paper aims to compare many blockchain implementations based on these criteria. Bitcoin will be investigated first because many people are familiar with it. Then other implementations will be described and compared to each other, with Bitcoin as a starting point for discussion.