Note OP_SUCCESSx (such as OP_SUCCESS126, i.e., OP_CAT after activation) only makes a script immediately succeeds if EXECUTED.
For example, the script will not automatically succeed just because OP_SUCCESS3
is in the code — it only triggers success if actually run. If this script is evaluated with OP_FALSE
on the stack, the OP_IF
branch with OP_SUCCESS3
is not executed, so the ELSE
branch runs instead.
OP_FALSE
OP_IF
OP_SUCCESS3
OP_ELSE
OP_CHECKSIG
OP_ENDIF
Similarly, in our case, branching condition at Line 16 ensures only Bob can get OP_SUCCESS126 executed (i.e., when OP_CAT is still disabled), thus succeed. Alice cannot trigger OP_SUCCESS126, which is what we want.