Steemit Crypto Academy Season 3 Week 4. Topic: Blockchain Forks - by Professor @awesononso. Homework task - by @pangoli
Image: My own work
It feels really good to be part of this week's Homework task. The lecture with Professor @awesononso has delivered much insight to us about what Blockchain Forks are.
I'd often pondered without getting my head around any fact on why there is a Bitcoin (BTC) existing side-by-side with Bitcoin Cash (BCH); Ethereum (ETH) existing and Ethereum Classic; each of them bearing different market values. It took the class on Blockchain Forks to settle that curiosity.
I understand the reason behind the difference now, and it is with that knowledge that I solved the homework task. I'm sure you will gain value as you read.
N/B: This article is built on the assumption that the reader is already aware of what a blockchain is.
Q1: What is a Fork?
A Blockchain fork is synonymous with a software upgrade. Upgrades are done when gaps are found in softwares, or when introducing new features to enhance the user's experience. The same narrative applies to blockchains, a blockchain fork is an upgrade that implements a set of new rules or features to the original Blockchain. It occurs when a change is implemented to the codebase of a blockchain.
Since blockchains thrive on decentralization, there has to be a consensus reached by all network validators- called Miners - before any change is implemented to the network protocols.
When all network validators agree to a certain upgrade, the network experiences a soft fork, where the change is implemented without creating a different blockchain. Here, post-fork validators do not need to upgrade to a new network.
However, where there is a partial consensus or any form of disagreement from some nodes of the network, a hard fork occurs and the existing chain is split into two backward-incompatible chains. That is, the blockchain splits into two, but still shares a common pre-fork history.
Although Bitcoin and Ethereum forks have been largely popularized, a fork can happen in any blockchain network. It is the only way changes are implemented on a blockchain, and since there is room for consensus, a fork will always take place.
Q2: Explain in detail what a Hard Fork is with examples (Can be of any blockchain).
To disambiguate these terms, let's think of a hard fork as an outcome of conflicting interests between network validators. The blockchain is built with a level of transparency that allows all the node validators to agree on any change to the network protocols.
If any change is not accepted by all the network validators, it results in a split: where some participants move with the upgraded network with new protocols, and others stick to the old protocols.
When this happens, what was originally just a single blockchain splits into two distinct chains, but sharing a common pre-fork history. The new chain becomes backward-incompatible with the original chain - validators on the new chain cannot validate transactions on the old chain ( they see new blocks on the old chain as invalid), and validators on the old chain cannot validate transactions on the new chain (they see blocks on the new chain as invalid).
A very clear distinction of a hard fork is that two distinct currencies emerge from the process. For instance, the 2017 Bitcoin hard fork resulted in the emergence of Bitcoin and Bitcoin Cash.
Apart from the popular Bitcoin and Ethereum forks, another typical example of a hard fork happened on the Monero blockchain. MoneroV, a hard fork of Monero, proposed to address the shortcomings of Monero in scalability, transaction cost, inflation, and decentralization.
The key difference between the two networks is that, while Monero has an unlimited supply of tokens which made the network inflated and unscalable, MoneroV has a fixed supply of 256 million XMV.
Q3: Explain in detail what a Soft Fork is with examples (Can be of any blockchain).
In simple terms, a soft fork can be described as a safe upgrade of a blockchain network. That is, a situation where there is a general consensus in favour of a particular change to the codebase or protocols of the original blockchain; such that the fork does not lead to the creation of another parallel blockchain.
A soft fork is easily identifiable due to the adoption of post-fork protocols by the original chain's validators. The validators do not have to upgrade their software to continue validating transactions. Everything simply stays the same, but with the changes effected.
Unlike the hard fork, where old nodes view transactions on the new chain as invalid and vice versa; a soft fork is backward-compatible, as old nodes recognize the new blocks as valid.
Among several blockchain soft forks, the bitcoin and ethereum blockchains have utilized soft forks to implement new and upgraded functionalities that are backward compatible.
Q4: Explain the differences between Hard Forks and Soft Forks?
From the sections explained above, the differences are between Hard Forks and Soft Forks are detailed in the table below:
|Hard Fork||Soft Fork|
|Backward-incompatible as old nodes view new blocks on the new chain as invalid||Backward-compatible as old nodes still view new blocks as valid|
|A new Blockchain is formed to run side-by-side with the old||No new blockchain is formed as all users accept the update|
|Validators need an updated software to validate transactions on the new chain||No software upgrade is needed|
Q5: Explain the following Bitcoin Forks and explore the blockchain where necessary. Indicate if they are hard forks or soft forks;
Bitcoin Cash broke off from the original Bitcoin Chain having its currency depicted as BCH. With an aim to solve the scalability issues on the Bitcoin network and fulfill Satoshi's vision of a transactional currency, BCH proposed to increase the Block size to accommodate and process more transactions within a short time frame.
According to Investopedia, the proposal was to increase block size from 1mb to a range between 8mb and 32mb, to accomodate more transactions in a block and elimination pending transaction queues.
All of BCH's proposal were built on the scalability fallout of Bitcoin, which had become an investment vehicle instead of a transactional currency due to prolonged transaction waiting time.
The nodes that accepted the new protocol upgraded to Bitcoin Cash and started to run on that blockchain. These nodes could operated with rules distinct from the original bitcoin protocols, hence, they could no longer validate Bitcoin transactions.
Since this Fork resulted in a separate blockchain with its own native currency, running parallel to the original bitcoin blockchain, it is safe to say that Bitcoin Cash is a Hard Fork of Bitcoin.
Contrary to the Bitcoin Cash proposal, the Segregated Witness (SegWit) was an upgrade proposal to improve the scalability of Bitcoin's network by including more transactions in a block. This was to be achieved by reducing the size in which these transactions come.
A typical Blockchain transaction comprises of an Input(sender's public address) and an output (receiver's public address). There is an aspect of the input that contains a digital signature, which verifies that the sender has the asset he's transacting with, in his possession. This signature takes up to 65% of space in a transaction.
Hence, the Segregated Witness proposal came with an opinion to separate these signatures from the transactions so that the 65% space can accommodate more transactions and make the network process scalable and faster.
The segregated witness was implemented and the old network nodes identified transactions based on the new protocol as valid. This made it a backward-compatible fork, which is only typical of a Soft Fork.
Q6: Write on the Steem and Hive Hard fork and show similarities in their Genesis Blocks(Provide screenshots).
On the STEEM blockchain, a clash of interest occurred when the integration of TRX on the Steem blockchain was announced. A part of the network supported the change, while others did not fancy it at all. These kinds of differences in opinions, as far as blockchains are concerned, leads to one thing - a Fork.
Following the disagreement in the STEEM community on the subject of TRX integration, there was a Hard Fork that resulted in two distinct Blockchains - STEEM and Hive.
These two blockchains run at parallels and independently provide hosting for Blockchain-based blogging websites. The STEEM blockchain powers the steemit platform, while the Hive blockchain powers the Hive. blog platform. The image below displays the interface of these two platforms:
My own work
As is already obvious, we can observe striking similarities in the user interface of both platforms. Furthermore, an exploration into each platform's block explorer reveals that the content of verified blocks are unarguably the same across all platforms.
Image: My own work
Here is a comparison of the genesis block on both platform's block explorers. It is observed that the block content are the same, and both blocks were verified by the same miner called initminer.
Image: my own work
The same comparison on the 6000th block of both platforms still proves the fact that they bear the same information. See reference in the picture above.
Forks are common to all blockchains and are often the best alternative in handling changes or malicious network attacks. Forks democratize the process of Blockchain decision-making, leaving the power in the community to decide on what should or should not hold.
Thanks for reading.