Blockchain works via consensus. All users must run the exact same protocol. Users that run some other protocol are blocked from the peer network and are, implicitly, only grouped with other users that agree with them

Bitcoin, as a blockchain, works this way.

Protocol changes therefore must be either:

— Backward compatible with the old protocol (soft forks)

— Backward breaking (hard forks)

The problem with a backward breaking change is, unless everyone uses the new protocol, you wind up with two networks. And what’s more: some users may not want to… they may disagree with a majority. Under a hard fork, these users are forced out.

Soft forks aren’t that much better. Dissenting users now have to share a chain with a bunch of features they disagree with. They may choose not to use them, but any problems that arise from those features could taint the value of their holdings (guilt by association). So, soft forks can be an issue too.

I think it’s clear, however, that soft forks keep a community cohesive (disagree but live on the same chain), rather than fractured (disagree… and get kicked off the chain).

A recent proposal called “segwit” in Bitcoin is a good example. If “segwit” were to go live, some miners and users may choose not to use it. Segwit transactions could be delayed because of this dissent. And that’s OK… miners have the right to refuse to do business with a part of the protocol they don’t trust.

Some blockchains, like Ethereum, resolve this issue by having a strong central foundation and vocal, trusted members of the community. This process ensurees that the core protocol remains in 100% consensus at all times. “Ethereum Classic” was formed when a group of dissenting users, miners and developers chose to disagree and were isolated from the Ethereum network.

There recently have been some experiments in democracy, where users have a vote. Noteably, the DASH network and Tezos network have tried to use “voting systems” to decide on protocol changes.

Unfortunately, any token voting mechanism is ultimately governed by miners, who can choose to ignore those votes, and/or refuse to build on top of blocks that have votes they disagree with. Therefore, a majority of miners can decide on protocol changes. At any time in the future, a collusion miners can change the reward schedule, for example. Sure they may take a small price hit the first time, but over the long term, this is no different than the Fed. Well, it’s worse: because with the Tezos model, the Fed is controlled, directly, by the wealthiest participants who can cause inflation any time they want to put more money in their pockets. Users, to prevent this, could block this protocol upgrade by forking the code…. and you have Bitcoin yet again.

Bitcoin’s founding principle is: there is no Fed. There is no central body that can create new Bitcoins other than the original schedule. Any voting system controlled by elite participants can, and will, eventually alter this policy.

There are some basic problems with “democracy” on a blockchain. Arrow’s impossibility theorem states that all voting mechanisms are critically flawed and can therefore produce poor outcomes. Unfortunately, poor outcomes, in blockchain technology, are irreversible — so clearly voting cannot be used. And there is populism: in the end, any voting mechanism devolves into a popularity contest. How can that be a good way to decide on a protocol change?

“Democracy is the worst form of government, except for all the others.” — Winston Churchill

Fortunately, Bitcoin is not a democracy, nor it is a dictatorship. Bitcoin is a consensus protocol. Everyone has to agree in order for it to work. Nobody can break the rules. Ideally you don’t change them — ever.

Bitcoin made the mistake of framing a recent network upgrade as a “vote” — where miners would signal readiness to support a “soft fork”. It’s not actually a vote, but that’s how some people perceive it. This particular upgrade, called “segwit” has the direct impact of increasing the block size and decreasing pool revenue for miners. Bitcoin transaction fees now account for 12% of the network. So miners, predictably, have refused to upgrade. Indeed, they appear to have concocted elaborate schemes and rationalizations for this refusal.

Arrows Theorem Part 3: How undecided voters become “dictators”. Right now “f2pool” is “Voter k”. I imagine he is getting a lot of free dinners this month! Voting systems are trivially corruptible because of this problem.

“Segwit” is a consensus change to Bitcoin. 100% of the active contributing developers agreed that this was a good change to the protocol. The change was tested, simulations were run and the code change itself is 90% tests. It enables all sorts of expansion for Bitcoin: like smart contracts, atomic swaps, high speed decentralized exchanges….

But miners want more fees! So the network change will not pass any time soon. And so Bitcoin has empirical evidence of part 3 of Arrow’s theorem (the emergence of dictatorship from voting systems).

But don’t miners make more money if Bitcoin goes up? Answer: no. If Bitcoin’s price goes up, more miners enter the network, so the income, per miner, stays about the same. Miners do stand to lose money if the value in the network goes down, though, so if there is a credible threat, miners should react quickly.

Choosing to be open source, open contribution and consensus driven — while also remaining backward compatible — is the hardest possible choice for an engineering team. That Bitcoin has managed to do so for this long is its greatest accomplishment.