Bitcoin Q&A: What is a fork?

“What is the difference between a fork of the Bitcoin
Core reference client and a fork of the Bitcoin network?” That’s an excellent question. We use the word “fork”
to describe three or four different scenarios. First of all, creating a fork in software — which is a very common thing, you see it
on GitHub and other software projects — means simply creating an alternative
version of that [software] project, where different developers are pursuing different goals. That doesn’t necessarily change the consensus rules,
the behaviour on the network, or anything like that. There are a number of Bitcoin Core reference client
forks that are entirely compatible with Bitcoin Core, operate on the same Bitcoin network, and do not cause a [network] fork of Bitcoin
because they use the same consensus rules. One example of that is the Bitcoin Knots distribution,
which is a fork of Bitcoin Core by Luke Dashjr. That fork simply has some different
software distribution policies, but it follows the same consensus rules as Bitcoin Core. You will see Bitcoin Knots clients
operating on the Bitcoin network, without any problems and
interoperating with Bitcoin Core. That’s a software fork. Another [type of fork] you might see is
a change that causes a network fork, where the fork occurs in the network and it splits in two. You can have that even without change in the consensus
rules. It can cause quite a few weird problems. Then finally, the [type of fork] you are
most likely thinking of is a consensus fork. A consensus fork is a change in the consensus rules.
There are two types of consensus forks: a soft fork, where the rules
have become more restrictive… and therefore clients following the old
rules can still follow the new rules; a hard fork, where the rules have become less restrictive,
which means that clients following the old rules will… find the new rules to be invalid,
in certain circumstances. That’s the difference between a soft and hard fork. Those are consensus forks, which means the consensus
rules have changed either in a backwards-compatible… or a non backwards-compatible way. “Why is a new currency created when forks happen?” “Why can’t we keep using the bitcoin currency
on the new protocol, even if it’s a fork?” The reason for that, Makrum, is because when
a hard fork happens, the rules have changed. When the rules have changed, the new rules
are not compatible with the old rules. That’s why it’s called a hard fork, which means you can’t
simply move currency from one network to the other. The two networks become distinct.
They have forked and they have forked hard. They are now separate blockchains with separate rules. As soon as you have separate blockchains with separate
rules, the currencies are no longer interchangeable. You can’t keep using the same currency [on the forked
chain]. Inevitably, the prices are [also] going to diverge. Because they behave differently, they’re going
to be priced differently. The rules are different. You can’t transfer one to the other without an exchange,
which makes [them] in effect different currencies. It’s not that there are [just] technical barriers to
prevent you from treating it as the same currency, it’s that there are economic and technical barriers. You have a divergence of the consensus rules,
a divergence of the networks, a splitting of the liquidity, a splitting of the fungibility, and therefore
you have a splitting of the economics. “Was Bitcoin Unlimited a separate blockchain because
the nodes accepting bigger block sizes would have… been banned by the nodes operating on Bitcoin Core?” Yes and no. First of all, Bitcoin Unlimited
was a change in the consensus rules. The nodes accepting bigger block sizes are running
different consensus rules, less restrictive than before. Before the change in Bitcoin Unlimited,
a one-megabyte block was acceptable. After the change, a [block] greater
than one megabyte was acceptable. When you have a [looser] restriction, that means
nodes expecting a one-megabyte block… [will see] something bigger
than one megabyte as invalid. That’s a hard fork consensus rule change. Not only would Bitcoin Core nodes refuse to accept
the blocks produced on that network as valid, but [so would other compatible clients]. This would cause a network fork
(as a secondary effect), where nodes that are propagating
these larger blocks will get banned. As far as Bitcoin Core [and other compatible clients] are
concerned, these nodes are propagating invalid blocks. The hard fork change in consensus rules then
causes a split in the network, a network fork, because those nodes get banned
for propagating invalid blocks. “Does the bitcoin network ever go down
for maintenance or a system upgrade?” No, it doesn’t. Unlike the banking system, Bitcoin is up
24 hours per day, 7 days per week, 365 days per year. Current up-time for the Bitcoin
network is 99.99% and higher. In fact, you can check because there’s a nice
website which can tell you that [up-time]. (I’m going to check the URL to make sure it’s correct.) ‘[Bitcoin is] currently functional for 99.992145168%
of the time since inception on January 3rd, 2009.’ [What] is that missing one thousandth
of a percentage point? It is probably a disruptive fork
that happened in April 2013, due to a bug in the system that delayed
things for about twenty-five blocks. The system didn’t go down, it just slowed down, and
then all of the transactions eventually went through. They were just delayed by twenty-five blocks. “How does the community come to consensus
about changes in the rules, particularly soft forks?” “If people vote with their CPU power, does this
mean it is only miners who really have a say?” “What about developers who don’t mine, or a solo miner?
How [are their views represented]?” Carol – at first glance, it appears that miners are the
only ones who have a say, but that quickly falls apart… once you realize that miners
need to pay their electricity bills. In order to pay their electricity bills, they need to be
able to transact in the currency that they’re mining. In order to transact in that currency they’re mining,
they need exchanges, wallets, and merchants. In order for those exchanges, wallets, and
merchants to work, there have to be some users… who are willing to buy the currency that these miners are now selling. In order for those users to be buying that currency,
they have to be following the same rules. If miners implemented a change that the rest of the Bitcoin economy rejected, miners could continue to… mine and produce a blockchain with the new rules, but they wouldn’t be able to sell the [coins] on that chain,
because none of the exchanges would accept it; none of the wallets would use it,
and no one would buy it because everybody [and most nodes are]
still operating by a different set of rules. That means, of course, that those who are operating
by a different set of rules — exchanges, wallets, users, buyers merchants, etc. — may no longer have [as many]
miners, which would definitely slow that chain down… and perhaps even stop it for awhile. But if that economy still has economic purchasing value,
miners might decide to mine that chain anyway, where the rewards have really gone up because
there [wouldn’t be] as much competition in mining. Those miners would actually make better profits, so they
defect and start working for the economic majority. As soon as that happens, you immediately
see how things balance out pretty quickly. Consensus is a tricky thing to understand,
but one of the most important aspects is that there are multiple constituencies of consensus. Developers, who write the rules
but can’t force anyone to run them. Miners, who mine blocks but can’t force anyone
to accept those blocks as valid or buy the currency. Wallets, that can produce transactions but can’t
force any miners to [include them in blocks], or force any users to use [their] wallets. Merchants, who sell products but can’t force anyone
to buy those products or give them the currency want. Everybody seems to have power, but they only
have power if they play by the majority rules. If they stop playing by the majority rules,
they are the ones who are losing out economically. As a result, consensus is something
where you can have a lot of power… as long as you keep doing what the majority says. The moment you try to go against the majority,
that power becomes very weak, very quickly, and comes with significant economic costs. That’s how consensus stays together.

10 thoughts on “Bitcoin Q&A: What is a fork?”

  1. Wait, so if Bitcoin Core dev team upgraded BTC block size just as Bitcoin Cash did, BTC would then be a hard fork just like BCH? Which Fork would you then support because technically neither would be the original Bitcoin would it?

  2. Consensus rules! Something NO Govt anywhere in the world would EVER implement.

    A future where consensus rules via economic incentives being aligned may be the only hope of dismantling corrupt oppressive govts that would require decades of future tech development to unfold. Many moving parts in play there.

    Debate amongst yourselves.

  3. Entire books will be written on forks.
    You are teaching the next generation of authors.
    Thank you Andreas!

  4. A fork does not inflate supply of BTC, correct? If so, why do so many people say that BTC has no hard supply lmit because of forking?

Leave a Reply

Your email address will not be published. Required fields are marked *