Asia Australia Bitcoin Blockchain Canada Comeback Crash Crypto Europe Launch Markets Merge message-signing message-verification Mining Minting Rates Security sighash-flags Spain Trading United States

SIGHASH_SINGLE with no corresponding output

Transaction 99fc1e5c753459808bac56435b3d45f2fcf0dd73016ea14460d63e9ddf353714 is an interesting example.

This transaction has 5 inputs and 1 output. All of the input scripts include 1 public key and 1 signature. They all use the same public key and all of the signatures have SIGHASH byte 03 (SIGHASH_SINGLE). Inputs 1 – 4 all have the exact same signature, which means the same piece of data was used to create the signature.

The public key for all inputs is:


The signature for inputs 1 – 4 is:


However, there is only one output in the transaction, so there is no corresponding output for inputs 1 – 4. When this transaction was added to the blockchain, all of those inputs had to be verified. What data was signed in order to create the signature for inputs 1 – 4?

The explanation at the bottom of this site says that if there is no corresponding output, then the message that gets signed is always 0100000000000000000000000000000000000000000000000000000000000000. However, the public key fails to verify this piece of data for the signature from inputs 1 – 4.

What data is signed to produce a signature in a case like this?