Transactions

輸入交易簽名

  • July 2, 2022

當我們至少使用 2 個輸入和 SIGHASH_ALL 標誌簽署交易時,簽名消息發生了什麼?

例如:

version: 01000000
inputs:  02
 txid: b7994a0db2f373a29227e1d90da883c6ce1cb0dd2d6812e4558041ebbbcfa54b
 vout: 00000000
 scriptsigsize: 19
 scriptsig: 76a9144299ff317fcd12ef19047df66d72454691797bfc88ac
 sequence: ffffffff
 ----------------------------------------------------------------------
 txid: e9431833fc2380477723e4b50aa6386dc8d6b86a3a6911a240cfacd68208ea28
 vout: 00000001
 scriptsigsize: 19
 scriptsig: 76a9144299ff317fcd12ef19047df66d72454691797bfc88ac
 sequence: ffffffff
outputs: 01
 amount: c965000000000000
 scriptpubkeysize: 19
 scriptpubkey: 76a914b3e2819b6262e0b1f19fc7229d75677f347c91ac88ac
locktime: 00000000

第 1 步:取第一個輸入簽名並將 scriptSigSize 和 scriptSig 替換為簽名大小和簽名數據。那麼,我是否必須使用替換的輸入 scriptSig 來編輯消息?或者我是否為同一交易中的每個簽名保留相同的交易消息?

最好的祝愿

每個輸入都簽署不同的消息。它始終是支出交易,除了正在簽名的輸入之外,所有輸入都被清除。因此,在簽署第二個輸入時,scriptSig 中第一個輸入的任何內容都將被忽略。這允許獨立的簽名和驗證 - 您無需簽署第一個輸入即可簽署和驗證第二個輸入。

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