Segregated Witness (SegWit), the Bitcoin protocol upgrade proposed by the Bitcoin Core development team, was originally designed to activate via the Bitcoin Improvement Protocol 9 (BIP 9) standard, a hash-power signalling mechanism. This would allow the Bitcoin ecosystem to coordinate the upgrade relatively safely through miner readiness.
But with the SegWit proposal in particular, BIP 9 no longer serves just to signal readiness. Miners as well as users increasingly see BIP 9 as a sort of miner vote on the desirability of the protocol upgrade. And some miners even seem to utilize it as a negotiation chip for protocol development.
The pseudonymous developer who goes by the name “Shaolinfry” considers this an abuse of the coordination mechanism. He therefore recently proposed an alternative activation scheme: a user-activated soft fork, better known as a “UASF.”
Shaolinfry also drafted two specific UASF proposals: BIP 148 and BIP 149. Both of these are currently “in the running” for user adoption. And speaking with Bitcoin Magazine, Shaolinfry, at least, seems sure that one of them will be accepted by the network.
“There is no universe in which SegWit will not get activated.”
SegWit and the UASF
A soft fork is a change to the Bitcoin protocol that introduces new rules or tightens existing ones. This makes soft forks backward compatible: nodes that did not upgrade should remain part of the same Bitcoin network.
Segregated Witness is a soft fork that would increase Bitcoin’s block size limit and solve some longstanding protocol issues. While it’s always hard to say with conclusive certainty, the proposal seems to have broad support within the Bitcoin ecosystem. Many wallets, exchanges and other companies in the space have indicated they are ready for it, while an overwhelming share of reachable nodes on the network have implemented the solution, too.
As per BIP 9, the current implementation of SegWit activates if about 95 percent of hash power signals support within a two-week difficulty period before November. However, hash power support has so far stagnated at around 30 percent.
This apparent mismatch between the ecosystem and hash power support is why some — like BIP 9 co-author Rusty Russell — are increasingly thinking the activation method was a mistake.
And Shaolinfry does, too.
“The main issue with BIP 9 is that it has a veto of only about 5 percent of hash power,” Shaolinfry explained. “That veto could be intentionally or unintentionally triggered. Intentionally, like how miners are currently blocking SegWit activation. Or unintentionally due to upgrade apathy.
“Miner activation also draws attention to mining pool operators politically. The whole world is paying attention to who is and isn’t signaling. That is undesirable. And what if the soft fork is for something that could make governments angry? We know this is the case in China for anonymity features, and increasingly in the United States as well.”
As such, Shaolinfry proposed activating SegWit through a UASF.
The idea behind any UASF, in short, is that users simply activate the soft fork at an agreed-upon point in time. If these users represent a majority of the Bitcoin economy — exchanges, merchants, users — miners are financially incentivized to follow the new soft fork rules. If they don’t, they could mine invalid blocks (according to the majority of the Bitcoin economy), and the “bitcoins” they earn would be worth less — or worth nothing at all.
Once a majority of hash power does follow these financial incentives and enforces the new rules, the rest of the Bitcoin ecosystem should automatically follow, just like with any other soft fork.
The first UASF proposal drafted by Shaolinfry is BIP 148.
BIP 148 is an interesting take on a UASF because it is actually designed to trigger the existing BIP 9 SegWit-activation threshold.
“If you want to redeploy SegWit, you must wait for the current deployment to expire by November of this year because many Bitcoin nodes won’t accept it otherwise,” Shaolinfry explained. “BIP 148 is a way to make the current BIP 141 deployment activate before November. That’s faster, and has the advantage that more than 70 percent of nodes has already upgraded.”
Specifically, starting on August 1, BIP 148 nodes will reject any Bitcoin blocks that do not signal support for Segregated Witness via BIP 9. So, if the majority of the Bitcoin economy enforces BIP 148, miners will have to signal support for SegWit in order not to have their blocks rejected.
Once these miners do signal support for SegWit, this signaling would also trigger all the “normal” SegWit nodes on the network. All these nodes would then enforce SegWit, even if they didn’t participate in the BIP 148 activation themselves.
And, from a game theory perspective, it may even be viable for a relatively small minority of the Bitcoin economy to get BIP 148 activated. Miners should have little to lose by signaling support for SegWit, but something to lose from not signaling: a smaller total number of users to sell their bitcoins to. As such, even a modest but committed BIP 148 user base could potentially be enough.
Finally, echoing his Medium post on Litecoin’s SegWit activation, Shaolinfry noted that even the possibility of such a UASF could be enough to make miners signal support — without even needing nodes to actually enforce it.
BIP 148: Risks and Incentives
There are, however, some risks. These are why some prominent Bitcoin Core developers — like Blockstream CTO Gregory Maxwell and Chaincode Labs Co-Founder Suhas Daftuar — consider BIP 148 too disruptive.
Per BIP 148, otherwise valid blocks would be rejected merely because they don’t include a signal. The rejection of these blocks would waste miners’ resources and detrimentally affect Bitcoin’s security.
Moreover, if only a minority of hash power enforces the new rules — either because they ignore financial incentives or because only a small minority of the economy enforces the new rules in the first place — the Bitcoin blockchain could split in two. There would be a “SegWit chain” and a “non-SegWit chain.” That would open up a new can of worms, where the risks for users on both ends of the chain are not the same.
“The incentives are clearly there for miners to follow the economy,” said Shaolinfry in response to this criticism. “But indeed, there is a chain split risk if less than 51 percent [of] miners comply and run BIP 148. However, even in this circumstance, the non-BIP 148 chain is asymmetrically disadvantaged, and will almost certainly be completely wiped out. The SegWit chain will always be more valuable, and once a majority of miners switches to that chain, the non-SegWit chain will disappear altogether.”
Furthermore, from a certain threshold on, the risk of a chain split become smaller as it gathers more support. This is why another prominent Bitcoin Core developer, Luke Dashjr, is throwing his weight behind the proposal.
And to avoid these kinds of risks, there could be another twist to BIP 148 as well, Shaolinfry pointed out:
“The interesting thing about BIP 148 is that any majority of miners can trigger it — it doesn’t have to be 95 percent. If 75 or even just 51 percent of hash power starts rejecting non-signaling blocks per August 1, they will always claim the longest chain. So really, all miners will from then on have to signal support and activate SegWit — or have all their blocks orphaned by the network.”
Finally, Shaolinfry may also release code — “Segsignal” — to allow miners to signal whether they will deploy BIP 148 and under what condition. Using this, miners could, for example, agree to activate SegWit through BIP 148 if, and only if, 51 percent indicates that they are willing to.
“This should remove any risk of a chain-split, even a short-lived one,” Shaolinfry said.
BIP 149 (and BIP 8)
Shaolinfry’s alternative UASF proposal is BIP 149.
BIP 149 utilizes an entirely new soft fork activation mechanism: BIP 8. BIP 8 resembles BIP 9 in that it initially allows miners to activate the soft fork through hash power. However, as opposed to BIP 9, the soft fork proposal doesn’t just time out by the end of the activation period. Instead, it sets an activation deadline. If that deadline is reached, nodes activate the soft fork regardless of hash power support.
There is a particular technical advantage of BIP 149 over BIP 148: it is less intrusive for miners. While BIP 148 effectively forces miners to signal, with BIP 149 miners don’t actually have to do all that much. They can support SegWit if they want to. If not, they may want to run a so-called “border node” to filter invalid transactions and blocks post-activation, but that’s about it.
Shaolinfry plans to implement BIP 149 in dedicated Bitcoin software if BIP 148 doesn’t succeed, and when the current BIP 9 SegWit proposal has expired by mid-November. The activation deadline for BIP 149 is then scheduled for early July 2018.
Some developers, like Maxwell, are in no rush to activate SegWit and consider BIP 149 preferable. But others, like Dashjr, believe it will take too long.
Shaolinfry himself noted:
“BIP 149 is not too slow from a technical point of view. But, I do think the longer SegWit isn’t activated, the more gremlins and obstacles are going to besiege Bitcoin. So if the ecosystem rallies around BIP 148, that would bring this nightmare to a close.”