For controversial forks

=WARNING, PAGE UNDER CONSTRUCTION= This page is currently under heavy construction. It won't make sense for a while until I do a bunch more editing. Try coming back in a couple days.

The value of a cryptocurrency is based on user demand for its tokens
Imagine that no one had paid attention to Satoshi for 7 years after he released Bitcoin. Imagine Satoshi still posting on cryptography forums in 2016, saying "Won't someone please try my cryptocurrency?? It's based on math!". As long as Satoshi was the only user of the network, his coins would be worthless.

Imagine that Satoshi had mined all ~16 million bitcoins that exist today, because he was the only user of the network. Suppose Mark Zuckerberg finally reads the Bitcoin whitepaper and says to Satoshi "Wow, this is amazing. I think this is going to be huge. I'll pay you $5 per bitcoin and buy as many as you want to sell me." Demand for bitcoins has increased, and now Satoshi's stash is worth about 80 million dollars. Satoshi delays in selling any coins to Mark because he wants some time to think it over. After a few days Mark gets tired of waiting and withdraws his offer. Now Satoshi's coins are back to being worth nothing.

It doesn't matter how great Satoshi's code is, or the degree to which the functioning of the code itself is based on math and cryptography and is free of human whims, the actual value of bitcoins will always remain entirely dependent on how highly humans choose to value it.

Consensus is rooted in human choices
It is often said that consensus in Bitcoin is defined by code. "The state of the ledger is what the code says it is, and it not dependent on human whims." Let's examine this claim with a thought experiment.

Scenario: It's the year 2017. Satoshi has been doing some good advertising since Zuckerberg withdrew his offer. There are now 100 people using Bitcoin. The market price of a bitcoin is $3. Everyone is running Satoshi's latest client, Bitcoin SN 1.5.

One day Satoshi's grandmother is on her deathbed and says to Satoshi "As my last wish, I request that you to increase Bitcoin's coin limit from 21,000,000 to 21,000,001." Satoshi deeply loves his grandmother, so he promises that he will make it his mission to do this. Minutes after Satoshi's promise, his grandmother dies.

The next day Satoshi writes up his hard fork code, calls is Bitcoin SN 1.6, and asks everyone else to download the new version in honor of his grandmother.

TODO: ...should I add a sub-scenario here where everyone accepts?

Everyone downloads version 1.6 except for Alice and Bob. They argue that version 1.6 breaks compatibility with version 1.5, and that they don't like the new rule because it sets a precedent for messing with the coin limit. Alice and Bob tell Satoshi that as far as they're concerned, Bitcoin SN 1.5 is the real Bitcoin, and Satoshi and whoever else wants to go along with him are free to fork themselves off of the Bitcoin network with this incompatible rule, but that Alice and Bob are sticking with the Bitcoin rules they agreed to before.

Satoshi and 97 other users go ahead with the fork to version 1.6, creating a chain split. The value of coins on the 1.6 fork is now $2.90 and the value of coins on the 1.5 fork is $0.01. Alice and Bob insist that the other 98 former users of 1.5 are no longer using Bitcoin because consensus is defined by code, and they forked themselves off the network. The 98 other users ignore Alice and Bob and have a party celebrating the hard fork, sending coins back and forth to each other to memorialize Satoshi's grandmother.

Now the question becomes: did Bitcoin's consensus protocol change? Or did a new consensus protocol emerge? Whether version 1.6 or version 1.5 should be called "Bitcoin" is addressed later on this page. What is important to note here is that the consensus that the 98 people care about is consensus among each other about the state of a ledger. They don't care about what Alice's and Bob's software say.

The software that all 100 people are running is just a tool to help them agree among each other. The consensus we care about is fundamentally between people. The rules enforced by the software of the network participants have one purpose: to make it fast and easy for the participants themselves to remain in consensus with each other.

Imagine if there was a bug in the protocol that allowed people to steal coins from each other. The participants wouldn't accept the bug as being legitimate because it reflected the consensus of the nodes. They would fix the bug, agree to use the version of the ledger with the bug fix,

Whether consensus between nodes is relevant is determined by human choices to value that consensus.

Your choice of what tokens to value or what software to run aren't violations of other people's rights
Should I keep this here?

The ethics of hard forks
The value of [Bitcoin] is that it's resistant to change, and that if you're fine with a system ruled by political whim you should stick with the fiat of a major democracy. That with bitcoin we hope to approximate cryptographic security, where your control of your funds is autonomous and as free from other people's choices as possible. And that changing the system in ways detrimental to their interest out from under a substantial minority of users is a taking, that it's unethical, and that it undermines the primary value proposition of the system, even for the majority." -- A core developer

Fundamentally, the value of bitcoins and the value of the Bitcoin network rests on how much other people want to own bitcoins and how much they want to use the network. If miners want to mine on a modified version of the network, and if holders decide they’re willing to pay lots of money for coins on the modified network and pay almost no money for coins on the old network, that is their free choice. They can value what they want to value, and they can use the network they want to use. Yes, it does suck for anyone using the old network who wishes that more people liked their preferred network. But if those people expected that others were obligated to remain on a particular network so that they could avoid the consequences of their network being unpopular, they were wrong to expect that.

Consider an analogy: a group of 10 casual acquaintances has been meeting at Pizza Hut every week. Everyone in the group loves hanging out in big groups, and they find it less fun to hang out in small groups. A few members of the group suggest that they start going to Taco Bell instead. 8 people are in favor of Taco Bell, but 2 really want to keep going to Pizza Hut. The 8 people say “we’re going to Taco Bell, we’d love to have you there too, but do whatever you want.”

Are the 2 people who don’t want to go to Taco Bell being coerced? Is something immoral happening here? It does suck for them, but that’s the nature of decentralized systems where everyone is free to make their own choice. Sometimes the system you prefer won’t be what other people choose and you won’t get the benefits of the network effect. In the Pizza Hut/Taco Bell case, if the 2 people feel ethically wronged, then they were mistaken to think that the other 8 people ever owed them anything. (We’re assuming no promises were made about always going to Pizza Hut).

The ethics of soft forks
It is often claimed that because I use the Bitcoin protocol, and nothing in the Bitcoin protocol prevents soft forks, that I implicitly accept any soft fork that occurs.

However, the software that I run now doesn’t logically imply anything about what I would do in certain future situations. I may plan to change my software to use a different PoW to punish miners who enact a soft fork that I don't like. You can’t know whether I accept a soft fork until it gets activated and you see what I actually do. I never agreed implicitly or explicitly to continue running any particular software at any time in the future.

The ethics of naming forks
Imagine that Gavin and Mike had accepted the 17% annual block size growth solution that Pieter proposed (https://gist.github.com/sipa/c65665fc360ca7a176a6) after their initial push for Bitcoin XT. Hypothetically imagine that every single person in the Bitcoin community was in favor of this, and the hard fork happened. What would you call the new network with 17% annual block size growth? “Bitcoin”? Would you advocate that the name of the network be changed, losing all of the brand awareness of Bitcoin and causing massive user confusion, just because in some philosophical sense the networks aren’t identical?

Now what if one person objected? Would you then advocate that Pieter’s fork change its name? Consider the ship of Theseus (https://en.wikipedia.org/wiki/Ship_of_Theseus). Should the ship be renamed every time a plank is replaced? My point here is that how to name things that are modifications of previous things is not black and white. The purpose of naming things is to help humans think about them and communicate about them. So when considering whether to change the name of a ship or a network, the foundational question we should be asking is “does changing the name make it harder or easier to think about and talk about what’s going on here?”

In the case of changing Bitcoin’s name after a unanimous and uncontroversial hard fork, it would clearly make it harder for your average Joe to think about the network. He would have learned a little bit about Bitcoin from his friends before, maybe seen it on the news. He’d have some idea of what it was about. But then suddenly he starts hearing about Foocoin (the new name after Pieter’s hard fork). This guy is now confused. He doesn’t know how Foocoin relates to Bitcoin. He thinks it’s a totally separate thing, not realizing that the rules, network, and ledger are the same as the old one except for one rule change. Maybe he thinks “this cryptocurrency stuff is too complex and apparently new coins are emerging all the time. I’m not going to bother with it.”

The possibility of controversial hard forks are an important check on centralized power
See Meni Rosenfeld's post and essay, Jeff Garzik's post, Justus Ranvier's post, and Mike Hearn's essay.

A rule that a controversial hard fork should never happen gives any group who wants to maintain the status quo veto power over the direction of Bitcoin, and allows such a group to impose their will on the entire community. The effect of this is to centralize power with any such group. Their power is constrained in that it consists entirely of keeping things exactly the same, but it is absolute.

When a hard fork occurs, no one is forced to do anything. All users / miners / businesses are free to move to the new chain or stick to the old chain. If most users migrate to a new chain that is less decentralized yet some people still value the more decentralization-friendly old rules, no one stops them from remaining on the old chain. Things do become less convenient for these people because the value of coins on their chain will drop, and fewer people will accept their coins, but that's just a consequence of everyone being free to make their own choice. The people on the old chain never had a right to keep everyone else on that chain against their will.

Clearly it is better for everyone to agree on a hard fork than to have a controversial hard fork, but when people can't agree controversial hard forks are the only way to resolve the dispute that does not involve one group imposing their will on another.