(Contains input from many people, not my own ideas)
- Forbid
multi
, have a newmulti_a
itself forbidden in other contexts - We now need to care about the maximum stack size (1000). With Taproot it's now also checked before executing the Script.
- We could have a new
d:
wrapper that isu
because theMINIMALIF
rule is consensus - It doesn't look like there is interesting combinations of the new
CHECKSIGADD
opcode with existing fragment. Maybe we could have used it forthresh
to save anOP_ADD
if the sub was aCHECKSIG
, but the arguments aren't in the right order for this. - No need to check for the Script size anymore
- I don't think we need to take the sigop budget into account, as we can't create a Script that would duplicate the signatures.
- When calculating sizes, keep in mind the signature length is now 64
- At the descriptor level, we should not forbid key duplicates across branches? As the signature for one branch cannot be replayed on the other
- Standard witness size is still bounded by MAX_NUM_STACK_ELEMENTS * MAX_STACK_ELEM_SIZE, that's effectively 8kWU
Latest version of this is at https://gist.github.com/sipa/06c5c844df155d4e5044c2c8cac9c05e.