Oh man, this piece almost gave me an aneurysm.
Hard forks and Consensus Networks: Meta Questions and Limitations
Pieter Wuille elaborates:
“No matter how you determine the switchover date, there is no way of knowing when (and whether at all) everyone changes their full nodes (and perhaps other software), and even very high hash power votes cannot prevent an actual fork from appearing afterwards. At best, people lose the guarantee that their confirmations are meaningful (because at some point it becomes clear that the other side will get adopted, and they need to switch). At worst, a fork persists, and two partitions appear, in each of which you can spend every pre-existing coin. This defeats the primary purpose Bitcoin was designed for: double spend protection.”
Really? Peter Wuille conflating the ability to spend pre-fork outputs on two chains with a double spend? But here's the section that really made me lose my mind:
Secondly, a hard fork is a clear attack on the basic security premises and underlying philosophy of Bitcoin.
There is no software mechanism to measure user consent to remove consensus rules. There is a widespread misunderstanding in the Bitcoin community which states that hard forks can be enforced as a matter of hash power. This wrongly conflates the nature of hard forks with that of soft forks.
Eric Voskuil explains:
“In the case of a hard fork, a new transaction may be valid despite not conforming to the original rules. In the case of a soft fork, new transactions are valid under the original rules.
In other words, holders of a money have not agreed to a hard fork but inherently accept a soft fork… A soft fork can be enforced by simple majority of processing power. In other words a soft fork isn’t actually a change in consensus among people, it’s a change that flows from the people controlling a majority of processing power… The original paper does not articulate a distinction between these rules, loosely referring to both scenarios as consensus. However it is an error to refer to soft fork rules as ‘consensus rules’.”
So, it is very true that a majority of hash power can enforce
new rules with a
soft fork. However, it is clearly inaccurate to say that hash power has any relationship to the software’s
consensus rules.
"No software mechanism to measure user consent to remove consensus rules"? WTF? Um, how about, oh I don't know,
not running that software, not valuing / accepting coins from the chain produced by that software? This is so completely backwards it's insane. It's
soft forks that don't give ordinary users an easy way to effectively not consent to a change imposed by miners. If you don't consent to a hard fork, you can simply not do anything, which means that there's no coordination problem for a disgruntled minority to overcome. On the other hand, if there's a minority group that's strongly opposed to a soft fork, they're now faced with the difficult task of coordinating their own hard fork if they don't want to be swept along.
And holders "inherently accept a soft fork"? What kind of Orwellian bullshit is that?! Hey, I know. I’ll acquire 51% of the hash power and implement the following two simple soft forks: “no blocks are valid unless I mined them” and “transactions that attempt to spend from addresses I don’t own are invalid” (i.e., a complete blacklist of everyone else’s coins). Those are just “new rules” (and thus not “consensus rules”), and so there’d be no problem, right? After all, by holding Bitcoin you would have already “inherently accepted” those modest changes.