User avatar
Decoded
Global Moderator
Global Moderator
Posts: 417
Joined: Sat Oct 15, 2016 11:28 am

Donate BTC of your choice to 1fdFgrw59gczh96esrpJST6MVHyQm4VJK

Forks - What are they, and why should I care?

Wed Jan 11, 2017 12:40 pm

Hey guys, I had a lot of fun writing this article, and it was a great learning experience for me. I hope you guys can take away some useful knowledge away after this read!

Note: Every single letter was hand typed by yours truly, 90% of which was on my phone, and my thumbs are aching after finishing this with close to fifteen thousand characters. Such is life. :D


There is alot of talk around the idea of a Bitcoin fork nowadays, due to the controversial release of segwit and the ever-looming blocksize issue. I'm here to explain the importance of a fork, why we need (or don't need) one, and help you find what is not only in the best interests for you, but the network as a whole. Both short and long term.

Image

What is a fork and why should I even care?

A fork, a phrase commonly used by coders when collaborating with others, is when someone takes existing open source code, changes it, and releases it. This is usually when the original developers abandon the project, do not listen to the community, or are not able to implement the changes people want. For example. A fork of the defunct Truecrypt (It was trusted for a long while, even though there were actually no security tests. Recently it was leaked that the NSA could crack it), has been forked and the result, Veracrypt.

When it comes to Bitcoin, it's basically the same thing. Some people want different things, and people try and accommodate that.

Hard and Soft forks

Forks can be split into two categories - Hard forks and soft forks. They both are a type of fork, obviously, but have totally different effects, be it intentional or otherwise.

Soft forks can be simplified to forks that are adding and restricting rules to the network. They are forward compatible. This means that the original requirements would still be fulfilled, but so will the newer rules. The Bitcoin protocol requires a soft fork to be supported by 51% or more of the network, otherwise it will be rejected and act like a hard fork, becoming an alternate coin, instead of building over the original. When the 51% consensus is reached, everyone automatically moves over and the changes are written.

Hard forks offer all the possibilities of a soft fork, but are much more risky to implement. They can be described as removing or changing rules in the Bitcoin network. Due to the nature of this, a hard fork is not compatible with older versions, as anything that may be valid in the fork may not be valid in the original. Hence we say that hard forks are not forward compatible. This is the reason hardforks require a consensus, as some can argue that a hardforks is simply a making of an alt coin, and requiring all the users to move over to it.

TL;DR: Soft forks are forward compatible, meaning that they are easier to implement. Hard forks are not, however they are more powerful, since they can remove restrictions, on top of creating them.

The Blocksize Debate

Theres no doubt we will need a fix for the blocksize issue, if we to have any hope of mass adoption. Even with 2 million users (Juniper Research found 1.3 million active Bitcoin users in 2014), we are struggling with extremely high and volatile fee rates, and jam-packed blocks.

Image

The question is, how is one to fix this? There are many approaches, and this is one of the key factors currently in play when it comes to choosing a fork.

How does all this affect me?

Most of us are all affected equally. A failed fork can lead to two alternate block chains, in which your Bitcoin exist. So if you originally had 21 BTC, you would now have 21 BTC on both chains. Sounds cool, right? Nope. Here's a quick economics lesson - Value cannot be created out of thin air. Value is based on the supply and demand of an item. So naturally, if the Bitcoin network were to be split, the price would be split proportionally. If only 10% of users move over to a hard fork, then the original would be worth 90% of the original price, and the hard fork would be worth 10%. Confusing, right?

A fork can also affect you due to the changes it brings. As we all know, there may not always be a perfect change. Someone will always be upset about something. And you may very well be the one to be angered. Maybe you are a number, and you vote to increase the block size to 100MB. But there barely 5MB of transactions pending, meaning that if you were to add every single transaction, the block wouldn't be full. There would be no demand to get put into the next block, so the fees would naturally drop. Not good for you, who tends to make a good portion of your money from transaction fees.

Soft Forks

The BIP66 softfork, 2015

This historical event in Bitcoin's past occured when there was major consensus (95% of the network) to implement and activate Bitcoin Improvement Proposal (or BIP) 66. The changes made (put simply) were to update the block version in the bitcoin protocol from V2 to V3. Now with this change active, all blocks mined then on that were V2 were considered invalid by everyone running BIP66. This means that the remaining 5% would go off on an invalid chain, if they were to mine a block.

Soon after the change, this very thing happened. A pool mined a V2 block, which was seen as invalid by most of the miners and nodes on the network. However, a type of mining called SPV mining (where a miner does not download and verify a block before starting to mine the next one, to get a head start over everyone else) caused a problem. Since these miners did not verify the blocks, they started creating the next block, despite the fact that the block was invalid. This had caused all the SPV miners to follow on the invalid fork, creating two alternate blockchains. Soon after, this error was rectified when the miners moved back to the legitimate blockchain.

Segwit

Image

Segwit is a soft fork created recently by the Bitcoin Core developers. It is a portmanteau of Segregated Witness. The concept of this solution is to isolate the transaction signatures in a transaction, and to skip them when calculating a transaction ID. In effect, this change decreases the general transaction size, allowing miners to fit more transactions into a block without raising the 1 MB hard cap. Another plus is that it totally eliminates transaction malleability, meaning that a transaction can only have one transaction ID. Currently, a transaction can have different IDs but still be identical, meaning that one could perform a double spend without anyone noticing if a node does not actively search for different forms of that transaction .

Segwit activation is currently in progress. It requires a majority of the Bitcoin network to accept it before it's activation. At the moment there is a lot of controversy around the matter, not because of its functions per second, but the Bitcoin politics surrounding it (Bitcoin is supposed to be decentralised. But politics? Oh, the irony!)

The problem is not with Segwit itself, but the fact that Segwit lays the foundation for changes to be made that are much more controversial. Some people argue that supporting Segwit is only strengthening the current position of the team of developers currently working on Bitcoin Core, and giving them all the power. (I've never had a liking for politics. All this bickering disgusts me, honestly)

But at the moment, research shows that the bitcoin network cannot handle blocks larger than 2 megabytes. This is due to the majority of the nodes and miners being operated in places with low-performance internet, since it is cheaper and mining currently does not require downloads larger than a couple of kilobytes. Thus, we can either have a static blocksize increase, or move to Segwit, which offers scalability for the future.

Hard Forks

Now, onto the good stuff. The discussion of all the different forks, and what they offer. But first, let's start with the original, Bitcoin Core.

Bitcoin Core

Bitcoin Core is the "fork" (air quotes because we never actually moved to it from anything - Core is the original, and we have never actually completed a hard fork before) that we are currently using today. Created by the pseudonymous Satoshi Nakamoto, it is what has brought us all together.

Features

- 1MB blocksize limit
- 10 minute transaction time
- Developers are pro-segwit
- When syncing, full clients will download the entirety of each block
- Relays double spends like normal transactions

Bitcoin XT

Bitcoin XT is one of the earlier forks to be released. In mid-2015, it gained large amount of attention and many users were excited. Many started switching over, until multiple well known developers expressed their concern that the activation rate (75% of recent blocks) were too low, and could cause conflicting blocks and large problems. Soon after, the amount of supporters dropped and in early 2016, at the time when the hard fork was hoped to be active, only 15% of the last mined blocks were supporting XT.

It currently is still being supported by some users, however support has slowly died down.

Pros and Cons: (Entries marked with * are based on perspective, and may not seem valid for you. Take them with a grain of salt.)

Pros:
- 2MB block size
- Bandwidth limiting (Limit the amount of nodes your client connects to to download/verify)
- Thin blocks (If you are running a node that has relayed many transactions, you will have the transactions changed in the mempool. The idea of thin blocks is to use the transactions that you already have and put them into the block, once your client knows what to put in. This will reduce the blocksize greatly)
- Double spend relaying (Instead of simply treating a known double spend like a normal transaction and broadcasting it accordingly, an XT node will aggressively broadcast all double spend transactions, decreasing the chance that a merchant will not spot a double spend attack)
- Better DoS and DDoS countermeasures and handling

Cons:
- Small community
- Recent negative discussions regarding XT
- Was released almost two years ago, yet still no sign of a steadily growing community.
- Lots of FUD around XT and Classic that may or may not be true.

Neutral:
- Developers are pro-blocksize-increase
- 75% activation threshold

Bitcoin Classic

Classic, birthed from the idea that the current Core Devs were going off on a tangent, was made to correctly follow their own developer's understanding of Mr/Mrs Nakamoto's philosophy. Others can argue however, that people can twist words to mean anything they please.

Classic can be seen more or less as a more passive Bitcoin XT. It has the main 2MB blocksize increase, however less side changes, trying to keep the changes to a minimum and stay with Satoshi's original.

Pros and Cons: (Entries marked with * are based on perspective, and may not seem valid for you. Take them with a grain of salt.)

Pros:
- Hard cap of 2MB
- Updates are based on a voting system, and not at he whim of the development team. Helps support decentralization.

Cons:
- Following Satoshi's philosophy is a psychological thing. After all, Bitcoin is a decentralised system, so the beliefs of the community as a whole should matter more than that of it's creator, who disappeared years ago.*
- Was released more than a year ago, yet still no sign of a steadily growing community.
- Lots of FUD around XT and Classic that may or may not be true.


Neutral
- Developers are pro-blocksize-increase

Bitcoin Unlimited

One of the newer hard forks out there, Bitcoin Unlimited, has gained a lot of attention, especially from the people who believe that the current core developers are not following the right path, or that they are not working hard enough.

Unlimited supports a greater freedom for Bitcoin network participants. Each miner is able to specify whatever they want the blocksize to be, from as small as possible to multiple gigabytes. However there is a temporary limit of 2MB. Anything above this will be rejected by any nodes and miners supporting this limit. If four blocks in a row break this limit and this chain is longer than the original change, the network will switch over and everyone will update their blocksize. This makes it easier for future blocksize resizing, without the need of a hard fork. The developers argue that this removes one of the major points of Bitcoin centralisation, the blocksize.

Pros and Cons: (Entries marked with * are based on perspective, and may not seem valid for you. Take them with a grain of salt.)

Pros:
- Soft cap of 2MB, easily scalable
- Stronger decentralization enforcement
- Good option for non-mining full nodes
- Suitable long-term blocksize solution

Cons:
- Custom blocksize could cause problems between users actively switching between blocksize, instead of supporting a static value
- More unstable*
- Does not fully follow Satoshi's philosophy*

Neutral
- Developers are pro-blocksize-increase


I'm sorry if I have touched on a personal topic for anyone reading this, since we all are huge crypto advocates. If I have missed something, or explained something wrongly and you would like it to be fixed/improved, feel free to post below!

If you would like me to add major a hard/soft fork that I haven't mentioned, please tell me!

On the other side of the spectrum, if you found this informative guide interesting or helpful, please click the thumbs up below, and nominate this thread here - topic15139.html


Here's a Bitcoin potato for digging through this long post.

Image
theres a snake in my boot

iFixBTCmemoryIssues
Gold Bitcoiner
Gold Bitcoiner
Posts: 2682
Joined: Tue Nov 24, 2015 9:03 pm

Re: Forks - What are they, and why should I care?

Wed Jan 11, 2017 6:01 pm

Hey guys, I had a lot of fun writing this article, and it was a great learning experience for me. I hope you guys can take away some useful knowledge away after this read!

Note: Every single letter was hand typed by yours truly, 90% of which was on my phone, and my thumbs are aching after finishing this with close to fifteen thousand characters. Such is life. :D


There is alot of talk around the idea of a Bitcoin fork nowadays, due to the controversial release of segwit and the ever-looming blocksize issue. I'm here to explain the importance of a fork, why we need (or don't need) one, and help you find what is not only in the best interests for you, but the network as a whole. Both short and long term.

Image

What is a fork and why should I even care?

A fork, a phrase commonly used by coders when collaborating with others, is when someone takes existing open source code, changes it, and releases it. This is usually when the original developers abandon the project, do not listen to the community, or are not able to implement the changes people want. For example. A fork of the defunct Truecrypt (It was trusted for a long while, even though there were actually no security tests. Recently it was leaked that the NSA could crack it), has been forked and the result, Veracrypt.

When it comes to Bitcoin, it's basically the same thing. Some people want different things, and people try and accommodate that.

Hard and Soft forks

Forks can be split into two categories - Hard forks and soft forks. They both are a type of fork, obviously, but have totally different effects, be it intentional or otherwise.

Soft forks can be simplified to forks that are adding and restricting rules to the network. They are forward compatible. This means that the original requirements would still be fulfilled, but so will the newer rules. The Bitcoin protocol requires a soft fork to be supported by 51% or more of the network, otherwise it will be rejected and act like a hard fork, becoming an alternate coin, instead of building over the original. When the 51% consensus is reached, everyone automatically moves over and the changes are written.

Hard forks offer all the possibilities of a soft fork, but are much more risky to implement. They can be described as removing or changing rules in the Bitcoin network. Due to the nature of this, a hard fork is not compatible with older versions, as anything that may be valid in the fork may not be valid in the original. Hence we say that hard forks are not forward compatible. This is the reason hardforks require a consensus, as some can argue that a hardforks is simply a making of an alt coin, and requiring all the users to move over to it.

TL;DR: Soft forks are forward compatible, meaning that they are easier to implement. Hard forks are not, however they are more powerful, since they can remove restrictions, on top of creating them.

The Blocksize Debate

Theres no doubt we will need a fix for the blocksize issue, if we to have any hope of mass adoption. Even with 2 million users (Juniper Research found 1.3 million active Bitcoin users in 2014), we are struggling with extremely high and volatile fee rates, and jam-packed blocks.

Image

The question is, how is one to fix this? There are many approaches, and this is one of the key factors currently in play when it comes to choosing a fork.

How does all this affect me?

Most of us are all affected equally. A failed fork can lead to two alternate block chains, in which your Bitcoin exist. So if you originally had 21 BTC, you would now have 21 BTC on both chains. Sounds cool, right? Nope. Here's a quick economics lesson - Value cannot be created out of thin air. Value is based on the supply and demand of an item. So naturally, if the Bitcoin network were to be split, the price would be split proportionally. If only 10% of users move over to a hard fork, then the original would be worth 90% of the original price, and the hard fork would be worth 10%. Confusing, right?

A fork can also affect you due to the changes it brings. As we all know, there may not always be a perfect change. Someone will always be upset about something. And you may very well be the one to be angered. Maybe you are a number, and you vote to increase the block size to 100MB. But there barely 5MB of transactions pending, meaning that if you were to add every single transaction, the block wouldn't be full. There would be no demand to get put into the next block, so the fees would naturally drop. Not good for you, who tends to make a good portion of your money from transaction fees.

Soft Forks

The BIP66 softfork, 2015

This historical event in Bitcoin's past occured when there was major consensus (95% of the network) to implement and activate Bitcoin Improvement Proposal (or BIP) 66. The changes made (put simply) were to update the block version in the bitcoin protocol from V2 to V3. Now with this change active, all blocks mined then on that were V2 were considered invalid by everyone running BIP66. This means that the remaining 5% would go off on an invalid chain, if they were to mine a block.

Soon after the change, this very thing happened. A pool mined a V2 block, which was seen as invalid by most of the miners and nodes on the network. However, a type of mining called SPV mining (where a miner does not download and verify a block before starting to mine the next one, to get a head start over everyone else) caused a problem. Since these miners did not verify the blocks, they started creating the next block, despite the fact that the block was invalid. This had caused all the SPV miners to follow on the invalid fork, creating two alternate blockchains. Soon after, this error was rectified when the miners moved back to the legitimate blockchain.

Segwit

Image

Segwit is a soft fork created recently by the Bitcoin Core developers. It is a portmanteau of Segregated Witness. The concept of this solution is to isolate the transaction signatures in a transaction, and to skip them when calculating a transaction ID. In effect, this change decreases the general transaction size, allowing miners to fit more transactions into a block without raising the 1 MB hard cap. Another plus is that it totally eliminates transaction malleability, meaning that a transaction can only have one transaction ID. Currently, a transaction can have different IDs but still be identical, meaning that one could perform a double spend without anyone noticing if a node does not actively search for different forms of that transaction .

Segwit activation is currently in progress. It requires a majority of the Bitcoin network to accept it before it's activation. At the moment there is a lot of controversy around the matter, not because of its functions per second, but the Bitcoin politics surrounding it (Bitcoin is supposed to be decentralised. But politics? Oh, the irony!)

The problem is not with Segwit itself, but the fact that Segwit lays the foundation for changes to be made that are much more controversial. Some people argue that supporting Segwit is only strengthening the current position of the team of developers currently working on Bitcoin Core, and giving them all the power. (I've never had a liking for politics. All this bickering disgusts me, honestly)

But at the moment, research shows that the bitcoin network cannot handle blocks larger than 2 megabytes. This is due to the majority of the nodes and miners being operated in places with low-performance internet, since it is cheaper and mining currently does not require downloads larger than a couple of kilobytes. Thus, we can either have a static blocksize increase, or move to Segwit, which offers scalability for the future.

Hard Forks

Now, onto the good stuff. The discussion of all the different forks, and what they offer. But first, let's start with the original, Bitcoin Core.

Bitcoin Core

Bitcoin Core is the "fork" (air quotes because we never actually moved to it from anything - Core is the original, and we have never actually completed a hard fork before) that we are currently using today. Created by the pseudonymous Satoshi Nakamoto, it is what has brought us all together.

Features

- 1MB blocksize limit
- 10 minute transaction time
- Developers are pro-segwit
- When syncing, full clients will download the entirety of each block
- Relays double spends like normal transactions

Bitcoin XT

Bitcoin XT is one of the earlier forks to be released. In mid-2015, it gained large amount of attention and many users were excited. Many started switching over, until multiple well known developers expressed their concern that the activation rate (75% of recent blocks) were too low, and could cause conflicting blocks and large problems. Soon after, the amount of supporters dropped and in early 2016, at the time when the hard fork was hoped to be active, only 15% of the last mined blocks were supporting XT.

It currently is still being supported by some users, however support has slowly died down.

Pros and Cons: (Entries marked with * are based on perspective, and may not seem valid for you. Take them with a grain of salt.)

Pros:
- 2MB block size
- Bandwidth limiting (Limit the amount of nodes your client connects to to download/verify)
- Thin blocks (If you are running a node that has relayed many transactions, you will have the transactions changed in the mempool. The idea of thin blocks is to use the transactions that you already have and put them into the block, once your client knows what to put in. This will reduce the blocksize greatly)
- Double spend relaying (Instead of simply treating a known double spend like a normal transaction and broadcasting it accordingly, an XT node will aggressively broadcast all double spend transactions, decreasing the chance that a merchant will not spot a double spend attack)
- Better DoS and DDoS countermeasures and handling

Cons:
- Small community
- Recent negative discussions regarding XT
- Was released almost two years ago, yet still no sign of a steadily growing community.
- Lots of FUD around XT and Classic that may or may not be true.

Neutral:
- Developers are pro-blocksize-increase
- 75% activation threshold

Bitcoin Classic

Classic, birthed from the idea that the current Core Devs were going off on a tangent, was made to correctly follow their own developer's understanding of Mr/Mrs Nakamoto's philosophy. Others can argue however, that people can twist words to mean anything they please.

Classic can be seen more or less as a more passive Bitcoin XT. It has the main 2MB blocksize increase, however less side changes, trying to keep the changes to a minimum and stay with Satoshi's original.

Pros and Cons: (Entries marked with * are based on perspective, and may not seem valid for you. Take them with a grain of salt.)

Pros:
- Hard cap of 2MB
- Updates are based on a voting system, and not at he whim of the development team. Helps support decentralization.

Cons:
- Following Satoshi's philosophy is a psychological thing. After all, Bitcoin is a decentralised system, so the beliefs of the community as a whole should matter more than that of it's creator, who disappeared years ago.*
- Was released more than a year ago, yet still no sign of a steadily growing community.
- Lots of FUD around XT and Classic that may or may not be true.


Neutral
- Developers are pro-blocksize-increase

Bitcoin Unlimited

One of the newer hard forks out there, Bitcoin Unlimited, has gained a lot of attention, especially from the people who believe that the current core developers are not following the right path, or that they are not working hard enough.

Unlimited supports a greater freedom for Bitcoin network participants. Each miner is able to specify whatever they want the blocksize to be, from as small as possible to multiple gigabytes. However there is a temporary limit of 2MB. Anything above this will be rejected by any nodes and miners supporting this limit. If four blocks in a row break this limit and this chain is longer than the original change, the network will switch over and everyone will update their blocksize. This makes it easier for future blocksize resizing, without the need of a hard fork. The developers argue that this removes one of the major points of Bitcoin centralisation, the blocksize.

Pros and Cons: (Entries marked with * are based on perspective, and may not seem valid for you. Take them with a grain of salt.)

Pros:
- Soft cap of 2MB, easily scalable
- Stronger decentralization enforcement
- Good option for non-mining full nodes
- Suitable long-term blocksize solution

Cons:
- Custom blocksize could cause problems between users actively switching between blocksize, instead of supporting a static value
- More unstable*
- Does not fully follow Satoshi's philosophy*

Neutral
- Developers are pro-blocksize-increase


I'm sorry if I have touched on a personal topic for anyone reading this, since we all are huge crypto advocates. If I have missed something, or explained something wrongly and you would like it to be fixed/improved, feel free to post below!

If you would like me to add major a hard/soft fork that I haven't mentioned, please tell me!

On the other side of the spectrum, if you found this informative guide interesting or helpful, please click the thumbs up below, and nominate this thread here - topic15139.html


Here's a Bitcoin potato for digging through this long post.

Image
Great write-up, this is an excellent analogy:
A fork of the defunct Truecrypt (It was trusted for a long while, even though there were actually no security tests. Recently it was leaked that the NSA could crack it), has been forked and the result, Veracrypt.
For Bitcoin to succeed, the network must be moved away from Blockstream Core, these are bad people.
Image

If you are running a version of Bitcoin Core, stop using it. Upgrade to Bitcoin Unlimited or Classic immediately.

Fix Your Unconfirmed Transaction.

Vote for the future of our Bitcoin network!

User avatar
Decoded
Global Moderator
Global Moderator
Posts: 417
Joined: Sat Oct 15, 2016 11:28 am

Donate BTC of your choice to 1fdFgrw59gczh96esrpJST6MVHyQm4VJK

Re: Forks - What are they, and why should I care?

Wed Jan 11, 2017 9:36 pm


Great write-up, this is an excellent analogy:
A fork of the defunct Truecrypt (It was trusted for a long while, even though there were actually no security tests. Recently it was leaked that the NSA could crack it), has been forked and the result, Veracrypt.
For Bitcoin to succeed, the network must be moved away from Blockstream Core, these are bad people.
Oh yes. I really must ask, why do people hate blockstream? On Bitcoin talk many users are being criticized for defending blockstream and being shills for them. I personally don't see a problem with Segwit, except for the fact that it gives even more power to blockstream. It doesn't look like they're doing anything wrong, per se.
theres a snake in my boot

Return to “Bitcoin Discussion”

Who is online

Users browsing this forum: No registered users and 12 guests