I would like to clarify the meaning of different hashtypes:
SIGHASH_ALL: All inputs and outputs are required.
SIGHASH_ALL + SIGHASH_ANYONECANPAY: All outputs are required. I don't care where the rest of bitcoins come from.
SIGHASH_NONE: All inputs are required. I don't care where the bitcoins go.
SIGHASH_NONE + SIGHASH_ANYONECANPAY: I don't care where the rest of bitcoins come from. I don't care where the bitcoins go. Basically throwing the coins away without any condition.
SIGHASH_SINGLE: All inputs are required. As long as one
particular output is satisfied, I don't care where the rest of bitcoins go.
SIGHASH_SINGLE + SIGHASH_ANYONECANPAY: I don't care where the rest of bitcoins come from. As long as one particular output is satisfied, I don't care where the rest of bitcoins go.
Am I correct?
How is the particular output in SIGHASH_SINGLE specified? I don't understand the description in bitcoin wiki (
https://en.bitcoin.it/wiki/OP_CHECKSIG#Procedure_for_Hashtype_SIGHASH_SINGLE )