The Story behind Bitcoin Fork

Haipo Yang
17 min readAug 26, 2019

--

It’s been over two years since Bitcoin Cash was officially forked from Bitcoin on August 1, 2017. Looking back, one can say Bitcoin Cash is a success, or failure. Its success lies in its community, which remains extremely active, and solid market position. Yet its failure is owing to that Bitcoin Cash does not meet most supporters’ expectations to surpass Bitcoin, and also that it does not address some of the governance challenges that have been facing Bitcoin as well.

The Origin

The split between Bitcoin Cash and Bitcoin came from the capacity scaling of Bitcoin, which, however, shouldn’t have been a problem. The trouble resulted from a line of code left by the Bitcoin creator Nakamoto in the Bitcoin source code, which capped the size of the Bitcoin block. Bitcoin is essentially a set of accounting systems, and a block can be regarded as a book, the smallest unit of accounting, each of which records all of the transfer transactions that have taken place in the Bitcoin network in the past ten minutes. The block size cap limits the transaction processing capabilities of the Bitcoin network. This line of code was originally added to prevent spam transaction attacks. In the early days of Bitcoin’s development, when Bitcoin prices were low, attackers could create a large amount of dust transactions to fill the hard drives of all nodes at a small cost, killing this innovative and revolutionary system in the cradle. When adding this line of code, some worried it would limit the development of the Bitcoin network in the future. Nakamoto gave a simple answer: When the day came, they could simply adjust the limit in advance. Who would have thought that this tiny issue of capacity scaling would cause Bitcoin to fork?

The capacity scaling of Bitcoin was first raised in 2014 when its block size reached around 300KB and was growing at an exponential rate. According to the forecasts, it would reach the 1MB size limit in early 2016. The decentralized Bitcoin network relies on a set of consensus protocols to reach consensus. So changes to this protocol must be made carefully to avoid the entire network being forked due to incompatibility. If the consensus protocol is tightened, it is called soft fork, and the old node can still run normally without upgrading. If the consensus protocol is loosened, there will be a hard fork. In this case, the old node must be upgraded before running normally. In simple words, soft forks are backward compatible, while hard forks are the opposite. For example, a change in the upper limit of the Bitcoin block size from 2MB to 1MB is a soft fork, and a change from 1MB to 2MB is a hard one, because blocks larger than 1MB are considered illegal on the old node. Bitcoin has undergone many soft fork upgrades in the past, and there has not been a hard fork, because developers believe that hard fork upgrades are likely to cause the Bitcoin network to fork, which is very dangerous. And capacity scaling by increasing the block size of the Bitcoin is a hard fork, which encountered many setbacks.

- 1 -

I started to pay attention to the development of Bitcoin since 2011. When the issue of capacity scaling was put forward in 2014, I thought it would be solved anyway and did not put too much effort into this matter. At that time, discussion in the Chinese community was mainly on a forum called “Bikeji” (literally Currency Technology). I occasionally had a look at the discussion there. In my opinion, there are two things in the development of Bitcoin that should have been solved yet somehow exist all along: One is the capacity scaling of Bitcoin, and the other is the standardization of the Bitcoin protocol. Bitcoin is essentially a set of protocols, similar to the HTTP and Email protocols, not a set of software. In the history of the Internet, any successful protocol or programming language is finally standardized and it is conducive to more diverse implementation. In 2018, I tried to turbocharge the protocol standardization on Bitcoin Cash, and was supported by many people, but my efforts did not pay off in the end. It is unnecessary to go into details here.

I have not been involved in the topic of Bitcoin capacity scaling until 2016. Before that I was more interested in trading. On one hand, I didn’t think I could make a difference. On the other hand, I believed the community was looking for a better solution. Then, with the Bitcoin block size reaching 1MB in the first half of 2016, Bitcoin still did not have its capacity scaled up. It caught my attention as I found that the focus of debate in the community has changed from how to expand capacity to whether or not to expand it. That was a big issue. From 2015 to 2016 the Bitcoin developer community has undergone a lot, such as Bitcoin Classic, which was the expanded version of Bitcoin, the birth of Bitcoin XT, the capacity scaling conference in Hong Kong, Okamoto’s debut and the step-down of Gavin, known as Nakamoto’s successor and the leader of the capacity-scaling group. The core community was divided into two groups, people in favor of the big blocks and people in favor of the small blocks. The two factions began to argue, fought against each other and later broke up. The last victory went to the small block advocates, who kicked out all the core developers of the big block and grabbed the submission permission of Bitcoin Core code. Bitcoin Core is the most important software implementation of Bitcoin, inheriting the original code from Nakamoto. Since the Bitcoin protocol is not standardized, Bitcoin Core actually defines what Bitcoin is.

I got involved in the dispute over Bitcoin capacity scaling when I started a Bitcoin mining pool in 2016: ViaBTC. Bitcoin mining is the cornerstone of Bitcoin operation and the guardian of the Bitcoin Consensus Protocol that builds an indestructible Bitcoin network through a vast mining network. The Bitcoin whitepaper also sets out a rule that changes the consensus protocol with miners competing for the longest chain. Therefore, after the developers supporting capacity scaling failed, supporters of the big block turned to miners. If all miners agree to modify the upper limit of the Bitcoin block size, things could work out theoretically. The Bitcoin mining pool is a link between the Bitcoin network and the miners, so it has considerable say in the expansion. Things could be rather difficult by uniting the miners as there were a dozen of mining pools, big or small, scattering around the Bitcoin network. And Bitcoin miners were no longer early geeks, but a group of professional miners who, without deep understanding or belief in Bitcoin, took it as a profitable business. How hard was it to convince these people to take risks together! However, as long as there was still a glimmer of hope, I got to try.

Miners also need the right Bitcoin software for capacity scaling. In 2015, there were quite a few Bitcoin expansion plans and implementations, including the Bitcoin Classic and Bitcoin XT mentioned above, and the interesting Bitcoin Unlimited. Bitcoin Unlimited proposed a scheme to dynamically adjust the block size by means of a miner voting, which can avoid subsequent hard-fork expansion. When promoting my own mining pool, I was asked on Twitter if I supported Bitcoin Unlimited. My reply that I was paying attention and testing it brought me a lot of followers and friends: Wu Jihan, head of Bitmain, the largest mining machine manufacturer, and one of the earliest Bitcoin investors and promoters in China, is my investor and entrepreneurial mentor; Roger Ver, the first Bitcoin investor who has invested in a large number of Bitcoin startups, is known as the Bitcoin Jesus and is also a famous liberal fighter. They are both the core supporters of the big block and have encouraged me a lot. In October 2016, I attended the Bitcoin Developer Conference in Milan, but discussion of the most urgent expansion issue was not allowed there. It was a great irony that speech control, which I thought was exclusive to China, took place in the Bitcoin community which should have been the biggest advocate for freedom. Back from the conference, I added the logo of Bitcoin Unlimited to the blocks mined in my mining pool and publicly voiced my support for Bitcoin Unlimited. That caused an uproar.

To be honest, I am the beneficiary of jammed network traffic. We know that Bitcoin mining revenue includes two parts: Block mining rewards and transaction fees. As the Bitcoin mining rewards are gradually halved and reduced, yet transaction fees are expected to increase with the popularity of Bitcoin. Before 2016, Bitcoin transaction fees accounted for a negligible proportion. At this time, it remains the unspoken default in the Bitcoin mining pool that the transaction fees were owned by the mining pool, not the miners. With the jammed network traffic in early 2016, Bitcoin transaction fees have gradually become considerable. Then I pioneered the PPS+ revenue distribution model. For the first time, the transaction fee was additionally distributed to miners which increased their income, and won the trust of many customers. Other mining pools have followed suit, and the model has become the de facto standard. In addition, I launched the first Bitcoin Transaction Accelerator, where users can submit Bitcoin TXID and our mining pool will prioritize their transactions. It is also stipulated that the first 100 transactions can be accelerated for free every hour. This product went viral as the network traffic got increasingly jammed. Whenever someone complained about the long wait for the confirmation of their Bitcoin transactions, someone would give him/her a link to our transaction accelerator. The 100 free credits per hour became the rage at the market before long, and this product brought us tremendous traffic and brand reputation.

However, early Bitcoin participants and investors were extremely enthusiastic about Bitcoin, and the last thing they want to see was that Bitcoin becomes so difficult to use. Years earlier, giants such as Microsoft and Dell began to support Bitcoin payment, and, as the network traffic got jammed and Bitcoin became less reliable, they took back their support. In the eyes of a savvy businessman, it is unprofitable to support capacity scaling and fork, which may even result in notoriety. Who would do these thankless things if it were not for faith? Many people are interested in conspiracy theories, but I have always kept the best kindness to those who disagree with me. We just stick to the totally different beliefs. Only history will tell the right from wrong.

I started to actively contact the major mining pools in the hope that they would support BU (Bitcoin Unlimited) together. Miners almost have no position in this matter. Like the outsiders, they generally rely on the decision of the mining pool operators. I got to try even for a glimmer of hope. As time went by, some mining pools were convinced and began to voice support for BU. I helped Roger Ver build bitcoin.com pool, he supported BU in a clear-cut manner. Jiang Zhuo’er also founded his own Bitcoin mining pool, who is also a major supporter of the big block. In particular, Bitmain’s public expression of support gave BU more than 50% of hashrates, and significantly increased the number of BU nodes. It seemed that success was just around the corner. But at this critical moment, BU suffered several serious bugs, causing large-area nodes to drop offline every time. As a result, Core supporters flew over the moon and madly smeared the big block, and the neutrals began to doubt BU’s technology and turned to Core’s side.

- 2 -

Capacity scaling fell into a deadlock. Its root lies not in what way to scale up capacity, whether or not to hard fork, or whether it supports SegWit and lightning network. It is a question of whether or not to expand. The expansion advocates also proposed a number of soft fork plans, all rejected by Bitcoin Core team. SegWit solves more the problem of transaction extensibility that Bitcoin has always had, than the capacity scaling, and provides an easier way to upgrade the Bitcoin protocol in the future. The lightning network and capacity scaling are not conflicting, and the lightning network even needs capacity scaling for real operation. The core of the dispute over capacity scaling lies in the inconsistency of understanding in Bitcoin and decentralization between the two sides. The big block supporters think Bitcoin is a payment network, and its value comes from transaction: The more transactions, the higher the value; and the small block supporters hold that Bitcoin is a value storage network which does not require too frequent transactions, and thus the current block size is enough. According to the former, the more Bitcoin is adopted, the more supporters and the more decentralized it will be. And there will be enough people to bear the cost of running the node even if someday blocks become larger; on the contrary, the other side believes that a larger block will increase the running cost and thus cause Bitcoin to become centralized. Ironically, they think it reasonable to pay more than $100 for a Bitcoin transfer yet unreasonable to spend over $100 on the hardware running Bitcoin nodes.

Owing to the reputation accumulated by the Bitcoin Core development team in the past and path dependence, and with the advent of the bull market where a large number of new investors are not very familiar with Bitcoin and prefer to be stable, Core-led blocks took the upper hand, and BU completely lost. The reason for the dispute over capacity scaling that continued for nearly three years without any fork is that no one wanted it. Everyone was afraid of the price collapse caused by the fork. Some people even proposed to use hashrates to kill small chains and ensure that Bitcoin does not fork. They have no idea that the chain can be killed, but the ideology can’t. Behind the Bitcoin fork is the polarization of ideology. As long as a coin is supported, it can always survive in some form.

I gradually realized that it was impossible to convince everyone to reach a consensus. Some people in the community began to propose small-hashrate fork. I tended to support the independent development in this way. I shared my view with others. Still, most people didn’t want a fork but capacity scaling by big-hashrate fork to ensure that Bitcoin did not fork. Fortunately, small-hashrate fork can be done without others’ support, and it seemed to be the only feasible direction for the big-block supporters.

Even at this time, most of the big block advocates still placed their hope on the SegWit+2MB plan reached by the New York Consensus. I made it clear that this road was not going to work. Although this conference was recognized by more than 90% of hashrates and most exchanges and wallet service providers, the miners were merely a gathering of crowds who could not effectively reach an agreement. Despite their declaration for the New York Consensus, who can guarantee that they are actually running a new version? Reckless miners are at a great risk of losses, somewhat alike to the Prisoner Paradox, so the old version remains the most advantageous choice for them. Moreover, the new software version has only one Github code base with no official website or download address. How can it be trusted by the public?

Wu Jihan has got a Plan B. While supporting the New York Consensus, he took the small-hashrate fork as a backup. At first we expected BU to develop a usable version. Some developers working on BU went to create ABC, a new development team, came out and quickly unveiled a high-quality version. At that time, the core members of the Core team launched the UASF (User Activated Soft Fork) campaign, and planned to force the activation of SegWit on August 1, 2017. So we decided to activate UAHF (User Activated Hard Fork) on the same day. We raised the block size limit to 8MB on the current basis and modified the difficulty adjustment algorithm using EDA (Emergency Difficulty Adjustment). Bitcoin’s block difficulty rule is adjusted for every 2016 blocks (about every two weeks). If the new chain followed this rule, miners would pay a huge sunk cost, which was likely to kill the chain in the cradle. With EDA, the difficulty of mining would fall rapidly when the mining speed slowed down to attract miners. Each of us came up with several names for the new chain, and we finally chose Bitcoin Cash, proposed by Wu Jihan, or BCH for short. This name derived from the title of the Bitcoin white paper: Bitcoin: A Peer-to-Peer Electronic Cash System, which accurately expressed the vision to make Bitcoin a payment system.

- 3 -

When the Bitcoin was about to fork, ViaBTC was more than a mining pool. We launched the ViaBTC exchange about two months ago to support exchange between RMB and Bitcoin. On one hand, we opened Bitcoin Cash mining options in advance, and the mining union that selected Bitcoin Cash would automatically mine Bitcoin Cash on August 1; Meanwhile, we supported Bitcoin Cash futures pairs on the exchange so users could deposit BTC and release the BCH by freezing BTC for early trading. With the support of hashrates and price in advance even before Bitcoin Cash was officially online, it had attracted the attention of many people around the world.

There was another episode before the fork: We found anti-replay processing was missing in the implementation of Bitcoin ABC. What does that mean? Without the anti-replay processing, users may pay BTC while paying BCH after fork, which is very dangerous and could result in great losses for users and failure in fork. After urgent communication with developers, they added anti-replay processing. Incompatible as Bitcoin Cash may be with the existing infrastructure as a result, that was the only one choice for its survival.

The fork took effect at 8:00 pm on August 1st, Beijing time. Since the size of the first fork block must be greater than 1MB according to Bitcoin Cash’s hard fork rule, I prepared a lot of transactions in advance to fill the first block. I also put a sentence that I elaborately prepared into it: “Welcome to the world, Shuya Yang!” It was to celebrate the birth of my daughter and also Bitcoin Cash. At 8 o’clock in the evening, a lot of hashrates poured in for Bitcoin Cash, but no block was yet generated. The mining process was more like playing dice. It is a probabilistic game. Your gains depend on luck as well as your expectation. The first block took so long to come that I checked the system again and again to make sure there were no errors. I was waiting in upset. It was not until more 2 am, after over six hours, that the first block was mined, by ViaBTC. That marked the birth of Bitcoin Cash! A few minutes later, another block was also mined by another mining pool. Some people were still supporting Bitcoin Cash in silence. We were so lucky to grab the first block.

The successful fork of Bitcoin Cash caused a sensation among crypto-enthusiasts. On the day after the hard fork alone, the number of newly registered user on ViaBTC exchange soared to over 10,000, more than tenfold that of the first two months combined. Yet we were not caught unprepared as our system was designed for users in large numbers. At that time our team consisted of only less than a dozen of people. The rocketing growth of business not only posed a big pressure on our finance department which was in charge of handling the deposit and withdrawal of fiat currency on the platform, but also drew the close attention of the banks. Nevertheless, there was a rapid increase in BCH transaction, rising to tens of millions of dollars per day. Were it not for the shutdown following the ban initiated by the government on September 4th 2017, ViaBTC would have quickly grown into one of the largest crypto exchanges in the world.

- 4 -

As Bitcoin Cash emerged as a key player in the market, users began to call for crypto-exchanges to consider the listing and trading of BCH. It didn’t take long for Bitcoin Cash to win over most, if not all, of them. At the same time, Bitcoin Cash also witnessed a surge in the number of its believers who were against the block size limit. The collapse of New York Agreement also prompted Roger Ver and other proponents of increasing the block size to convert to Bitcoin Cash. Henceforth Bitcoin split. Unlike what people expected, its price didn’t crash. Instead, it resumed growth after a short dip in August 1st when the fork took place.

The early EDA algorithm was a huge success. It helped our platform survive even without the support of the majority of miners, but came with an unexpected side effect. Under EDA, the mining difficulty would be lowered when the speed of block production slowed but there was no way to adjust it back up. This led to unstable block intervals on the network. However the good thing was that the reduction in difficulty made mining on Bitcoin Cash much more profitable than on Bitcoin, thus attracting a great number of users. As a response, we swiftly rolled out a new smart functionality on mining pools that allowed miners to switch between cryptocurrencies to maximize payoffs. To fix the problem of EDA, Bitcoin Cash did another hard fork in November to shift from EDA to DAA. The new algorithm aimed to enable stable network operation through block-by-block adjustment of mining difficulty.

The End

Despite being the scalable version of Bitcoin, Bitcoin Cash has to start from the scratch — New name, new infrastructure and everything. As expected, SegWit implemented by Bitcoin was powerless to rein in the worsening network traffic jam. At peak time, it took as much as 1000 dollars to make a transaction on Bitcoin when the network was busy. This, inevitably, resulted in an exodus of Apps to alternative chains. Nevertheless, the name of Bitcoin embodies the the network’s reputation of safe operation over the years. Its real value lies in being an asset to invest rather than a currency to spend. Of course, Bitcoin Cash is still young. Peaking shortly at 0.5 BTC per BCH, the price of BCH has been dropping ever since. The biggest consensus in the crypto community remains and will continue to be Bitcoin.

All the disputes surrounding the scalability and fork of Bitcoin also reveal that it is developers, not miners, that hold sway over the network. Though operated under a decentralized method, its governance heavily relies on the centralized decisions. So does Bitcoin Cash. The decisions made by its miners have never really come into effect. Regardless of the denial by Bitcoin ABC team, they are in fact the leader of Bitcoin Cash and are responsible for leading the hard fork every six months on Bitcoin Cash. The decentralized governance broke down under the PoW consensus yet it might be to some degree realized under the PoS consensus.

The split of Bitcoin Cash arising from divergence of views in 2018 took a heavy toll on BCH community. The reason that caused the split was so ridiculous and I will save it for another article. Compounding the issue was the challenges that Bitmain, one of Bitcoin Cash’s core supporters, encountered at the end of the same year. As a result, the price of BCH fell to a record low.

Nevertheless, Bitcoin Cash is still the biggest competitor to Bitcoin, as it enjoys huge potential to grow. The past two years has seen the emergence of a myriad of Apps on Bitcoin Cash that contribute to a healthy ecosystem. However, scaling remains the problem awaiting solution for Bitcoin and its much-anticipated lightening network has yet to be adopted on a mass scale. By the time the market turns bullish, we are bound to see a heavily congested Bitcoin like never before, yet Bitcoin Cash, the scalable version of Bitcoin, will be able to realize its true potential.

At the beginning of 2018, ViaBTC exchange was reborn on CoinEx. CoinEx was the first exchange to use Bitcoin Cash as the base currency, and it also received investment and support from Bitmain. CoinEx has become a mature exchange covering more than 80 mainstream cryptocurrency and supports a variety of derivatives including margin trading, perpetual contract, options trading, and futures trading. In addition, CoinEx Chain will be launched soon, built for DEX (decentralized exchange). We hope that CoinEx DEX will become a decentralized platform where anyone could issue, list and trade token freely. In the ecosystem of CoinEx, CET (CoinEx Token) is the native built-in token of CoinEx Chain. We will continue to improve CoinEx ecosystem and enhance the value of CET.

The future is here and the present might the worst of times, but it might also be the best of times

--

--