Transactions
生成 P2SH-P2WSH
我想用腳本 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
(我用這個腳本來計算它)