Building blocks of blockchain
This post covers the components that are the building blocks of the blockchain. Not all components will be available in a blockchain but you can use this list to evaluate blockchains based on these components and their function in the blockchain.
Peer-to-peer networking
Some of the famous peer-to-peer networks in the internet were known for notorious activities they were doing. Take for example Napster the music sharing site was a peer-to-peer site that violated copyrights of music and distributed it free to general public. It was shutdown for its illegal activity. The next famous peer-to-peer network is BitTorrent. This is still alive but controversial because of the contents on this network. These networks don’t have a centralized server. They are decentralized and distributed and use their own protocols to identify the nodes in their network.
Public blockchains also operate on a peer-to-peer network and private blockchains mostly use a centralized server. These blockchain network use mostly HTTP protocol for interacting with applications outside of the blockchain but they use their own protocol for the peer-to-peer networking between their nodes. The list of nodes in the blockchain are listed in the next section for the public blockchain called Ethereum.
Ethereum Nodes
Ethereum is a public blockchain that has the following types of nodes in the network.
- Full Node – Stores all the blocks starting from genesis block and contains entire history of transactions on the blockchain.
- Light Node – Stores minimal information about the blocks and retrieves complete information from full nodes.
- Archive Node – Stores all the history of the blockchain transactions and used for querying and reporting.
These nodes are called storage nodes that are internal to the peer-to-peer network. The other set of nodes that are external to the network but very important are the mining nodes. The mining nodes use their own peer-to-peer network. These mining nodes are the ones that will verify the transactions, combine them into a block and then do proof-of-work to verify the block nonce and then submit it to blockchain storage nodes for approval and gets its reward for mining.
Cryptographic Tokens
The cryptographic token is an output of a hashing function that will generate a unique value for each asset created out of the network. This is called token and it is used for transactions within the network. You can imagine this to be digital version of tokens provided in casinos. These tokens really don’t have value outside of the network when digitally recreated outside the network. This is what makes blockchain an internet of value in addition to internet of information. Previous generation blockchains had all tokens are created equal. Now Ethereum has introduced various types of tokens and it is explained below.
ERC-20 – Fungible tokens – All tokens created under ERC-20 standard have same value and this is the most used token type. You can read more about them here.
ERC-721- Non-Fungible tokens – Each ERC-721 token will have unique id on the blockchain network and it can have a different value. This is now used in NFT stores to map to different digital assets. If you are in ecommerce you should think of how to use ERC-721 token in your ecommerce stores.
ERC-1155 Multi-token – This is mostly used to create n number of tokens which can be used like limited editions. This is like creating limited number of NFTs which point to same type of asset on the blockhchain network. The creation of ERC-721 is expensive hence ERC-1155 became popular.
Consensus Forming Algorithm
Consensus is the process in which the ledger is updated with blocks by the nodes after reaching an agreement about the block and its transaction and the verification process. The earliest generation of blockchain networks used proof-of-work in which all mining nodes will calculate the hash key for the block set by the nodes in the blockchain. Once the value is below the threshold then it is broadcast to the nodes in blockchain network and the nodes verify the hash key and then approve or reject the blocks. If the block is approved then all the nodes will register the block in the ledger.
To minimize the energy used to run and verify the transactions on blockchain next generation blockchains have adopted better consensus algorithms like proof-of-stake where not all nodes mine the block. Some private blockchains don’t do mining they have a dedicated set of nodes that do the verification and the participants are known to each other in the network and go through an enrollment process where their identity is verified.
Turing Complete Virtual Machines
The bitcoin network was not customizable or extendable and that was the main drawback that others faced from adopting blockhchain for their projects. In essence different blockchains were being built for each use case and there was no generic blockchain that could run a custom program. This is the problem that Ethereum solved by introducing a virtual machine that can execute smart contracts which are highly customizable using a programming language. This formed the foundation of dApps on Ethereum.
Smart Contracts
The programs that run on blockchain are called smart contracts. You can imagine smart contract to be a backend or server side component of your web application. Solidity is used by Ethereum, Go or JavaScript in Hyperledger and Java in Corda. These programs are called both within blockchain and outside blockchain network and executed. They have only limited set of features and can be used only to implement limited number of use cases. Your transactions have to be analyzed carefully before being translated to smart contracts.
Conclusion
If you would like to evaluate which blockchain is suitable for your projects you can hire us for consulting and we will help you with the process of chosing the right one and evaluate it with a proof-of-concept on that all under 40 hours of billable effort. You can contact us here.
H.Thirukkumaran
Founder & CEO
H.Thirukkumaran has over 20 years of experience in the IT industry. He worked in US for over 13 years for leading companies in various sectors like retail and ecommerce, investment banking, stock market, automobile and real estate He is the author of the book Learning Google BigQuery which explains how to build big data systems using Google BigQuery. He holds a masters in blockchain from Zigurat Innovation and Technology Business School from Barcelona Spain. He is also the India chapter lead for the Global Blockchain Initiative a non-profit from Germany that provides free education on blockchain. He currently lives in Chennai India.