BIP16 gives the following example to explain "Pay to Script Hash":
scriptSig: [signature] {[pubkey] OP_CHECKSIG}
scriptPubKey: OP_HASH160 [20-byte-hash of {[pubkey] OP_CHECKSIG} ] OP_EQUAL
But I don't get what's happening here. I've tried executing the script on paper (and assumed the parts in squared/curly brackets are treated as constants):
[signature]and{[pubkey] OP_CHECKSIG}are pushed onto the stackOP_HASH160hashes{[pubkey] OP_CHECKSIG}- The same hash comes from the
scriptPubKeyonto the stack - Consequently
OP_EQUALgivesTrue - The
[signature]is not checked at all!
If the {[pubkey] OP_CHECKSIG} is executed, the scriptSig would only give True, which makes even less sense.
To frame a clear question: How do "Pay to Script Hash" scripts work, especially this example case?