bitcoincore development – What is stopping a Taproot spend following old Taproot rules (initially treated as anyone-can-spend) pre-activation creating a re-org post activation?


When the soft fork (e.g. Taproot) is activated (assuming it is at some stage) all nodes agree to only verify transactions according to Taproot rules from the point of Taproot activation onwards. No nodes will verify transactions pre-activation according to rules specified at activation. Hence the network will always agree that your transaction following the old Taproot rules was an anyone-can-spend even if a valid or invalid SegWit v1 witness is available.

In contrast, post activation there will be some nodes on the network enforcing the new Taproot rules (running the latest version of Bitcoin Core) and some treating them as anyone-can-spend (running older versions of Bitcoin Core). A transaction broadcast post activation following old Taproot rules (never activated on the network) will be rejected by the nodes enforcing the new Taproot rules. Even though some nodes will treat transactions following the old Taproot rules or the new Taproot rules as anyone-can-spend, only transactions following the new Taproot rules will make it into a mined block accepted by all nodes on the network.