P2PKH 交易簽名期間的 ScriptSig 欄位
在
P2PKH
交易中,簽署交易後的內容包括:<signature(with hash_flag)><public_key>
. 但是,由於簽名不能自己簽名,所以在簽名過程中,該ScripSig
欄位被臨時設置為某個值。根據如何兌換基本 Tx?,該欄位臨時設置為我們要兌換的欄位(在本例
ScriptPubKey
中為前一個地址的)。但是,根據VButerin 的 pybitcointools,該欄位設置為您自己的地址(您用作來源的地址,以及將使用哪個私鑰簽署交易)。UTXO``P2PKH ScriptPubKey``RIPEMD160``P2PKH ScriptPubKey``RIPEMD160
我多次使用 pybitcointools 簽名功能,生成的交易是有效的,但是上述問題的答案已經很受歡迎,所以此時我對欄位應該包含什麼感到很困惑。
根據如何贖回基本 Tx? 中接受的答案,該欄位臨時設置為我們要贖回的 UTXO 中的 ScriptPubKey 欄位(在這種情況下,P2PKH ScriptPubKey 具有先前地址的 RIPEMD160)。但是,根據 VButerin 的 pybitcointools,該欄位設置有一個 P2PKH ScriptPubKey 和您自己地址的 RIPEMD160(您用作來源的地址,以及將使用哪個私鑰來簽署交易)。
你在這裡說了兩次同樣的事情。
交易T1存在,其輸出T1:0具有 scriptPubKey P2PKH(K1)。這是記入您的交易。它導致創建了一個帶有腳本P2PKH(K1)的 UTXO ,而您自己的密鑰是K1。
您正在嘗試使用輸入T1:0創建事務**T2和使用 scriptPubKey P2PKH(K2)的輸出T2:0。這是您使用K1簽署的支出交易。它向K2匯款,但消耗具有腳本P2PKH(K1)的 UTXO T1:0。