Softfork vs Hardfork, Something to it or Nothing? – Trustnodes

Softfork vs Hardfork, Something to it or Nothing?


Bitcoin nodes distribution, Dec 2019

There is, or at least was, a sort of ideology in bitcoin whereby non-upgraded nodes are still kept running by some group that used to call itself the Serene Republic.

The idea there was basically to keep them as a backup of sorts. Taking Segwit, for example, a lot of efforts was used to allow nodes that have not upgraded to segwit to nonetheless keep running the network just like before while ignoring the segwit part from upgraded nodes.

That’s so as to not force code on operators who can choose whether to upgrade at all or when to upgrade, which can be useful if the operator is some sort of business that uses customized software, or if it’s a node running on a satellite – so making it potentially not too easy to upgrade – or if it’s some village node in Africa where the operator might not even know there’s an upgrade going on.

For maintenance upgrades, this backwards compatibility would obviously be very desirable, both ideologically in regards to decentralization or in regards to node operators maintaining autonomy from protocol devs, and practically in not asking too much of the village node operator.

Some changes however can only be done with a hardfork. Well, cleanly. A database upgrade in 2013, for example, hardforked bitcoin.

Yet when it comes to the blocksize, they found a way to do it through a soft fork in a somewhat convoluted design where a small attack vector was created that allows miners to propagade blocks 2x the size of normal blocks.

Bitcoin miners could potentially create a 4MB block, for example, but where ordinary usage is concerned, the useful data that exchanges value can at best only go to 2MB.

Whether that makes much difference is not too clear in practice, but the design is basically one of carrot and stick. If you want more carrot, data, then the stick might be bigger too, in theory. In practice, if we presume for example blocks are 100MB, then the 200MB attack vector might not really be an attack as you’d think by that stage internet speed can easily handle the latter if it is handling the former.

The Politicization of Forks

As it happens, there are suggestions the 21 million bitcoin limit can also be removed with a softfork, but at one point it was thought things like the blocksize can only be increased with a hardfork.

After much debate the blocksize matter thus turned to hard vs soft fork. Those of the Serene Republic had threatened to sell a million bitcoin or more if the blocksize was increased with a hardfork. Those that wanted more capacity did not care.

This all became so entrenched because both sides basically thought the other one was out to ruin bitcoin, then eventually little mattered but our side or their side.

Now that calm greets the world it can perhaps be seen that Pieter Wuille did afterall pull a rabbit out of a hat.

That was segwit, the softfork increase of the blocksize proposed in late 2015. That was the turning point. A hardfork was unnecessary, yet the blocksize was to be increased, with miners and devs binding themselves to an agreement they both later breached.

The problems were numerous. The main one was a question of trust. Did they actually want to increase capacity or was this a hard-fought gain once, that needs hard fighting again and again to be repeated.

It gave devs far too much power, even monetary policy setting power as capacity and value are correlated.

Wuille was of the view there should be some sort of percentage increase, maybe 17% a year or the like. At the time that looked like nothing. There were plenty of proposals, but the civilized debate was fairly brief. Once censorship was instituted, reason gave way to emotion.

All Lost or a Storm in a Tea Cup

Eventually the matter turned, in a very silly way now with hindsight, on 2MB hardfork or 2MB softfork.

No one cared about hardforks or softforks before then, but here, that was crucial.

The softfork won obviously because to “independents” it must have looked puzzling this insistence on a hardfork.

They probably didn’t care either way, but that was a proxy argument of a proxy argument with the actual argument at this point pretty much lost or forgotten by all.

That’s what it means for reason to give way to emotion. This being a mirror of the wider world which too at the time was going through a fierce debate of its own.

Yet looked back, you do wonder whether this wasn’t a brief moment of madness where all sense was lost for the pleasure of the theatre that entertains, perhaps even for no gain.

It’s human nature perhaps to find the smallest thing of such importance that what is actually important is worth being destroyed for it.

To be a bot, while knowing it not, and while in fact holding high the idea that you yourself are not a bot, but others do look like one.

That’s perhaps the art of what is not taught, yet has so much power over all. Emotions, the ruthless enslaver of even nations, let alone men.

Peace in Our Time?

That much of what was then going on was nonsense, eventually became obvious. Thus, on August the 1st 2017, bitcoin had its first chain-split hardfork to Bitcoin Cash.

Let freedom reign we said at the time, and generally they did let it reign. The world watched as coders settled a dispute most peacefully in a way all got what they want.

In the boom that followed, this was a new world. We could now see both following their own path and so by experience reach a more cohesive decision of what is the right direction.

Now two years on, nearing three, the general lack of uptake for the Lightning Network (LN) suggests a change to that weight to the 4MB baseline is probably sensible so that we can see how the network responds and so that we can better know whether it matters much, and if it does, how?

While for Bitcoin Cash, the lack of uptake much above Dogecoin, for transactions though not value transferred, does suggest they need to carefully consider their strategy at an emotional and rational level.

Crypto stats, Dec 2019
Crypto stats, Dec 2019

Ethereum has just had an upgrade so their $90 million is maybe not quite indicative – although it usually is not too far off, maybe $200 million to $600 million a day – but as bitcoin and bitcoin cash are pretty much identical in all ways save for some data capacity number, the significant difference in value transfers does indicate a considerable lack of adoption for the latter.

That is presumably because save for a very brief few weeks, bitcoin’s network demand has actually generally been below capacity.

Since the name bitcoin cash itself is confusing, for anyone to switch and remember the “cash” part, you need something extra.

That something has not materialized, to the displeasure of both bitcoin and bitcoin cash. The former now most probably understand that demand depends on supply, as has been proven in the past two years of data, and in this case it may well be that supply affects demand.

That is, people simply do not use the network above capacity save for maybe during a Black Friday or Boxing Day like frenzy. For much of the rest, network fees go to where they should be: a dollar or two at best.

For bitcoin cash, the fact of the above can mean there isn’t much overflowing demand for them since bitcoin has been accommodating it for the past two years. Meaning there has been much of a storm in a very silly tea cup.

How Bitcoin Can Dominate Once More

There is much development going on in bitcoin cash and even more on eth, with the latter especially seeing considerable innovation, but much of it was done on bitcoin way before, with ethereans just rebranding it.

Their Ethereum Name Service DNS, for example, is kind of the same thing Satoshi Nakamoto himself advised upon before he left.

Namecoin, a long forgotten project that turned out to be a bit useless because perhaps the timing was not right or perhaps because it was too complicated with little added benefit considering alternatives.

Buying stock synthetics and the like with bitcoin is also something done long ago, albeit in a slightly more centralized way.

We say slightly because Synthetix on eth, for example, can delete your balance and the like. Meaning the dev team can potentially be shut down just as bitcoin’s one was.

For many other smart contract dapps there are backdoors and the like which sort of drop the d in dapp. Same for Cryptokitties, for example, which have their graphics on some centralized server with the only decentralized bit here being an ID that obviously by itself means nothing.

So the innovation in ethereum was more their distinctive brand, the fine development team, and crucially, their plans to scale.

Those plans are now years away. Giving bitcoin a unique opening to crush eth if they wanted to, and bitcoin cash, by a simple soft-fork tweak of a weight parameter that shows to all they were not and are not against scaling, it was more against what they would call reckless scaling.

Ethereum does have certain unique things, however, in decentralized exchanges, but again just how decentralized are they? In bitcoin crypto only exchanges have been a thing since forever. The decentralized part obviously always meant the fiat bit, which too has to some extent been a thing since forever in the likes of Localbitcoin

Decentralized Finance (DeFi) perhaps is an innovation but four years ago this would be called people lending bitcoin to margin long degens and so receiving some interest for it.

There may be some innovations but the only real competitive advantage eth had was its ambition to scale, which so far they have not delivered on.

Bitcoin Cash obviously only exists to increase that data capacity. Both however do have their own bells and whistles, but bitcoin has already lowered them considerably in this bear market, and could do so maybe even decisively if certain individuals cared to do thus.

Editorial Copyrights

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>