How user activated soft forks (UASF) work and why they might solve the blocksize debate too

Fork

For a soft fork to activate miners currently are required to signal their support. For SegWit that requires 95% of blocks over a 2016 block window signalling in favour.

Currently the Bitcoin network has around 6,000 nodes. ~5,000 of those are running Bitcoin Core, and ~3,000 nodes are running Bitcoin Core versions that fully support SegWit (>=0.13.1).

Those 3,000 nodes, despite being SegWit ready, can currently do nothing more than wait for miners to activate it. This just isn’t happening, and they are being denied all the benefits that come along with it.

UASF would mean there is no signalling by miners for activation. Instead a new version of the Bitcoin software is released and installed on nodes which has an agreed activation point in the future.

At the time of writing we’re at block #455855. If we wanted to activate SegWit in 90 days time (approximately 12,960 blocks), the new version of the software could say “from block #468,815 only accept blocks that support SegWit”.

Let’s imagine that by block #468815, 60% of nodes have upgraded to this new version of the software. In addition a number of large exchanges and Bitcoin businesses have also publicly announced their support and upgraded.

This gives miners a conundrum. If they don’t create SegWit compatible blocks from that point all those nodes and businesses will completely ignore the blocks they create. This would prove very expensive.

SegWit blocks will be backwards compatible, as nodes that haven’t upgraded their software will still recognise them as valid.

This means that the odds of SegWit activation succeeding are massively stacked in its favour, as the miners are the only ones who incur an economic cost if they make an incorrect decision about activating. By far the safest option is to mine blocks compatible with SegWit as these will be accepted by 100% of nodes, rather than the 40% of non-upgraded nodes and economic minority.

So that’s the basics. The nodes basically tell the miners that if they don’t play ball they will be ignored. It would take an incredible amount of nerve (or stupidity) for a miner to refuse to mine SegWit compatible blocks when such a huge part of the network will suddenly start invalidating their work.

If just 51% of miners update then SegWit would activate without any issues.

I don’t believe SegWit would struggle to gain miner consensus, but in the unlikely event that over 51% of miner hashrate refused to switch this would create a fork in the network with non-upgraded nodes seeing one version of the blockchain, and upgraded nodes seeing another.

I believe a more likely outcome is that a rival implementation of the bitcoin software would use the activation point as a catalyst and attempt to rally support for and introduce a change of their own.

This wouldn’t be a property of UASF itself, but an activation point creates a natural window of opportunity to force the community to make a choice between rival visions.

Instead of a soft fork, a rival implementation could activate a hard fork block size increase. In addition they would likely need to change how quickly the difficulty is adjusted and hopefully add replay protection.

This would lead to all nodes and miners having a clear choice between two directions for Bitcoin. The likely reason a rival implementation wouldn’t attempt this is because they feared humiliation, but a set activation point would present a perfect opportunity to also force a referendum on the block size debate to those with the conviction to back their belief.

There would likely be just one winner, with an economically insignificant altcoin created on the other side. The block size debate would finally be settled once and for all.

If you liked this article please consider donating now to 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE

John Hardy
Follow me

John Hardy

Software developer living in Bristol, UK.
Bitcoin advocate since 2011.
Email [email protected]
Donations welcome: 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE
John Hardy
Follow me

Author: John Hardy

Software developer living in Bristol, UK. Bitcoin advocate since 2011. Email [email protected] Donations welcome: 1H2zNWjxkaVeeE3yX6uVqng5Qoi6gGvYTE

  • Philipp Knirck

    Miners don’t care if nodes accept their blocks. They care about miners mining on top of their blocks.

    Nodes are irrelevant for consensus in Bitcoin. Nodes that do not mine are passive, they can validate for themselves but they cannot change consensus.

    • Leser_Kommentar

      No way, miners are putting the transactions into the block. nodes are validating the transactions. they make the consensus and miners are putting them into the blocks. whatever, its not like you say it.sad.

      • Philipp Knirck

        I think it would make sense for you to read a book about bitcoin, study its code or even read the whitepaper.

        Miners are also nodes. What we refer to as nodes are usually nodes that do not mine. Since they do not mine all they do is do the verifications for personal pleasure but not as part of forming consensus since they decided to not mine. It does not make sense to run a node unless for some outside business reason (i.e. for exchanges, block explorer, wallets etc)

        Nodes only help the network by propagating tx and blocks, but then that is not something miners would not do. So overall what non mining nodes do is not relevant for running or securing bitcoin. I.e. they could reject a tx, but if miners accept it, it would still make it into the blockchain.

        Nodes simply don’t matter and if they do it would be a problem, because there is no economic risk or cost involved to run or create one. Miners invest and risk energy and resources in the security of bitcoin and are rewarded for their work. They are forming the consensus. If they do a bad job the market will punish them with low bitcoin prices.

        Nodes are not part of the value creation or governance process of bitcoin and if they were it would be a problem.

        • John Hardy

          Pure node count is meaningless for UASF and would be subject to sybil attacks.

          However economically significant nodes wield huge influence. If the 10 biggest bitcoin businesses announce they support UASF and upgrade just 10 nodes that would have a huge impact even if no others upgraded. It’s almost taunting the miners to “fight this if you dare”. The economic majority will always win, if the economic majority doesn’t like what the miners are doing they will find a way around it, either persisting with a UASF on smaller hashpower, or a change of work.

          • Philipp Knirck

            Right, but where is the difference to a minority fork, supported by the economic majority?

            Plus you cannot implement segwit this way as a softfork, since that way you cannot kick miners of the chain that are not compliant.

  • http://BraveNewCoin.com/news Luke Parker

    1. Roger Ver would simply buy 1 million nodes and have them flood out our 5,000.

    2. The game is over at a hard fork anyway. Sub $1 bitcoins on both chains FOREVER, and satoshi would be worldwide known as a liar who failed to make digital scarcity.

    UASF is too dangerous.

    • Burstup

      What will Roger do if economic nodes (exchanges and wallets) don’t accept non-Segwit blocks?

  • https://just-dice.com/ dooglus

    > the software could say “from block #468,815 only accept blocks that support SegWit”

    What does it mean for a *block* to support SegWit? Do you mean they would only accept blocks with at least one SegWit transaction in them? Or what?