Blockchain’s properties related to security and integrity can open multiple new use cases. But, is this the technology that every project needs to ensure security/integrity? This article is focused on that question.
In an article co-written by Karl Wüst and Arthur Gervais “Do you need a blockchain?”, they analyze this question and postulate three use cases: supply chain management, interbank and international payments, and decentralized autonomous organizations. We’ll use this article to evaluate the titled article question further.
First, we need to cover the types of blockchains that exists. They are classified as permissionless blockchains and permissioned blockchains. Permissionless blockchains (Bitcoin, Ethereum) are open and decentralized, meaning that any peer can join and leave the network anytime, and there is no central entity that manages the membership or controls any nodes, On the other hand, permissioned blockchains have a central entity that decides and attributes the right to individual peers to participate in the write or read operations of the blockchain; the most well-known instances of permissioned blockchains are Hyperledger Fabric and R3 Corda.
When does a blockchain make sense?
Wüst concludes in his article that using a blockchain only makes sense when multiple mutually mistrusting entities want to interact and change the state of a system and are not willing to agree on an online trusted third party (TTP).
There are a few straightforward cases where it doesn’t make sense to use a blockchain:
- if no data needs to be stored, and no database is required at all.
- If only one writer exists, a blockchain does not provide additional guarantees and a regular database is better suited, because it will provide better performance.
- If a Trusted Third Party (TTP) is available, there are two options: if the TTP is always online, write operations can be delegated to it and it can be the verifier of the state; if the TTP is usually offline, it can function as a certificate authority in the setting of a permissioned blockchain.
- If the writers all mutually trust each other, a database with shared write access is likely the best solution
Permissioned vs permissionless vs Central database.
Let’s compare key attributes of permissionless blockchains, permissioned blockchains and a centralized database to evaluate best fit in a project.
In centralized systems, the performance in terms of latency and throughput is generally much better than in blockchain systems, as blockchains add additional complexity through their consensus mechanisms. For example, Bitcoin can only sustain a throughput of seven transactions per second, while a centralized system such as Visa can handle peaks of more than fifty thousand transactions. When deciding on using a blockchain system, this tradeoff should be taken into account.
Do we need a blockchain?
The following flowchart proposed by Wüst in an excellent guide that addresses several questions related to inclusion of blockchain in any use case.
- While security and integrity of data is critical and, blockchain offers these as native attributes, there are tradeoffs that we must take into account to decide whether blockchain should be a part of the solution.
- It is important to understand the attributes of different types of blockchains, their properties and tradeoffs to get the best fit while developing the new application.
- When creating a blockchain-based solution, identify each writer and reader as part of your architecture to evaluate if a blockchain is required or not.
Fast-growing tech companies partner with Encora to outsource product development and drive growth. Contact us to learn more about our software engineering capabilities.