consensus – Why does everybody say that mushy forks prohibit the present ruleset?

0
68


If that is true, then how are legacy transactions nonetheless current within the blockchain? Clearly, there are nonetheless loads of transactions with non-segwit and non-taproot script varieties.

I am going to give attention to Taproot first, as a result of Segwit is considerably extra sophisticated.

The reply to your query is that following the Taproot softfork non-Taproot transactions are nonetheless current, as a result of the Taproot softfork did not have an effect on the validity of non-Taproot transactions; they’re all nonetheless legitimate.

What did change nevertheless is the validity of Taproot spends. Earlier than the softfork, (what’s now known as) Taproot outputs (OP_1 <32 bytes>) have been unencumbered, and thus spendable by anybody, with none signature. This did not occur in fact, as a result of no one was creating Taproot outputs that could possibly be spent by this. But when they might have been created, they’d be stealable by anybody, together with miners, on the time.

After the Taproot softfork, solely Taproot spends that fulfill the Taproot consensus guidelines are legitimate anymore. Those who violate the (new) guidelines are now not legitimate. That is the one factor that modified. You do not truly “observe” this tightening, as a result of the one factor that modified is one thing that simply did not apply to any truly occurring pre-fork transactions.

For Segwit it is a bit extra sophisticated, because it additionally launched a brand new information subject, the place pre-Segwit transactions are simply seen as having an empty such subject. Segwit arguably launched two separate guidelines:

  • Segwit outputs (OP_{0..16} <2..40 bytes>), which have been beforehand spendable with none signature or witness, can solely be spent anymore in the event that they fulfill the Segwit consensus guidelines (which take a look at witness information).
  • Spends of pre-segwit outputs can not have a non-empty witness.

Whereas on this case there’s arguably a rule that impacts spends of previous output transactions, it nonetheless does not lead to an observable tightening, as a result of pre-fork transactions simply did not have witness fields.

I assume I simply wish to know why all people says that up to date nodes reject stuff from previous nodes when that doesn’t appear true.

Some issues, that have been beforehand legitimate, at the moment are now not legitimate – and in apply, solely issues that no one would use. That does not imply that each previous factor that was beforehand legitimate is now not legitimate.

LEAVE A REPLY

Please enter your comment!
Please enter your name here