What is Blockchain?
Let’s take an example of Google spreadsheet or MS Excel (Windows). This spreadsheet is shared among different networks of computer, where everyone has a copy of it. The spreadsheet contains information about the transactions committed by real people.
Anyone can access that spreadsheet but no one can edit it.
This is Blockchain.
It works with Blocks, whereas spreadsheet works with “rows” and “columns”.A block in a blockchain is a collection of data. The data is added to the block in the blockchain, by connecting it with other blocks in chronological others creating a chain of blocks linked together. The first block in the Blockchain is called Genesis Block.
Blockchain is a distributed ledger, which simply means that a ledger is spread across the network among all peers in the network, and each peer holds a copy of the complete ledger.
Over the last few years, many derivate and blockchain-inspired projects have been created. Most of them are not technically blockchains, but rather distributed ledger systems.
Let us decode how to build a blockchain in just eight steps. For simplicity, I have used the terms blockchain and distributed ledger system interchangeably in this article.
1) Identify a Suitable Use-case
There’s a ton of hype around blockchain. I’ve read that blockchains can erase global hunger, make the world corruption-free, end poverty and do a lot more without breaking a sweat. Unfortunately, that’s not true. So, step 1 is to identify a use-case that makes business sense.
There are 3 things that blockchains can do very well:
- Data Authentication & Verification: this includes immutable storage, digital signatures, and encryption. Data in almost any format can be stored in the blockchain. Blockchains can create public-private key pairs and also be used for generating and verifying digital signatures.
- Smart Asset Management: this includes issuance, payment, exchange, escrow, and retirement. A smart/crypto asset is the tokenized version of a real-world asset e.g. gold, silver, oil, land.
- Smart Contracts: This is a term most often misunderstood, but that’s something for another day.
2) Identify the Most Suitable Consensus Mechanism
The original blockchain, which powers the bitcoin crypto-currency, used proof of work as a consensus mechanism. But today there are multiple distributed ledger systems that offer a host of consensus mechanisms such as Proof of stake, Byzantine fault tolerant, Deposit based consensus, Federated Byzantine Agreement, Proof of Elapsed Time, Derived PBFT, Redundant Byzantine Fault Tolerance, Simplified Byzantine Fault Tolerance, Federated consensus, Round Robin and Delegated Proof of Stake.
Depending upon your use-case, you need to choose the consensus mechanism that makes the most sense.
3) Identify the Most Suitable Platform
There are many blockchain platforms out there today and most of them are free and open source. Depending upon the consensus mechanism you chose in step 2, you need to select the most suitable blockchain platform.
Some of the more popular platforms, in alphabetical order are:
1. BigChainDB
2. Chain Core
3. Corda
4. Credits
5. Domus Tower Blockchain
6. Elements Blockchain Platform
7. Eris: DB
8. Ethereum
9. HydraChain
10. Hyperledger Fabric
11. Hyperledger Iroha
12. Hyperledger Sawtooth Lake
13. Multichain
14. Open-chain
15. Quorum
16. Stellar
17. Symbiont Assembly
4) Designing the Nodes
Blockchain solutions can be permission (e.g. a Government run land registry) or permission-less (e.g. Bitcoin, where anyone can become a miner). Blockchain solutions can be private (e.g. a contract management system implemented in a pharmaceutical company), public (e.g. an asset-backed cryptocurrency) or hybrid (e.g. a group of banks running a shared KYC platform).
Another factor to consider at this stage is whether the nodes will run on the cloud, on-premise or both. Then comes hardware configuration issues like processors, memory and disk size. You also need to decide on the base operating systems (usually Ubuntu, CentOS, Debian, Fedora, Red Hat or Windows).
5) Design the Blockchain Instance
Most blockchain platforms need a very carefully planned configuration for the following elements:
1. Permissions
2. Asset issuance
3. Asset re-issuance
4. Atomic exchanges
5. Key management
6. Multi signatures
7. Parameters
8. Native assets
9. Address formats
10. Key Formats
11. Block signatures
12. Hand-shaking
Some parameters can be changed at run-time but some cannot, so this is a very crucial step.
6) Building the APIs
Some blockchain platforms come with pre-made APIs while some don’t. The major categories of APIs that you would need are for:
- Generating key pairs and addresses
- Performing audit related functions
- Data authentication through digital signatures and hashes
- Data storage and retrieval
- Smart-asset lifecycle management –issuance, payment, exchange, escrow, and retirement
- Smart contracts
7) Design the Admin and User Interface
At this stage, you would need to choose the front end and programming languages (e.g. HTML5, CSS, PHP, C#, Java, Javascript, Python, Ruby, Golang, Solidity, Angular JS Nodejs). You would also need to choose external databases (e.g. MySQL, MongoDB) as well as servers (including Web servers, FTP servers, mail servers).
8) Adding Future Tech
You can greatly enhance the power of your Blockchain solution by integrating Artificial Intelligence, Biometrics, Bots, Cloud, Cognitive services, Containers, Data Analytics, Internet of Things and Machine Learning.
Comments
Post a Comment