1

I have a little confusion about naming in Bitcoin.

Redeem script is the conditions that will be satisfy. For example P2PKH inside P2SH

OP_DUP OP_HASH160 <PubKHash> OP_EQUALVERIFY OP_CHECKSIG == redeem script

In P2SH-P2WPKH the redeem script is:

The P2SH redeemScript is always 22 bytes. It starts with a OP_0, followed by a canonical push of the keyhash (i.e. 0x0014{20-byte keyhash}).

Sometime It call script hash, and during the transaction I need to insert the redeem script in witnessScript. "witnessScript": "hex", (string) (required for P2WSH or P2SH-P2WSH) witness script

Then the redeem script in segwit environment is called redeem script, script hash or witness script?

Witness program

A scriptPubKey (or redeemScript as defined in BIP16/P2SH) that consists of a 1-byte push opcode (for 0 to 16) followed by a data push between 2 and 40 bytes gets a new special meaning.

Witness program depends on script could be scriptPubkey or redeem script?

3
  • The scriptPubKey is the script as it is placed in the transaction output.
  • The redeemScript (P2SH only) is the script pushed as the last scriptSig item. In P2SH scripts, the scriptPubKey is equal to OP_HASH160 <Hash160(redeemScript)> OP_EQUAL.
  • The witness script (P2WSH only) is the script in the last witness stack position.
  • The witness program is Hash160(pubkey) for P2WPKH, and Hash256(witness_script) for P2WPKH. For native segwit outputs the scriptPubKey is OP_0 <witness_program>; for P2SH-wrapped segwit outputs the redeemScript is OP_0 <witness_program> (and thus the scriptPubKey is OP_HASH160 <Hash160(OP_0 <witness_script>)> OP_EQUAL.
| improve this answer | |
  • Super clear, thanks a lot! – monkeyUser Apr 12 at 10:44
  • In P2SH-wrapper is OP_0 <witness_program> where OP_0 is the witness version? – monkeyUser Apr 12 at 10:53
  • 1
    Yes, indeed. The OP_0 is the witness version. So far only witness v0 is defined. – Pieter Wuille Apr 12 at 17:08
  • the fourth bullet point. The witness program is Hash160(pubkey) for P2WPKH, and Hash256(witness_script) for P2WPKH maybe I think you mean The witness program is Hash160(pubkey) for P2WPKH, and Hash256(witness_script) for P2WSH ? – monkeyUser Apr 13 at 10:52
  • 1
    Yes indeed, fixed. – Pieter Wuille Apr 13 at 15:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.