Transactions
兌換腳本。腳本雜湊、見證腳本和見證程序
我對比特幣的命名有點困惑。
兌換腳本是要滿足的條件。例如 P2SH 中的 P2PKH
OP_DUP OP_HASH160 <PubKHash> OP_EQUALVERIFY OP_CHECKSIG == redeem script
P2SH 贖回腳本始終為 22 字節。它以 OP_0 開始,然後是 keyhash 的規範推送(即 0x0014{20 字節 keyhash})。
有時它呼叫腳本雜湊,並且在交易過程中我需要在見證腳本中插入兌換腳本。
"witnessScript": "hex", (string) (required for P2WSH or P2SH-P2WSH) witness script
那麼隔離見證環境下的贖回腳本叫贖回腳本、腳本雜湊還是見證腳本?
由 1 字節推送操作碼(0 到 16)和後跟 2 到 40 字節數據推送組成的 scriptPubKey(或 BIP16/P2SH 中定義的兌換腳本)具有新的特殊含義。
見證程序取決於腳本可以是 scriptPubkey 還是兌換腳本?
- scriptPubKey 是放置在交易輸出中的腳本。
- 贖回腳本(僅限 P2SH)是作為最後一個 scriptSig 項推送的腳本。在 P2SH 腳本中,scriptPubKey 等於
OP_HASH160 <Hash160(redeemScript)> OP_EQUAL
.- 見證腳本(僅限 P2WSH)是位於最後一個見證堆棧位置的腳本。
- 見證程序
Hash160(pubkey)
適用於 P2WPKH 和Hash256(witness_script)
P2WPKH。對於原生 segwit 輸出,scriptPubKey 是OP_0 <witness_program>
; 對於 P2SH 包裝的 segwit 輸出,redeemScript 是OP_0 <witness_program>
(因此 scriptPubKey 是OP_HASH160 <Hash160(OP_0 <witness_script>)> OP_EQUAL
.