There are currently three proposals for activating Segwit on Bitcoin — Segwit2x, BIP 91 "Segsignal," and BIP 148 "UASF." The first two are intended only for use by miners and the third is primarily being run by users.
We’ll take a look at each one in turn and show they all use a very similar approach to achieving their shared goal. We’ll also look at the differences between them and see what effects they can have on one another.
Let’s take a look at the activation method of Segwit itself first so we know exactly what they are hoping to achieve. Then we’ll take a look at how each solution goes about trying to hit the historically elusive target of activating Segwit on Bitcoin.Activating Segwit
Segwit activation falls under the control of BIP 9 — a method of deploying multiple backwards compatible soft forks in parallel. Segwit’s BIP 9 deployment demands that 95% or more of blocks signal readiness for Segwit in a 2016 block period. In order to signal readiness for Segwit a miner sets bit 1 in the nVersion field of each block that they mine. These bit 1 ‘flags’ are what BIP 9 looks for when it calculates if 95% of the blocks in any given period are signalling readiness or not.
Segwit’s BIP 9 deployment consists of 26 periods of 2016 blocks. These periods are aligned with Bitcoin’s difficulty re-targeting periods. As blocks are produced on average at the rate of 1 every 10 minutes the periods should each be around 2 weeks long. We are currently in period 19.
Regardless of how many blocks signal for Segwit activation during the period that we are currently in there are not enough blocks left to reach 95% signaling. The next possible period for it to reach 95% is period 20 — which spans from block 477792 to block 479808.
If signaling reaches 95% in period 20 Segwit will move to the LOCKED_IN status at the start of period 21. From this point on — and as we move through the 2016 block ‘locked in’ period — the activa...