A New Fork on the Block(chain)

bitcoin forkThis month, A. Zamyatin and W. J. Knottenbelt, of the Imperial College of London, together with N. Stifter, A. Judmayer, P. Schindler, and E. Weippl, of SBA Research, have published a paper “A Wild Velvet Fork Appears! Inclusive Blockchain Protocol Changes in Practice”, re-introducing the “velvet” fork. According to the paper, this type of fork modifies the given protocol both “backward compatible and inclusive to legacy blocks.” In this case, “new protocol rules are not enforced by upgraded consensus participants, and any valid block adhering to the new rules is also a valid block in terms of the old rules.”

An Introduction to Velvet
Up to now, there have been just two types of forks in the blockchain: the soft and the hard ones. Soft fork is backward-compatible, as only the previously valid blocks are made invalid, and the new blocks are recognized by the old nodes as valid. The hard fork, on the other hand, is a permanent split from the previous blockchain version, which makes the previously invalid blocks valid, so that the old nodes are no longer accepted.

The new forking mechanism has already raised some hype in the crypto community because it just might help overcome the issue of politics slowing down the significant code changes. Aleksei Zamyatin, the research assistant at the Imperial College London, says that the most curious part about the velvet fork concept is that “you can introduce some new concepts to permissionless blockchains without necessarily having a majority of consensus participants agree to do so”.

In essence, the velvet fork means that the developers no longer need to ensure the complete support of the whole ecosystem to update the blockchain.

According to the “Wild Velvet Fork” paper, the fork is potentially capable of preventing the dissent before it occurs: “The velvet fork […] does not require support of a majority of participants and can potentially avoid rule disagreement forks from happening altogether.”

A Brief History of Fork
The first divisive fork in Bitcoin history was Bitcoin XT, launched in December 2014 by Mike Hearn. It was run by more than 1000 nodes in August 2015. Bitcoin XT was aiming to increase the overall block size to 8 MB to achieve twenty-four transactions per second. The project pretty much died by 2016. Though is still maintained, there are barely 30 Bitcoin XT nodes that are still running.

In December 2015, Bitcoin Unlimited was released. It used a unique strategy: though the code was released, there was no direction provided on the type of fork that should be used. Its main features included the miners’ ability to configure the size of the blocks that they would validate. Also, the nodes could set the limit for the size of the blocks that they would accept. Despite some serious problems with reliability, there are currently about 650 nodes running Bitcoin Unlimited.

The next attempt to increase the block size and speed up the transactions was made in December 2016, when the Bitcoin Classic fork was created. Its goal was to increase the block size by 2MB, which was changed to a market-driven block size only 8 months after the launch. Bitcoin Classic achieved the number of 2000 nodes, but, after a rapid decline, there are about 100 nodes running it today.

Segregated Witness (SegWit) was activated in August 2017. It was, essentially, a hack that removed signatures to another data structure, the “extended block”, to reduce the size of individual bitcoin transactions. It was accepted with enthusiasm and received 95% approval from the miners.

Bitcoin Cash branched off in August 2017, when the Bitcoin Cash wallets started rejecting the bitcoin transactions. Some of the major influencers in the industry actively supported it, and several big exchanges (Kraken, among others) decided to provide their bitcoin holders with Bitcoin Cash. Bitcoin Cash miners have the ability to switch to bitcoin mining, which has created the so-called “opportunistic mining”, which means miners jumping between BTC and BCH, as the profitability of these coins changes. Currently, Bitcoin Cash is run by approximately 800 nodes.

October 2017 saw the forking of Bitcoin Gold, a BTC implementation aiming to lower the importance of the big-scale miners on the network. Potentially, Bitcoin Gold’s mining framework allows anyone who has a powerful enough GPU to mine the coins on a competitive level.

All the forks listed previously were either hard (Bitcoin XT, Bitcoin Classic, Bitcoin Unlimited, Bitcoin Cash) or soft ones (SegWit). The term “velvet fork” was mentioned for the first time in a December 2017 paper by Aggelos Kiayias (University of Edinburgh), Andrew Miller (University of Illinois at Urbana-Champaign), and Dionysis Zindros (National and Kapodistrian University of Athens), “Non-Interactive Proofs of Proof-of-Work”. In this paper, the velvet fork is said to be a “less disruptive update mechanism” compared to the soft and hard forks. In the case of velvet update, the updated (“forked”) clients still remain fully compatible with the un-updated ones. As a result, “in a velvet fork, the blockchain system can remain supported by a diverse software codebase indefinitely, while it can still enjoy, at least in proportion, some of the […] benefits of the update without any of the security downsides”.

Despite it presenting some interesting opportunities, the velvet fork still has not come into wide use. An example of a velvet fork would be the P2pool, a decentralized BTC mining pool that allows blocks to coexist together without splitting.

A Velvety Threat
Velvet forks present a lot of opportunities, yet unexplored, but they can also be a vulnerability.

Wrongdoers could potentially use the velvet fork to their advantage. For example, the recently published paper describes a situation in which a number of “velvet miners” have upgraded to the new set of rules, while the others have not. In this case, the un-upgraded miners can be persuaded to accept the upgraded over the legacy blocks, and this, in turn, “can have an unclear impact on the security assumptions of such systems, as current attack models mostly do not assume a variable utility of blocks”.

Another threat described by Zamyatin is the “selfish mining”. “Selfish mining” means that, when the miners find a block, they conceal it and start searching for the new block, while everyone else is busy looking for the block that has actually been found. This way, the dishonest miners would get a head start in the quest for the next block. As Zamyatin himself said, “I can bribe people to work on my chain. There’s no guarantee that I’ll win, but it could potentially offer an incentive to deviate from the protocol rules.” However, there is still no real clarity regarding how serious these threats really are.

Velvet is Worth a Try
Despite the potential vulnerabilities of the velvet fork and the fact that it “doesn’t work for something like SegWit”, it might come in very handy.

Currently, Zamyatin is searching for a way of implementing the velvet fork to bring the Ethereum’s GHOST protocol to the bitcoin realm. This kind of project is unlikely to gain enough support for either a hard or a soft fork because of it completely restructuring the system, so that the reconciling velvet fork could be the perfect solution in this case.

According to Zamyatin, the velvet fork could have an even bigger potential: “You could even have multiple versions running in parallel, perhaps even compatible to each other, and all this without necessitating often controversial soft or hard forks.”