This Taproot transaction has 3 witness items which are initial stack for P2TR script. Execution of the tapscript goes something like this:
- push (4 items on the stack)
checksig
operation (results in pushing1
on the stack - we are back on a 3 items on the stack)- push an empty element (4 items on the stack)
OP_IF
with an empty element as an input; it does not evaluate (3 items on the stack)- the end (3 items on the stack)
Since the consensus rule for tapscript is that execution can't result in anything but exactly one element on the stack which evaluates to true, I am asking how is this transaction valid?