if, used to create conditional execution paths, is likely one of the most elementary constructing blocks of any programming language. OP_IF has all the time been out there in Script and Tapscript, and it has been proven that Miniscript could produce leafscripts that use OP_IF.
In Bitcoin, OP_IF might for instance be used to construct inheritance help right into a day-to-day pockets. E.g., the proprietor of the cash makes use of the P2TR key path, whereas his heirs have entry to a time-locked decaying multisig leaf script. Since script paths are hashed into the output script, it’s not possible to rule out that such UTXOs exist. On condition that such patterns have been seen on testnet and mainnet, it’s doable that somebody set themselves up with such a pockets sample and has since been often stacking into such a pockets. If such a consumer had been unaware that their pockets can be affected by the proposed new guidelines, they may proceed receiving funds to this setup after activation and by no means discover that their inheritance setup was now not working.
Even when:
- there was help for forbidding
OP_IF - all wallets making use of Miniscript had been up to date to keep away from use of
OP_IF - all affected customers would have up to date to the brand new variations of their software program and adopted a brand new output sample that doesn’t use
OP_IF
any sender utilizing a beforehand shared handle or receiver persevering with to make use of an affected pockets sample would trigger funds to be locked up unwittingly.
Even with grandfathering in present UTXOs, forbidding OP_IF would break userspace.
