很難區分 P2SH 地址的找零和取款金額
我正在嘗試從 BTC 地址(從 Trezor、ledger nano 等硬體錢包……)提取準確數量的 BTC。因此,如果地址是 pay-to-pubkey-hash,那麼我可以通過其交易 id hash 輕鬆跟踪金額 - > 輸出但是當地址是 pay-to-script-hash 時,我很難辨識哪個是 Change哪個是從 Txn Hash 詳細資訊中提取的金額。P2SH地址有沒有辦法區分找零和提現的金額。
例如:
P2SH:https ://api.blockcypher.com/v1/btc/main/txs/87d5fa33ae3f1754bb1618c8559b8451f64de1e396627fad65a19b74b2c72b86 (難以找到)
<https://api.blockcypher.com/v1/btc/main/txs/d7cdb1f910ac15d99ee98a28c276ccfccd5fd6592cf01528eb57a871e789b709>(這更容易,因為輸出是取款金額)
據我了解,確定其中一個輸出是否發生更改(發送回與輸入相同的公鑰)的唯一方法是找到輸入和輸入之間通用的 pubKey(或 pubKey 雜湊)輸出,這將是更改交易。
您連結的第一個事務中的腳本格式為:
OP_HASH160 <scriptHash> OP_EQUAL
,它是嵌套在 BIP16 P2SH 中的 P2WPKH輸入
公鑰是見證人 (
inputs[0].witness[1]
) 的一部分,是值:03985970517aea08ddf21636e1c0fb855c0fa04bb9b11ca7323a2d56bfafdb423d
pubKey 雜湊在
inputs[0].script
:64cc029cec3dce47ee2b105567cf57e2ceb40872
輸出
不幸的是,輸出沒有給你這個資訊,因為腳本 (
outputs[n].script
) 只顯示OP_HASH160 <scriptHash> OP_EQUAL
. 您無法從腳本散列中獲取 pubKey(散列或 pubkey),因為散列是單向的。