Script

簽名期間的 ScriptSig 內容(二次散列)

  • January 23, 2021

據我所知,二次散列問題來自這樣一個事實,即每次驗證(或簽名)交易時,散列和驗證的“未簽名交易”會根據正在分析的交易輸入而變化。基本上,目標輸入ScriptSig設置為ScriptPubKeyUTXO兌換的 ,而其他輸入為空。

但是,我看不到這背後的原因是什麼。為什麼不是所有ScriptSig欄位都分配給他們的UTXO ScriptPubkey欄位,或者留空?它的設計方式似乎沒有提供任何好處(至少我看不到它),而它使您double-sha256每次分析輸入時都重新計算,從而導致二次散列問題。

就是這樣,因為這就是 Satoshi 為它編寫程式碼的方式,而且它從未改變過。如果沒有某種分叉,它就無法改變,到目前為止,還沒有發生任何分叉來改變它(儘管一旦它啟動 segwit 就會改變它)。

然而,這樣做可以讓人們更輕鬆地進行像 CoinJoins 這樣的多方交易。他們不要求您知道scriptPubKey其他人的輸入,您只需簽署您能夠簽署的內容。你不知道scriptPubKey’s 並且你不在乎,你只需要知道scriptPubKey你正在簽名的輸入。這使得參與多方交易變得更加容易,特別是對於那些使用輕錢包的人來說,因為他們沒有設置 UTXO。

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