Bitcoin Inqusition 29.2

Following up on my earlier CAT/CSFS/CTV/IK+CSFS/CAT+CSFS runs on Inquisition, I tested SIGHASH_ANYPREVOUT (BIP 118) the same way.

Funding A: 4b64…344a (50,000 sats)

Funding B: 543c…a5eb (50,000 sats)

Spend A:03c0…f3a4 (signed)

Spend B: 4609…1a43 (same witness, no re-signing)

Script: <0x01 || xonly_pubkey> OP_CHECKSIG (35 bytes)

Witness on both: [sig (65B with 0x41 sighash byte), leaf (35B), control_block (33B)]

Two observations:

  1. The 0x01 pubkey prefix is the only opt-in trigger. The Inquisition node sees it and switches to Msg118 / Ext118 instead of standard BIP 342 SigMsg. Existing tapscripts unaffected.
  2. Msg118 omits sha_prevouts, so cross-prevout reuse falls out of which fields are missing. Same amount + same scriptPubKey → same digest → same signature works. Under SIGHASH_ALL (0x41), sha_outputs is still committed, so modifying outputs still fails verification.

Full breakdown Blog: https://medium.com/@aaron.recompile/sighash-anyprevout-on-signet-when-signatures-stop-binding-to-utxos-eed4fc475668

1 Like