Cardano OBFT Hard fork explained
The article describes an event related to Cardano transition to main-net. Still, it is worth to read it as you can learn about hard-fork.
Charles Hoskinson, co-founder, and CEO of IOHK announced a hard-fork that should occur probably in the middle of February. Some people wrongly expect that there will be new ADA coins. No. Now new ADA coins will be created. Do not be confused. Hard-forks are not always about the creation of new coins.
“Looks like February — at pretty high certainty — we’re going to have the OBFT hard fork occur. We’re still talking to our exchange partners about that and we just want to make sure all the infrastructure is lined up for it, but infrastructure looks pretty good, so mid-February we anticipate an OBFT hard fork.”
It is worth mentioning that the hard-fork is expected for a long time and it is a way how to get the protocol from the Byron phase to the Shelley phase. Currently, Ouroboros Classic is used in the Byron phase. Ouroboros BFT (Ouroboros Byzantine Fault Tolerance) hard-fork is the first step towards the Shelley phase and there will be another hard-fork, that will introduce Ouroboros Genesis. You can see it in the picture below:
The Yoroi wallet users will not probably be affected by the hard-fork. The Daedalus wallet will probably need an update.
What is hard-fork technically?
The nodes keep the network running and they must use a certain version of the software that we can call a client. Clients have a certain version and when a newer version is released with new features the version is increased. Thus, it is clear and can be easily verified which version of a client the node operator uses.
Nodes are updated gradually on the fly. The team delivers a new version of the client with beautiful new features, publishes the client on the web and announce it publicly. The team basically asks the node operator to update the clients to the latest version. Node operators usually do it, however, they may not do it for any reason.
The question always is whether the changes in the new client are backward compatible. This means that if a new client creates a block, then whether the old clients can also work with that block. If so, there is only a soft-fork. Both old and new clients continue to maintain the same blockchain. Node operators might not necessarily update the client to continue maintaining the blockchain. Conversely, this may not be the case, so a block created by an old client does not necessarily have to be accepted by new clients.
If there are a higher number of new clients in the network than the number of old ones, the blocks created by the old clients will be mostly rejected by new clients and will not be included in their blockchain. New clients will continue on maintaining another chain, which will probably be longer over time what naturally forces the node operator with the old clients to update to the latest newer version.
Notice that the absolute number of old and new clients is irrelevant. It is mainly about consensus dominance in the sense of staked coins.
A change in the client can be so fundamental that old clients are not able to accept the block that is created by the new client. In this case, we are talking about hard-fork. Hard-fork means that after a certain block the blockchain is split (forked). Imagine it as a fork or a one-way rail that is split into the two-way rails. The block where the fork will happen is chosen in advance.
The team hopes that most node operators update their nodes to a newer version of the client and will continue on maintaining a longer chain soon after the fork. The chain maintained by old clients will most probably disappear soon because no one is interested in maintaining it.
We can also talk about the acceptance of client changes that the team has made.
Hard-fork can be quite dangerous because of the existence of two separate chains at the given moment. In some cases, however, this is the intention. If a new project is to be created by the hard-fork, then both chains are maintained. It was the case for example for Ethereum and Ethereum Classic, or Bitcoin and Bitcoin Cash.
Forking is a mechanism of how to update clients to newer versions. However, hard-fork can also create a new project that rises from the old one. In this case, both chains are maintained after the hard-fork. One chain by the old clients and the second by new clients. In both cases, new blocks have to be continuously added.
If a new project (and also chain) is being created, anyone who had any coins in the original blockchain will also have those coins in the new one. It makes sense since after the hard-fork both chains have the same past, the same blocks, and transactions. It changes with the fork. The next step is on the exchanges, that have to accept new coins and ticker for the new coin. New wallets have also to be created.
So we can talk about two types of hard-fork. The first type where everyone wants to upgrade to a newer version and there is nearly no risk of creating and maintaining an alternative chain. The second type, where a new project may be deliberately created based on the old chain.
In the case of OBFT hard-fork, it is a technological update introducing a new consensus algorithm (based on BFT). Thus, after the hard-fork, new consensus will be used. Node operators just install a new version of clients and it happens at a given moment. As you can see in the picture below, the blue blocks represent the Byron phase maintained by Ouroboros Classic consensus. After the hard fork, orange blocks will be added based on the Ouroboros BFT consensus algorithm. Blue chain will slowly retire and just the orange chain will continue on.
We repeat once again. No new coins will be created since the blue chain will be gone.
We hope we have clarified the hard-fork for you. Do not hesitate to ask us for more details about forking.
Official information about hard-fork will be published by IOHK. So follow official channels.