Segregated Witness (SegWit), the highly anticipated protocol upgrade proposed by the Bitcoin Core development team, just reached the point of no return for lock in. This means that SegWit will be live on the Bitcoin network in a little more than two weeks from now.
“It's been a long and hard process, but we've learned tremendously along the way. I look forward to the next generation of use cases and applications this will enable and to watching the ecosystem mature”, said Eric Lombrozo, Ciphrex CEO, Bitcoin Core contributor, and one of the authors and main advocates of Segregated Witness.
Segregated Witness, defined by Bitcoin Improvement Proposal 141 (BIP141), was deployed using an activation mechanism (BIP9) that requires 95 percent of all miners (by hash power) to signal support for the upgrade within the span of a two-week difficulty period. That’s at least 1916 blocks within 2016 blocks, to be exact.
This threshold has just been reached. While the current difficulty period will not end until tomorrow, all blocks in this difficulty period are signaling support for the upgrade so far. This now totals over 1916 of them.
It took a while to achieve this threshold, largely in part because bigger mining pools on the Bitcoin network were refusing to adopt the upgrade, regardless of their technical readiness.
"In hindsight, it’s become clear that miner activation of soft forks cannot be relied upon when there exists a divergence of interests between miners and users. In the cooperative case, it is a tried and tested mechanism which, if done correctly, is known to work smoothly. However, in the adversarial case it simply does not work,” Lombrozo wrote in an article about SegWit activation.
This is why SegWit was eventually adopted through a couple of slightly complex “kludges.”
Bitcoin Improvement Proposal 91 (BIP91), a (mostly) miner-enforced soft fork, had already activated a little over two weeks ago. This soft fork requires all blocks to signal Segregated Witness support for an entire difficulty period, triggering the lock-in on SegWit-ready nodes — all blocks that do not should be rejected by the network. So far, this has indeed been the case.
On top of that, BIP148, an activation mechanism enforced by users, started rejecting all blocks not signaling support for Segregated Witness over a week ago, on August 1st.
A viable way to deploy Segregated Witness on Bitcoin via a soft fork was discussed in the Bitcoin development IRC chats and subsequently presented by Blockstream engineer and Bitcoin Core contributor Dr. Pieter Wuille in late 2015 at the Scaling Bitcoin workshops in Hong Kong. It was subsequently adopted as a centrepiece in the scaling roadmap endorsed by the Bitcoin Core development team. The technology was implemented and officially released in Bitcoin Core 0.13.1 in October of 2016.
In short, this upgrade allows for the separation of transaction data and signature data within Bitcoin blocks. This solves the long-standing “malleability bug” in the Bitcoin protocol, which in turn allows for more flexibility when programming new features on top of Bitcoin and offers additional benefits like a modest block-size limit increase.
“Most importantly, SegWit means a drastic simplification in how we can design protocols that can work atop Bitcoin without having to change consensus rules,” Lombrozo noted. “But it also affords the introduction of new features at the consensus layer to support better cryptography and more sophisticated smart contracts.“
“And, of course, it also increases raw capacity by allowing for bigger blocks and making future block size increases more feasible.”
It will now take another two-week difficulty period for the soft fork to actually activate. At that point, all SegWit-enforcing Bitcoin nodes, which almost certainly represents the majority of the Bitcoin ecosystem, will start rejecting any transactions and blocks that do not follow the new rules. As a backwards-compatible soft fork, however, this should not affect non-upgraded nodes much: These will continue to function as normal.