Put a Fork in It! – SegWit2x Canceled

The developers and major supporters of the SegWit2x hard fork called it quits yesterday, a week before the proposed hard fork date. This came as a big surprise to many involved, especially those hoping for “free” S2X coins. So, what happened, what is SegWit2x in the first place, and what does this mean for the future of Bitcoin?

Scaling Bitcoin

Bitcoin has a scaling problem. The Bitcoin network has gotten so popular over the years that transaction fees have shot through the roof. A couple of years ago, many transactions were confirmed for little or no fees. Recently, the average transaction fee shot up to $5, making most consumer transactions impractical. So, what determines these transaction fees, and what can be done to reduce fees in the future?

Transaction Fees

When you initiate a Bitcoin transaction, it needs to be included into a block in order to be confirmed by the network. A new block is created every 10 minutes or so by a Bitcoin miner. The miner gets to choose the transactions that are placed in the next block and included in the blockchain. If blocks were unlimited in size, miners would likely include all transactions regardless of fees. However, blocks can only hold about 2500 transactions which means that users need to outbid each other in order to get included in a block.

Most users never notice this transaction fee bidding process because their wallet handles it behind the scenes. Wallets will try and get a transaction included in the next 1-3 blocks for a reasonable fee. Some wallets give you to option to set a priority on your transaction, effectively allowing you to increase the transaction fee in order to increase your chance of getting included in the next block. Some wallets even let users manually set their fees. This can be a dangerous approach if the user is not aware of the current fee climate. If a user includes too small of a fee, their transaction may not get included for a very long time. Luckily there are many resources that help users determine what transaction fee to use.

Reducing Transaction Fees

Many users want to see Bitcoin used as a transactional currency for all types of purchases. In order for this to happen, fees need to be minimal, and the Bitcoin network would need to be able to handle many more transactions per second. Reducing transaction fees and helping Bitcoin scale for more users has been the most hotly contested topics by developers, miners, and users. There have been a few different approaches to solve this problem.

Bigger Blocks

Bitcoin blocks are currently 1 MB. All transactions have an associated size, typically around 250 bytes. Since blocks are currently full, why not make the blocks bigger? This has been an argument brought forward by many users, and it seems like a no-brainer. However, when you dig into the proposal a bit, it is anything but clear-cut.

Throughput vs. Scalability

Keeping all other parameters the same, imagine we increase Bitcoin’s block size to 2 MB. Instantly, Bitcoin fees should be reduced as blocks can now handle twice as many transactions. The amount that fees are reduced will really depend on the number of transactions looking for inclusion in the 2 MB block. If for instance there are exactly 2,500 unconfirmed transactions on the Bitcoin network (the most that a 1 MB block can hold), fees could theoretically drop to zero. This is because all fees are able to be included in the block, and the transaction fee “auction” never takes place. Great solution, right!?

The major drawback is that increasing the blocksize will increase Bitcoin’s throughput, but not necessarily its scalability. What this means is that a 2 MB block is really a temporary solution. If the Bitcoin network continues to see exponential growth, there could easily be 5,000 transactions fighting over space in the 2 MB block in the near future, creating the fee bidding war again.

Hard Forks

In addition to being a temporary solution, increasing the blocksize is not as easy as it sounds. Sure, going from 1 MB to 2 MB involves changing only a few lines of code, but implementing that change requires a hard fork of the network. As discussed in a previous post, a hard fork is a non-backwards compatible protocol change that has the potential to seriously damage the network. For this reason, many believe that hard forks should be avoided at all costs. If hard forks do not have network consensus, (all nodes agreeing to upgrade and doing it simultaneously) they could effectively split the Bitcoin network. This network split would create conflicting Bitcoin histories playing by conflicting rules. The two histories would each have their own associated “coin”, with its own value, as determined by its price on the exchanges. This is why the Segwit2X hard fork would have credited all Bitcoin holders with an equivalent amount of “Segwit2X coin”.

Unforeseen Network Failures

Hard forks are not the end of the world. If a hard fork has consensus, they can (and have) been implemented without destroying the network. However, with $120 Billion at stake, most core developers would like to avoid a hard fork if possible. In addition to the potential problems introduced by a hard fork, developers are not in agreement on how the network would handle bigger blocks. Most agree that a change to 2 MB would not be a huge deal, but as block size goes up, it can have major implications on nodes and miners. The biggest implication would be with the propagation of larger blocks across the network, particularly the “announcement” of new blocks to miners. Miners make their living by solving problems faster than other miners. It is important that miners start working on a new block as soon as they can. When a block is discovered, miners need to know this as soon as possible so they can stop working on their old solution and start finding a solution for a new block. As blocks get bigger, the potential for a propagation problem grows. Not all developers think this is a huge deal, and there are some workarounds being proposed.

Regardless, bigger blocks increase throughput but do not ultimately scale Bitcoin. Is there a more elegant solution available?

Segregated Witness (SegWit)

The Bitcoin Core developers do not simply want to increase Bitcoin’s throughput, they want to make Bitcoin scalable and more flexible. Part of their solution to this problem involves an approach called “Segregated Witness”. Segregated Witness (SegWit for short) is a highly technical topic explained thoroughly in

, so we’ll focus on some top-level information. SegWit allows for the removal of some information (nominally, the “Witness” data) from a transaction while still ensuring the same safety and functionality of the Bitcoin network. Removal of this information leads to smaller transactions and therefore more transactions per block. Some argue that the removal of the witness information effectively allows Bitcoin to handle 3-4x the amount of transactions per block.

Segwit was implemented via a soft fork in August 2017. The soft fork implementation meant that SegWit was an optional upgrade. Not all nodes need to use SegWit to participate in the network. This soft fork integration prevented the need for a hard fork, but it also meant that wallets were not forced to implement this technology. Because of it’s optional nature, many wallets and exchanges have been cautious with implementing SegWit, and it has been slow to roll out. This is why in November (3 months after introduction) we still have high Bitcoin transaction fees. Use of SegWit is growing however.

But, Mr. bitconsult, isn’t SegWit also a temporary fix? Yes, thanks for paying attention! SegWit in itself is not a scalability fix, but it is a necessary implementation on the path to scalability.

The Lightning Network

The ultimate scalability fix for Bitcoin is the

Lightning Network

. The Lightning Network is capable of billions of transactions per second with exceptionally low fees. How is this possible? The Lightning Network processes and settles transactions off blockchain by utilizing smart contracts. The Lightning Network is a huge breakthrough that warrants its own blog post, but we’ll cover some of the major aspects.

The Lightning Network allows not only for small transactions, but also for the implementation of incredibly tiny transactions that are not possible today. For example, imagine streaming content where you can pay by the second. Or, imagine you have a smart device that collects troves of information. Say another smart device wants to purchase just one tiny piece of that information. The Lightning Network allows those devices to transact the data for fractions of a penny. This is not possible currently, as credit cards typically have minimum charges due to their flat fees per transaction, and there are restrictions on many cross-border payments. Many developers envisioned Bitcoin as a way for smart devices to interact with tiny transactions and create their own markets for data, effective serving as the financial backbone for “The Internet of Things”.

Some Bitcoin purists argue that Lightning Network is ant-Bitcoin. The whole point of Bitcoin is to have immutable transactions recorded in a public ledger, right? At first glance it seems like using the Lightning Network requires third-party trust, something that Bitcoin was invented to combat. But in fact, the Lightning Network is designed in a way to remain trustless, but only use the Blockchain to settle disputed transactions. Lightning Network can be thought of as paying a bar tab. You could settle up after every transaction, but that’s inconvenient for you and the bartender. It’s more convenient to keep track of your purchases and settle up at the end of the night. This isn’t exactly how The Lightning Network works, but it’s good enough for a free blog. If you’ve made it this far, you’re a true coin-head and you should read Mastering Bitcoin, seriously.

It’s important to note that even after Lightning Network is implemented, users can still perform their transactions on the Bitcoin blockchain if desired.

Alternative Approaches

Bitcoin Cash

Not everyone agrees with the SegWit/Lightning Network approach to scaling Bitcoin. A group of developers and miners (about 5%) were so frustrated with 1 MB blocks that they decided to hard fork the Bitcoin network in August and create something called Bitcoin Cash. Bitcoin Cash is similar to Bitcoin except that it does not use SegWit and the maximum block size is 8 MB. If you owned Bitcoin on August 1st, 2017, you got an equivalent amount of Bitcoin Cash when the network went live. Bitcoin Cash currently has the third highest market cap of all cryptocurrencies. Bitcoin cash goes by the “BCH” or “BCC” ticker on exchanges.

Bitcoin

The “true” Bitcoin, the one worth about $7,200 and referred to as “BTC”, is Bitcoin with 1 MB Blocks, SegWit Enabled, and plans to integrate the Lightning Network.

SegWit2x

SegWit2x (S2X) was a proposal to scale Bitcoin by first implementing SegWit in August 2017and then increasing the block size to 2 MB (hence the “2X” for 2 times the Blocksize) in November 2017. This approach was laid out in the so-called “New York Agreement” that a handful of players in the Bitcoin world signed as a roadmap for scaling Bitcoin. Unfortunately for S2X, many Core Developers were not included in this discussion.

The Bitcoin Core developers manage the Bitcoin Core reference client, which is the most popular software for running a full node. Full nodes enforce the rules of the Bitcoin network and ensure network consensus. Many people agree that the Bitcoin Core developers are the most knowledgeable players in Bitcoin, and hence choose to follow their technical guidance, especially on security related issues. Bitcoin Core supported the Segwit soft fork upgrade, which went through in August, but opposed the 2x hard fork that was scheduled for November. Part of the argument was security, as mentioned above. Another reason for 2X opposition was the fact that Bitcoin Cash was created. The purpose of the New York agreement was to create a compromise between small block and big block supporters and prevent a hard fork. However, since Bitcoin Cash created an 8 MB hard fork, many argued that big block supporters could go use that network instead.

This week the key S2X supporters honorably recognized that there was not consensus on the 2X upgrade and pulled their plans to hard fork the network at this time.

The Impact of S2X Cancellation

Ultimately, the cancellation of S2X is a good sign for Bitcoin. Another hard fork would be likely to confuse users and create more infighting in the Bitcoin community. It’s also relatively easy to create a fork, but it creates a huge burden on wallets and exchanges that have to ensure that their users can safely access both chains.

Bitcoin saw increased volume and price volatility following the S2X cancellation. The price rose sharply immediately following the announcement, likely due to an increase in investor confidence in the “one true Bitcoin”. The rally was short lived, however, as the price quickly dove $500. One might attribute the price drop to traders moving out of Bitcoin and back into alternative cyrptocurrencies (alt-coins). Alt-coins took a beating in the last couple of months, with some dropping as much as 80%. Many traders were holding Bitcoin in order to receive S2X coins during the fork. Once the fork was canceled, traders moved back into alts.

Conclusion

Bitcoin is an open-source, decentralized project. This means that important decisions, scaling included, take place in public. These conversations happen on GitHub, Twitter, Reddit, and (more frequently now), on the news. To some, this shows Bitcoin to be an unorganized, unfocused mess. In reality, this is true democracy in action. Each argument is a conversation on how to improve Bitcoin. Each decision is a milestone in decentralized network consensus.

Share this: Twitter

Facebook

