What is the benefit of forced signaling in a soft fork activation mechanism? e.g. the MUST_SIGNAL phase in revised BIP 8.

I understand the benefits of setting lockinontimeout (LOT) to true (some of those benefits are described here) but why have a period of say two weeks when miners have to signal before the soft fork moves into the LOCKED_IN phase. Why not just define when that LOCKED_IN phase will begin (assuming miners fail to activate the soft fork before then) and ditch the MUST_SIGNAL phase?

Matt Corallo states "Forced signaling isn’t required for many flag day designs, and is the biggest single risk of any proposed feature for an uncontroversial activation."


It depends highly on who you ask. Indeed, I (and several others) have argued that there is no reason whatsoever for forced-signaling. Greg Maxwell wrote a long and in-depth piece about why it provides no additional assurances beyond what any soft fork provides on GitHub, which is likely of interest to anyone coming across this post. Ultimately, the point is all about "when is a soft fork active". Probably the best resource on the subject is Pieter Wuille's old post from 2015 on bitcoin-dev, but to summarize, the answer is, largely "when it is understood that the vast majority of economic nodes in the Bitcoin system are enforcing the rules via full node software which they run", in other words "when full nodes are enforcing it".

Some confusion has entered the discussion as, in many past soft forks, we've utilized miner signaling to bridge the gap between old full nodes unaware of an upgrade and new full nodes enforcing the rules. Effectively, we've said "the soft fork is active when new nodes have upgraded and miners have signaled readiness above a certain threshold" - ultimately it's about nodes having upgraded and enforcing the rules, but there's nothing to stop us saying "nodes only enforce the rules if miners upgrade". Similarly, there's nothing wrong with saying "nodes always enforce the rules, because miners aren't doing something users want".

In general, the argument in favor of forced-signaling basically goes like this: "if we start by assuming users are running software which interprets the signaling bit, then ensuring the bit is signaled on ensures that users are enforcing the rules". However, there's not a lot of reason to make that initial assumption. The reason we do use miner signaling in the first place is it reduces the risk of forks and reorgs visible to un-upgraded nodes - something that could expose some users to fund thefts due to double-spend. However, if we use forced-signaling, that advantage goes out the window, indeed, we get the exact opposite outcome - on day one of the fork, we immediately create reorgs visible to un-upgraded nodes, putting their ability to accept payment at risk.

New contributor
Matt Corallo is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

Luke Dashjr answered this on IRC:

The primary purpose is to definitively indicate the soft fork is active on the chain. While it still relies on enforcement, this ensures there is no dispute over what the correct rules are. As a side effect this also makes it easy for any group of dissenters to reject the new rules. The intent of a soft fork should never be to literally force new rules (upon dissenters)

(Luke is referring to dissent against the soft fork rather than dissent against the activation mechanism set in a Bitcoin protocol implementation.)

David Harding added that MUST_SIGNAL forced signaling is there to ensure the activation of the soft fork for all nodes setting LOT=false when the rest of the network is setting LOT=true.

I run a node with LOT=false; everyone else runs a node with LOT=true. At block xxxxxx, y'all start enforcing taproots rules, but I never saw any signal, so I continue treating taproot transactions as anyone-can-spend, which is bad for me personally. If there are a lot of people with LOT=false, it also makes it unclear whether taproot is really being enforced, increasing the risk that miners may try to steal funds sent to taproot outputs.

In addition David Harding argues that forced signaling is not particularly dangerous.

What makes forced signaling so dangerous? We had that with the BIP34, BIP66, and BIP65 forks. Except for a hiccup with BIP66 due to spy mining, I don't think there was any problem. BIP8 forced signaling is also only required for a brief period, so any disruption should be short

Comparing a forced signaling phase to a flag day was discussed further on this BIP PR.

  • 2
    It should be noted that the new rules can be just as easily rejected without forced signalling by requiring that the block at activation height is invalid according to the rejected rules. Can you elaborate what "no dispute over what the correct rules are" means? There can be dispute over what a signalling bit means just as well as there can be dispute over what a flag blockheight means. – nickler Apr 20 at 13:59
  • Thanks for the comment nickler. It is Luke's quote but my understanding of "correct rules" is whether the network is enforcing the soft fork rules or not. Indeed a forced signaling bit is not perfect in this respect but it is better than nothing. At least in my eyes following forced signaling but then not enforcing the soft fork rules afterwards demonstrates either maliciousness or incompetence. Although these are both possible you would expect in majority of cases that miners following forced signaling demonstrates that they will be enforcing the soft fork rules in an upcoming phase. – Michael Folkson Apr 21 at 14:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.