Transactions

生成 P2SH-P2WSH

  • December 18, 2021

我想用腳本 P2PKH 生成 P2SH-P2WSH。

My public key is    027712968e8f2f9dfa79abe10940a3d915a0c95a0b97750881e6201acf2b66da97

公鑰的 SHA256 和 RIPEMD160

---------- Witness Script --------- 
#OP_DUP OP_HASH160 <PubKHash> OP_EQUALVERIFY OP_CHECKSIG
76a914651554088a30217e6d0261cce1634e9d90b03f7088AC

---------- scripthash --------- 
#SHA 256 of Witness script    
1eb6c6c3ad4e395e66e3521c23486863fe363939db88c38a3c6461cb66f80254

 ---------- Redeeem script ---------     
#add OP_0 (0x0020{32-byte scripthash})
00201eb6c6c3ad4e395e66e3521c23486863fe363939db88c38a3c6461cb66f80254

 ---------- SCRIPTPUBKEY --------- 
#RIPEMD160(redeem script)
#OP_HASH160 hash160(redeemScript) OP_EQUAL
A9149fbb6d60a6d26f67b9673334c3863cdec224169787

ADDRESS:
#C4A9149fbb6d60a6d26f67b9673334c3863cdec224169787 base58 cecksum
2N7ooxTaU8FRgfTrhYn3FjwUcFqeNRvRU5k

現在我想嘗試從這個地址消費。

bitcoin-cli signrawtransactionwithkey $TX_DATA '["'$PK'"]' '[{"txid":"'$TXID'","vout":'$VOUT',"redeemScript":"'$REDEEMSCRIPT'","scriptPubKey":"'$SCRIPTPUBKEY'","witnessScript":"'$WITNESSCRIPT'","amount":"'$TOTAL_UTXO_AMOUNT'"}]'

我收到此錯誤

贖回腳本與見證腳本不對應

在提出這個問題時,這個問題是由比特幣核心中的一個錯誤造成的。它已在PR #18484中修復,可在 Bitcoin Core 0.20+ 中使用。

使用的散列Redeeem script使用SCRIPTPUBKEY錯誤的散列算法。

RIPEMD160(Redscript) = f23bde7eee22aabca28164cb4b8a977834e5441b但我們想要 HASH160的是

RIPEMD160(SHA256(Redscript)) = c39f7f611a844bd7118dac9166fa9c1398676c30

(我用這個腳本來計算它)

引用自:https://bitcoin.stackexchange.com/questions/95023