Multi-Signature

簽名末尾的“01”

  • August 22, 2016

我對簽名末尾的結束標記感到困惑(在我的情況下,個人簽名用於花費 P2SH 的 Tx)pybitcointools

pybitcointools: 304402204dae851c29a117383c5c535086a7fe899c9c5f0d927a4e680498fdd9b244cb15022058fea40a9f8c3988b17556fceacdce063860057fd8c78784de400115d2

Bitcore: 304402204dae851c29a117383c5c535086a7fe899c9c5f0d927a4e680498fdd9b244cb15022058fea40a9f8c3988b17556fceacdce063860057fd8c6ad8784de40515d2

這是兩個相同的簽名(即相同的 Tx、輸入、私鑰)。只是,在pybitcointools’ 實施中,最後有一個 01為什麼?

它可能與雜湊類型有關嗎?

謝謝

它是雜湊類型,在這種情況下是SIGHASH_ALL。要驗證腳本語言內部的數字簽名,需要在數字簽名的末尾附加一個雜湊類型。但是,如果您使用類似 openssl 的方式驗證簽名,則 bitcore 簽名將是有效的。

在 bitcore-lib 中,在為交易建構輸入腳本 (scriptSig) 時會添加 sighash 類型,例如這裡:https://github.com/bitpay/bitcore-lib/blob/9e82395e71f8c1a9d4b1e4e4fc2b90085d5443d9/lib/script/script。 js#L865-L886

以及toTxFormat方法:https ://github.com/bitpay/bitcore-lib/blob/764aa6d4e9f28969192db2e8c1c82326cdbb6a6b/lib/crypto/signature.js#L300-L305

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