Hard Forks and Soft Forks for libertarians

Introduction

Lately, I’ve been sad to witness some libertarians I personally know thinking that if a result X can be achieved with a hard fork or a soft fork, then it should be done with a hard fork because a soft fork violates the Non Aggression Principle.

As a quick summary, the Non Aggression Principle is the guiding rod of libertarians values. For every policy that a libertarian evaluates, their moral judgment derives from whether someone’s property is violated or not.

The best examples of libertarian moral judgments derived from Non Aggression Principle about a wide range of policies can be found in Murray Rothbard’s books. Libertarianism never have been about maximizing choice as I’ve seen said in the community, but solely about defending right of property, starting by your body, mind, work and the fruit of it.

So, for the sake of this article, let’s have a libertarian moral judgment on soft forks and hard forks.

I will demonstrate that a soft fork never violates the Non Aggression Principle, then follow that a hard fork CAN lead to act of aggression if not handled carefully by service providers.

This post is divided into four parts:

A soft fork never violate the Non Aggression Principle A hard fork can lead to violations of the Non Aggression Principle A note on aggressive soft fork A note on “Let’s just follow Bitcoin”

This post should not be interpreted as a “No hard fork ever” argument. My goal is only to make you consider the philosophical dimension of the problem while stepping back from the noise coming from the other dimensions. I am lazer focusing on the philosophical aspect. In practice, for technical reasons, I still think hard fork will be needed at one point, but everyone should be clear that it is a moral hazard. (if you hold to libertarian values)

A soft fork never violate the Non Aggression Principle

The reasoning of “soft fork as a violation” proponents is the following one:

A hard fork asks my permission for a change (upgrading is consenting)

A soft fork is a sneaky way to change the protocol without my consent (no need to upgrade)

So some libertarians strictly prefer a hard fork, but let’s examine the facts.

When you joined Bitcoin, you accepted that a miner has two powers:

Selection of transactions to put into its block

Selection of the previous block to build up on

And you have one power:

Deciding if a block is valid

For the particular example of Segwit: a segwit ScriptPubKey contains 2 pushes on the stack.

Imagine you hear a libertarian friend screaming: “When I started using Bitcoin, 2 pushes on the stack was spendable by anyone, why does miners impose more rules without my permission ?”

Now imagine he has an old node without segwit. So his rules are still “2 pushes don’t need any signature”. He tries to spend a segwit transaction output without signature. But find out that all miners are rejecting his transaction.

My 100$ question is: Does miners really violated his property by refusing to include his transaction into their block? Probably not, because the rule of Bitcoin never made him in charge of transaction selection in the first place.

On the other hand, when he receives money from a Segwit transaction output without signature, the payment is valid for him as he agreed with the rule “No need of signature to spend a two pushes ScriptPubKey”. So nobody changed the rules he previously agreed on.

A hard fork can lead to violation of the Non Aggression Principle

Ok so now, what about a hard fork?

A hard fork, by definition demands you to upgrade, so there is no way it can violate your property, right ? Yes… if you store and transfer bitcoins with BitcoinQt as everyone does.

Now back in the real world. The world were you use Xapo, Trezor, Circle, Shapeshift, Coinbase, Copay and Mycelium. (I leave out Breadwallet, because by using SPV you explicitely agree to go along the longest chain, at least, until fraud proofs come out)

The following argument is purely philosophical and does not matter if there will be a split or not. The occurence of a split is irrelevant from philosophical point of view, but would be from the legal and economic one.

Let’s take a practical example with Trezor (but you can replace with any of the services mentioned above):

A hard fork happens You send money to a destination with myTrezor.com You get change back

Then you suddenly see that the change you got back is on the new chain. (By new chain I mean the chain which made the hard fork)

Question: Did Trezor violated your property by sending your change on a chain you did not agree explicitely?

It depends, it is a grey zone. But if Trezor does not want to violate it, there are only three choices, none of them are ideal.

Have a term of agreement where users grant to Trezor the decision of which chain to use if you use myTrezor.com Not switching to the hard fork regardless of its success Giving the choice to the user which chain to follow

For 1, it would be acceptable, but would give considerable political powers to service providers. (Power delegated by the user to the service provider)

For 2, if the hard fork is a success, then the user would stop using your service as the old chain is now useless.

For 3, implementing code for supporting one chain is difficult enough, and prone to exploitation if done wrong. Supporting two chains requires intensive code and UX changes, such a thing would not only confuse the user, introduce bugs, but also use resources which could have been used for more worthwhile things.

And still ! The Trezor example is easy as you own the private keys.

What if you don’t ? Let’s take an example now about you having Bitcoin denominated IOU on Coinbase exchange.

What does “Bitcoin denominated” means ? Does it means old chain or new chain ?

So in case of hard fork, Coinbase will have to decide on which chain there IOU becomes redeemable. Let’s examine the solutions:

Have a term of agreement where users grant to Coinbase the decision of which chain to redeem their IOU, and can change as they want.

This one is the most acceptable, but you are giving too much power to Coinbase, as Coinbase can now decide to redeem only on the failed chain. Your IOU would then become worthless, but it would still not violate the Non Aggression Principle.

2. Not switching to the hard fork regardless of its success

If the hard fork is a success, the problem is even worse than with Trezor, as suddenly your IOUs are worth nothing… the users will be pissed off, but Coinbase can claim they did not violated the Non Aggression Principle.

3. Giving the choice to the user which chain to follow

Sadly, this choice is not possible, as coinbase have to comply with reserve requirement on its IOU. If the user can choose, then for 1 BTC IOU pre fork, they need 1 BTC of reserve on both chain. This is still possible if one chain goes to zero, but would bankrupt them if not.

Finally, the technical and UX problem to explain the choice of chain to the user is as delicate as the Trezor case.

Conclusion

I started to expose why a soft fork is not a violation of the Non Aggression Principle, and then proceed to explain that not violating it during a hard fork involves tough decisions by each service provider.

I stayed on the purely philosophical point of view, and demonstrated the moral hazard of a hard fork. This does not mean it can’t be done.

The legal and economic implications would be directly dependent on whether the fork produces two living chain or not. I did not assumed that for this post.

That said, service providers should take steps now in the term of agreement to explicitely stipulate they are the one who decide which chain their service follow. Not doing so will inevitably result into people trying to sue them for switching to a chain they did not agree to.

A note on Aggressive Soft fork

Saying a soft fork never violates the Non Aggression Principle, does not mean it can’t be dangerous to Bitcoin.

The most aggressive soft fork would be censorship enforced by 51% of miners. Those miners can decide to add a rule that all transaction in a block must be signed by a central authority. This would still not violate your property. Also, you can do nothing to prevent it as the blocks mined by those miners will still be valid to your rules.

This would certainly affect the value of the bitcoins you hold, but because value is subjective judgement of the individual, you cannot pretend your property is violated since value does not belong to you, only your bitcoins. You can’t “own” value as you can’t control what I think about the value of your coins.

If such a thing happen, a hard fork with PoW change would be the solution and this would create an entire new currency.

A note on “Let’s just follow Bitcoin”

Some people will say that Bitcoin is Bitcoin regardless of an hard fork, so if there is a hard fork, one side die and only one is remaining (no split), it is right to choose the new chain for others.

Such observation is irrelevant. When you start using Bitcoin, you have an inalienable right to choose which block is valid. And you can of course delegate such right, by giving to someone else the right to choose what is the “right Bitcoin” in case of a hard fork for you.

This come back to my observation that in order to not violate the non aggression principle, service providers must explicitely specifies that the right of choosing what is a “valid block” is granted to them by using the service.

And once again, the problem is that those centralized web services will derive political power from those grants (you can witness it right now), this is by itself an element of centralization of Bitcoin, and the reason why there is no auto update feature in BitcoinQt. (If developers really wanted power, they would start here, this is the lowest hanging fruit, as most users would swallow the pill without questioning the detrimental, invisible effects)

SPV with fraud proofs will be the only fight against this form of centralization, their importance for resistance to political pressure has been understated.