Ich bin ein wenig verwirrt über die Namensgebung in Bitcoin.
Einlöseskript sind die Bedingungen, die erfüllt werden. Zum Beispiel P2PKH innerhalb von P2SH
OP_DUP OP_HASH160 <PubKHash> OP_EQUALVERIFY OP_CHECKSIG == redeem script
In P2SH-P2WPKH lautet das Einlösungsskript :
Das P2SH-Einlöseskript ist immer 22 Bytes groß. Es beginnt mit einem OP_0, gefolgt von einem kanonischen Push des Keyhash (dh 0x0014{20-Byte-Keyhash}).
Irgendwann ruft es Skript-Hash auf, und während der Transaktion muss ich das Einlösungsskript in WitnessScript einfügen."witnessScript": "hex", (string) (required for P2WSH or P2SH-P2WSH) witness script
Dann heißt das Einlöseskript in der Segwit-Umgebung Einlöseskript, Skript-Hash oder Zeugenskript?
Ein scriptPubKey (oder ein Redescript wie in BIP16/P2SH definiert), das aus einem 1-Byte-Push-Opcode (für 0 bis 16) besteht, gefolgt von einem Daten-Push zwischen 2 und 40 Bytes, bekommt eine neue besondere Bedeutung.
Witness-Programm hängt vom Skript ab, könnte scriptPubkey oder Skript einlösen?
OP_HASH160 <Hash160(redeemScript)> OP_EQUAL
.Hash160(pubkey)
für P2WPKH und Hash256(witness_script)
für P2WPKH. Für native Segwit-Ausgaben ist der scriptPubKey OP_0 <witness_program>
; für P2SH-verpackte Segwit-Ausgaben ist das RedeemScript OP_0 <witness_program>
(und somit ist das scriptPubKey OP_HASH160 <Hash160(OP_0 <witness_script>)> OP_EQUAL
.
AffeBenutzer
OP_0 <witness_program>
OP_0 die Witness-Version?Pieter Wuille
AffeBenutzer
The witness program is Hash160(pubkey) for P2WPKH, and Hash256(witness_script) for P2WPKH
vielleicht denke ich du meinstThe witness program is Hash160(pubkey) for P2WPKH, and Hash256(witness_script) for P2WSH
?Pieter Wuille
Sam