It looks like, in the last few months, Bitcoin has made friends with forking. When I wrote about Bitcoin forking the last time, I didn’t expect there would be this many so soon. But hey, here we are, trying to make sense of what the hell is happening in the crypto world.
With this article, I try to put everything that has happened since Bitcoin Cash in a proper order that would become anyone’s go-to article for learning about Bitcoin forks between August 2017 and November 2017.
But first, what is a fork?
You can think of blockchain ledger as a stack of pages. Every full node in the network keep a copy of this stack of pages with themselves. Everyone’s copy of the ledger is exactly the same because everyone followed the same set of rules to build it.
So, if there are ten people in the network, each of them will have a copy of the ledger that would look something like this:
Every ledger has the same set of blocks, neatly arranged in the chain because everyone followed the same set of rules. This idea of working in collaboration with strangers gives Bitcoin the value it possess. But the question remains — “are the rules that everyone’s following the best set of rules that we can have?”
When you ask the community this question, unfortunately, there’s no clear agreement. That’s the root of all the forks. When a community divides on what set of rules to follow, the fork happens.
For instance, if in the following blockchain, the community divides after the block #3, some participants will start to follow new set of rules while other will continue following the old rules.
Because not everyone is following the same set of rules, the future blocks might differ between each community. The blockchain might look like this:
After the block #3, some people would be following new rules to build future blocks, therefore, digressing away from the rest of the community. This is what a fork is.
A fork means a part of the community doesn’t agree to the current rules to creating blocks and adopt a new set of rules.
Okay, so, now we know that a fork means some members of the community following an updated set of rules, let’s get into what each fork was about.
One of the major problems that bitcoin community is facing is that about the throughput of the blockchain. Currently, Bitcoin blockchain can process only about six to seven transactions per second. Compare it to Visa’s over 24,000 transactions per second and you will realize why don’t we use bitcoins to buy our morning coffee.
This problem has haunted the community for a long time now. The SegWit2x fork that I explained in this post was meant to fix the slow speed of the Bitcoin network. The solution to this problem was to somehow fit in more transactions in one block. To accomplish that, two rules were changed in the current set of rules to improve the speed of the network:
- The format in which the transactions are written were optimized so that more transactions could fit in a block
- The size of the block was increased from 1MB to 2MB
The combination of optimized format to record transactions and a larger block size would mean more transactions could be written in a block, therefore, processing the transactions at a better speed.
The fork was to happen on August 1 and the community seemed to agree on this upgrade. The upgrade was to be carried out in two phases. First phase would change the first rule and the second phase (scheduled for mid-November) would change the second rule.
The first phase was rolled out smoothly but then a group of miners (people making new blocks) decided to go their own way by upgrading to the second rule instead.
Those miners gave birth to Bitcoin Cash that differed from Bitcoin in one aspect: speed. Bitcoin Cash has the block size of 8MB compared to Bitcoin’s 1MB, which makes it a lot faster than Bitcoin.
That should mean that Bitcoin Cash is better than Bitcoin, right? Wrong.
There are several factors when it comes to deciding if one coin is better than the other. Speed is just one of them. Bitcoin Cash is powered by a handful of large miners and its existence depends entirely on them. The day they stop powering the network, would be the day Bitcoin Cash would end.
Blockchain works in a trustless manner because there is a large number of strangers in the network.
Bitcoin Cash therefore isn’t powered by a large number of strangers, who distribute the power, like most cryptocurrencies. Instead it’s ruled by a small elite that has all the power.
Why is Bitcoin Cash then going through the roof lately?
Here’s where the things become interesting. Even though there’s no ‘breakthrough’ in the Bitcoin Cash rules — versus Bitcoin rules — the former has been increasing in value like crazy lately.
I would speculate that this particular coin is being pumped by a handful of large whales. I don’t see any reason why the world would suddenly go crazy for it as it doesn’t provide a real solution to any real problem.
Of course, its block size is larger than Bitcoin’s but that won’t solve the problem of scaling the blockchain. It is just a temporary fix. Soon enough, we’ll hit the limit again and we cannot keep on increasing the blocksize forever. Being a programmer for last fifteen years, I believe the scaling solution to blockchain will be the second layer — Lightning Network.
The pumping of Bitcoin Cash will have its own consequences. Take a look at this chart:
This chart shows the drop in hashrate for the Bitcoin network. It means, when the price of Bitcoin Cash went up to $1,000, some miners stopped mining Bitcoin and instead started powering Bitcoin Cash.
Well, what then? This.
Because miners went away from the Bitcoin network, the number of unconfirmed transactions shot up. At one point of time, there were more than 160,000 transactions waiting in queue to be processed. Right now, as I write this article on November 16, 2017, the number of unconfirmed transactions is at 92,000.
To conclude, the price jump in Bitcoin Cash resulted in an even slower Bitcoin network. Personally, these acts of pumping the coin and being controlled by a few large miners make me sceptical of Bitcoin Cash — it just feels like it’s going against the ideology of cryptocurrencies. And a lot of people agreewithme.
When we’d barely digested the changes the Bitcoin Cash hard fork brought, we suddenly got another fork. Most of us knew about the upcoming SegWit2x fork that was expected to happen mid-November (but didn’t happen), but all of the sudden another fork popped up: Bitcoin Gold.
Bitcoin Gold has nothing to do with increasing the throughput of the Bitcoin blockchain. It exists for an entirely different reason — to make Bitcoin mineable on CPUs and GPUs, and therefore better distributed geographically.
What do we mean by that? The way Bitcoin blockchain works, to create a block, a miner has to solve a cryptographic puzzle. Whichever miner does it first gets rewarded with newly minted bitcoins. This created a contest between miners to put whatever resources they can to solve the cryptographic puzzle. This led to the development of ASICs to mine bitcoins.
ASIC stands for Application Specific Integrated Circuit. It means that these are specially designed computer chips that can perform one and only one task. In the context of bitcoins, this led to miners deploying expensive and specifically designed computers at work. This led the Bitcoin mining to be converged in a single geography and in the hands of a few large and rich miners.
This definitely wasn’t the vision that Satoshi Nakamoto saw for the decentralized money.
The solution to this problem was again found in forking the blockchain and changing a rule. The rule that Bitcoin Gold has changed was: replace the current cryptographic puzzle with another cryptographic puzzle that can be solved with similar efficiency on CPUs and GPUs as on ASICs.
This would mean deploying expensive ASICs would be economically unworthy. Instead, miners would be better off with deploying CPUs and GPUs. Also, as a side effect, this would allow anyone with a computer to participate in the network and make a reward.
From their Github repository, we can see that it is still a work in progress. Although the fork did take place on October 25, the first 16,000 blocks will be pre-mined by the team itself to reward themselves for the work they have done. I would be very sceptical of this pre-mining because, if the wanted, they could sell the premined coins to the public, make money and go away dumping the project. It somehow, doesn’t seem to be in the true sense of an open source project.
Another criticism that followed Bitcoin Gold was the lack of Replay Protection. Without the replay protection, one transaction on a fork can be ‘replayed’ on the other branch even without the intentions of the user. Here’s what it means:
If you own some Bitcoin before the fork, you get a copy of your holdings as the new currency. For example, if you had 10 Bitcoins before the fork, you’ll have 10 Bitcoins and 10 Bitcoin Gold after the fork. But without replay protection, if you spend your 10 bitcoins or 10 Bitcoin Gold, there are high chances that the other coin will be spent too.
In addition to this, it’s evident from the Github repo is that there’s only a single developer who is building and maintaining the entire project. It might be not really a red flag but it isn’t especially comforting knowing that there’s no active developer community working on the project. Why that is bad? All it takes is one developer to give up on the project and the project will die.
Despite that, I think Bitcoin Gold might really have good intentions and could possibly be onto a solution to one of the biggest problems of Bitcoin. But for Bitcoin Gold to become a viable cryptocurrency, the first thing that would need to happen is growing the developer community behind the currency — for added security.
The final fork is the one that was planned to emerge in November, but won’t become a reality, for now. For some, it might seem it came out of the blue but it was planned early in the August 2017. This fork is the upgrade to the second rule that we discussed above: “The size of the block was increased from 1MB to 2MB.”
Thus, it was called Bitcoin2X. It was always scheduled to happen in mid-November, but given the out-of-the-blue-forks in the bitcoin chain, not everyone was convinced that it will be a smooth fork. This scepticism was because Bitcoin2X was meant to replace Bitcoin all together. Bitcoin2X would have become the main coin, completely replacing Bitcoin.
That would mean there would be no more Bitcoin out there, only Bitcoin2X. For it to succeed, all the major players in the Bitcoin community — miners, wallets, companies, etc. — had to agree to the fact that Bitcoin2X would replace Bitcoin. That, initially, looked like they agreed. But as days went by, companies started backing out.
They eventually held the view that they’ll support both the coins unless the rest of the world believes exclusively in the new Bitcoin. That was a kind of bummer, and therefore, a few days before the fork was supposed to happen, it was suspended.
An announcement was made by the group of Bitcoin miners that they would suspend all plans regarding the fork, for now. In an open letter, they said, “Although we strongly believe in the need for a larger block size, there is something we believe is even more important: keeping the community together.”
There wasn’t enough consensus among the miners to have a smooth fork and replace the current Bitcoin. If miners would’ve gone ahead without a clear majority consensus, there would be another coin created that we would be talking about.
As making the transactions will become more expensive, the community of miners will realize that they will have to increase the blocksize to make the bitcoin network appealing to the general masses. But that day can wait for now. Or perhaps, there won’t a need of an increased blocksize. We might find another solution to the problem after all.
What might be the other potential solution?
Personally, I believe, the scaling solution will happen through another layer on top of blockchain. It would mean majority of the transactions aren’t happening on the blockchain at all, instead, they are settled between the peers themselves.
The potential solution is called Lightning Network. With SegWit (upgrading the first rule discussed above), implementing Lightning Network is possible. If the developer community works towards implementing the Lightning Network instead, we might really solve the scaling issue of blockchain — for once and for all — without another fork.