P2sh

很難區分 P2SH 地址的找零和取款金額

  • July 9, 2018

我正在嘗試從 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>(這更容易,因為輸出是取款金額)

參考交易 - Bitcoin Wiki

據我了解,確定其中一個輸出是否發生更改(發送回與輸入相同的公鑰)的唯一方法是找到輸入和輸入之間通用的 pubKey(或 pubKey 雜湊)輸出,這將是更改交易。

您連結的第一個事務中的腳本格式為: OP_HASH160 &lt;scriptHash&gt; OP_EQUAL,它是嵌套在 BIP16 P2SH 中的 P2WPKH

輸入

公鑰是見證人 ( inputs[0].witness[1]) 的一部分,是值: 03985970517aea08ddf21636e1c0fb855c0fa04bb9b11ca7323a2d56bfafdb423d

pubKey 雜湊在inputs[0].script64cc029cec3dce47ee2b105567cf57e2ceb40872

輸出

不幸的是,輸出沒有給你這個資訊,因為腳本 ( outputs[n].script) 只顯示OP_HASH160 &lt;scriptHash&gt; OP_EQUAL. 您無法從腳本散列中獲取 pubKey(散列或 pubkey),因為散列是單向的。

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