Blockchain – a simplified view
Have you ever been in a conversation where someone has used a word or a term that you did not understand but you were not prepared to ask them what it means or were embarrassed to admit that you did not know what it is? Well I am prepared to admit that I have, and the word was ‘Blockchain’. At the time I felt as comfortable in understanding what Blockchain is as I do with explaining Einstein’s Theory of Relativity, so I decided to find out more.
‘Blockchain’ like the ‘Internet of Things’ crops up frequently in the entrepreneurial space when people are talking about new digital developments and it supposedly has a broad range of applications where it can be applied.
Who invented Blockchain?
The first work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta. (Haber, Stuart; Stornetta, W. Scott (January 1991). “How to time-stamp a digital document”. Journal of Cryptology. 3 (2): 99–111.) The objective was to create a system where document timestamps could not be tampered with. In 1992, Bayer, Haber and Stornetta improved its efficiency by allowing several document certificates to be collected into one block.
In 2008 a person or group of people known as Satoshi Nakamoto improved the design using a method to timestamp blocks without requiring them to be signed by a trusted party and to reduce speed with which blocks are added to the chain. This became a core element of the cryptocurrency bitcoin, where it serves as the public ledger for all transactions on the network.
What is Blockchain?
Blockchain is not:
- a cryptocurrency
- a programming language
- a cryptographic codification
- an AI or Machine Learning technology
- a Python library or framework
A sequence of blocks or groups of transactions that are chained together and distributed among the users.
“The blockchain is an incorruptible digital ledger of economic transactions that can be programmed to record not just financial transactions but virtually everything of value.” – Don & Alex Tapscott.
Blockchain works as an immutable record of transactions that do not require to rely on an external authority to validate the authenticity and integrity of the data. Transactions are typically economic and can store any kind of information in the blocks.
Nodes form the infrastructure of a blockchain. All nodes on a blockchain are connected to each other and they constantly exchange the latest blockchain data with each other, so all nodes stay up to date. They store, spread and preserve the blockchain data, so theoretically a blockchain exists on nodes.
How does Blockchain work?
There are five elements that combine to make up Blockchain:
- Cryptographic Hash
- Immutable Ledger
- Peer to Peer (P2P) Network
- Consensus Protocol
- Block Validation or ‘Mining’
1. Cryptographic Hash
A Hash is a cryptographic function that transforms any input data into a fixed-length string of numbers. Every single input of the hash function will produce a different output. If you use the same input, the output value will be always the same. The Hash function is one-way meaning that you cannot reverse the function to generate the original input. The Hash function generates a unique code from every different input. For every input, the algorithm generates a completely different output, and it is not possible to predict how will the input changes affect the output.
The Blockchain nodes use Hash functions to create a unique identifier of any block of transactions. Every block includes the Hash value of the previous block.
2. Immutable Ledger
An Immutable Ledger simply means a record that cannot be changed. The idea behind all of this is data security and proof that the data has not been altered. Every block of the chain contains the Hash of the previous one, it is not possible to modify any block without changing the entire chain. Hence, the chain works as an immutable digital ledger.
A blockchain is designed to be immutable; once a piece of information goes in there, you can depend on it never changing. You can believe that data on the blockchain is legitimate, having been validated by multiple participants in the network.
3. Peer-to-Peer (P2P) Network
Every user has its own copy of the transactions and hashed blocks, and they spread the information of any new transaction to the entire network. It is not possible for anyone to alter the information in the chain since it is not stored by an individual entity but for an entire network of node users. Blockchain does not require any external or internal trust authority. Once a block of transactions is validated, it is added to the chain. If an attempt is made to hack into the blockchain the network will not accept any block from the altered blockchain.
4. Consensus Protocol
Consensus ensures everyone has a single version of the truth. Your blockchain data should match everyone else’s — otherwise, the whole system breaks down. Consensus, therefore, protects the integrity of the blockchain and minimizes the risk of fraud from a corrupt minority.
Users need to meet an agreement about the validity of the chain before adding a new block. When a user adds a new block to the chain all users are required to validate the block by using a common protocol. The nodes reach a consensus about the correctness of a new block by ‘Proof of Work’ or ‘Proof of Stake’ methods.
The nodes check that the new block meets the requisites of their Proof method, including validation for all the transactions inside the block. If the block is valid, they consider it as a part of the Blockchain and keep adding new blocks.
5. Block Validation or ‘Mining’
The term ‘mining’ refers to the act of meeting the Proof of Work requirements for adding a new block with pending transactions to the Blockchain. There are many different mining methods, as they are custom defined for the chain.
Types of Blockchain
Blockchain networks can be classified into three types:
A public blockchain has no access restrictions. Anyone with an Internet connection can send transactions to it as well as become a validator (i.e., participate in the execution of a consensus protocol). Bitcoin is an example of a Public Blockchain.
“A private blockchain network requires an invitation and must be validated by either the network starter or by a set of rules put in place by the network starter. Businesses who set up a private blockchain, will generally set up a permissioned network. This places restrictions on who is allowed to participate in the network, and only in certain transactions. Participants need to obtain an invitation or permission to join. The access control mechanism could vary: existing participants could decide future entrants; a regulatory authority could issue licenses for participation; or a consortium could make the decisions instead. Once an entity has joined the network, it will play a role in maintaining the blockchain in a decentralized manner.” (https://www.ibm.com/blogs/blockchain/2017/05/the-difference-between-public-and-private-blockchain/)
A consortium blockchain is a system that is ‘semi-private’ and has a controlled user group but works across different organizations.
“Consortium blockchains differ to their public counterpart in that they are permissioned, thus, not just anyone with an internet connection could gain access to a consortium blockchain. These types of blockchains could also be described as being semi-decentralized. Control over a consortium blockchain is not granted to a single entity, but rather a group of approved individuals. With a consortium blockchain, the consensus process is likely to differ to that of a public blockchain. Instead of anyone being able to partake in the procedure, consensus participants of a consortium blockchain are likely to be a group of pre-approved nodes on the network. Thus, consortium blockchains possess the security features that are inherent in public blockchains, whilst also allowing for a greater degree of control over the network. Examples of consortium blockchains would be: Quorum, Hyperledger and Corda.” (https://www.mycryptopedia.com/consortium-blockchain-explained/)
Where is Blockchain used?
Blockchain is being used in a number of sectors including:
- Cryptocurrencies –Bitcoin and
- Smart contracts – contracts that can be partially or fully executed or enforced without human interaction.
- Financial services – back officesettlement systems, peer-to-peer insurance, parametric insurance and microinsurance. Stock trading and share settlement trade confirmations become almost instantaneous (as opposed to taking three days for clearance). Potentially, this means intermediaries — such as the clearing house, auditors and custodians — get removed from the process.
- Video games – CryptoKitties
- Supply chain – supply chain logistics and supply chain management. E.g. Everledger, Hyperledger.
- Entertainment – Mycelia service has also been proposed as blockchain-based alternative that gives artists more control over how their songs and associated data circulate among fans and other musicians.
- Public – Tezos Online voting technology.
- Contracts – Land title registration. Publicly accessible ledgers, blockchains can make all kinds of record-keeping more efficient. Property titles tend to be susceptible to fraud, as well as costly and labor-intensive to administer. Honduras was the first government to announce such an initiative in 2015. This year, the Republic of Georgia cemented a deal with the Bitfury Group to develop a blockchain system for property titles. Most recently, Sweden announced it was experimenting with a blockchain application for property titles.
What skills are needed to develop a Blockchain application?
The demand for blockchain developers and engineers keeps on increasing without pause. According to research done by management consulting firm, Janco Associates, the median salary for a blockchain developer is now as much as USD$127,000. (Nov 19, 2018).
A Blockchain developer requires a knowledge of solution design, building blocks, cryptography, nodes and transactions; blockchain components (smart contracts, network types, consensus mechanisms, on-chain and off-chain data storage); Hyperledger (Sawtooth, Fabric), Ethereum; platform and vendor assessment network.
A Blockchain Developer must know one of the modern programming languages like Java or C++. These languages don’t just help create applications for blockchain, but also help learn contract-based or blockchain-based languages like Simplicity or Solidity.
The technology of blockchain is continually evolving as new applications are conceived and built. There is a school of thought that predict that Blockchain developments will threaten the viability of many existing large businesses by introducing a new transaction protocol and there is also an opposing view that those that are threatened will take advantage of what Blockchain has to offer. Time will tell.