In this article I gave simple conditions to decide if I need a Blockchain in my problems use case. Before starting to understand the requirements, a brief introduction on needs of Blockchain requirements and its types based on authority is discussed.
What is Blockchain ?
Blockchain is a distributed database on a network having blocks linked to previous blocks in chronological pattern approved by distributed ledgers using consensus mechanism.
The use of Blockchain Technology solves the following issues identified on the network in comparison to traditional databases.
- Shared common database
- Multiple parties involvement
- Trust issues in involved parties
- Need of an immutable log
Based on the authority of the content ,Blockchain is proposed in permissionless blockchain and permissioned blockchain. Two important participants controlling the authority on the network are writer and reader. Writer is any entity which writes state to the database. The responsibility of writer in Blockchain are
- Correspond to participants involved in consensus protocol.
- Growing the Blockchain.
- Accumulate transactions within a block.
- Append Block to the blockchain.
While a reader is any entity which is not extending the blockchain, but participating in either the transaction creation process, simply reading and analysing or auditing the blockchain
Permissionless Blockchains are open and decentralized. Any peer can join and leave the network as reader and writer at any time. There is no central entity which manages the membership, or which could ban illegitimate readers or writers. This openness implies that the written content is readable by any peer. With the use of cryptographic primitives however, it is technically feasible to design a permissionless blockchain which hides privacy relevant information. The most widely known instances of permissionless blockchains are Bitcoin and ethereum.
Permissioned blockchain have only an authorized set of entities that are allowed to write and read the respective blockchain. A permissioned blockchain, however, shares similarities with a centralized database.
To only authorize a limited set of readers and writers, so called-permissioned blockchains have been recently proposed. Here, a central entity decides and attributes the right to individual peers to participate in the write or read operations of the blockchain. To provide encapsulation and privacy, reader and writer could also run in separated parallel blockchains that are interconnected. The most widely known instance of permissioned blockchains is Hyperledger Fabric.
Need a Blockchain? Understand these five requirements before using it.
Blockchain is a very complicated technology which utilizes a lot of efforts in designing the architecture to store the data such that no central authority is needed to store the data afterwards. Once the data in block is updated it can’t be altered retroactively, without altering the subsequent blocks. To ease the process of selecting a Blockchain, few parameters like store state, multiple writers, Trusted Third Party and trust on writers are selected and mapped in the flowchart to result the type of Blockchain which is needed.
Need a Blockchain? Requirement No. 1: Storage of Data
The prime use of Blockchain is only to store data in blocks connected to previous blocks having distributed ledgers to verify the content using consensus mechanism. If no data is needed to be stored, no database is required at all, i.e. a blockchain, as a form of database, is of no use.
Need a Blockchain? Requirement No. 2: Number of Writers
With only a single writer updating the database tables makes that single person only responsible for any kind of modifications or updates in such use cases the latency and throughput is better in regular database implementation. While if there are multiple writers associated to update the database, distributed ledger technology of blockchain can be prefered.
Need a Blockchain? Requirement No. 3: Trusted Third Party
To make sure the central database is safe a trusted third party (TTP) is needed. The trusted third party is mutually decided by all the parties involved in accessing the database. After identifying the Trusted Third Party (TTP) availability, there are two options. First, if the TTP is always online, write operations can be delegated to it and it can function as a verifier for state transitions. Second, if the TTP is usually offline, it can function as a certificate authority in the setting of a permissioned blockchain, i.e. where all writers of the system are known
Need a Blockchain? Requirement No. 4: Trust issues in Writers
If the writers all mutually trust each other, i.e. they assume that no participant is malicious, a database with shared write access is likely the best solution. If they do not trust each other, using a permissioned blockchain is one option.
Need a Blockchain? Requirement No. 5: Public Verification
Depending on whether public verifiability is required, anyone can be allowed to read the state (public permissioned blockchain) or the set of readers may also be restricted (private permissioned blockchain). If the set of writers is not fixed and known to the participants, a permissionless blockchain is a suitable solution.
Applications implementing Blockchain Technology
- Supply Chain Management
- Interbank and International Payments
- Smart Contracts
- Decentralized Autonomous Organizations
- Proof of Ownership for Intellectual Property
- Internet of Things
- Land Titles
- Know Your Customer Validation
- Trading and Fair Exchange Protocols
Research PaperDo you need a Blockchain? authored by Karl Wüst (Department of Computer Science, ETH Zurich) and Arthur Gervais (Department of Computing Imperial College London)