1

I am confused about the end marker at the end of signatures (in my case, individual sigs for a Tx that spends a P2SH) in pybitcointools:

pybitcointools: 304402204dae851c29a117383c5c535086a7fe899c9c5f0d927a4e680498fdd9b244cb15022058fea40a9f8c3988b17556fceacdce063860057fd8c6ad84de40515d287758dd01

Bitcore: 304402204dae851c29a117383c5c535086a7fe899c9c5f0d927a4e680498fdd9b244cb15022058fea40a9f8c3988b17556fceacdce063860057fd8c6ad84de40515d287758dd

These are two same signatures (i.e., same Tx, input, private key). Only, in pybitcointools' implementation, you have a 01 at the end. Why?

Does it perhaps have to do with the hashtype?

Thx

hartmut
  • 671
  • 5
  • 21

2 Answers2

2

It is the hash type, in this case it is SIGHASH_ALL. To verify the digital signature inside of the Script language, it is required to have a hash type appended to the end of the digital signature. However if you verifying the signature using something like openssl, the bitcore signature would be valid.

Chris Stewart
  • 1,114
  • 1
  • 9
  • 19
  • thanks. Does it imply that using openssl to check the signature, we don't need to know about the hash type? – hartmut Aug 21 '16 at 08:30
  • 1
    @hartmut That's right. OpenSSL only checks the DER signature. Byte 2 of the DER is the signature length (i.e. No hashcode) – Wizard Of Ozzie Aug 21 '16 at 11:18
  • @WizardOfOzzie Ok thanks. If you have any link you can recommend for me to read on that please feel free to post them :). – hartmut Aug 21 '16 at 14:18
1

In bitcore-lib, the sighash type is added when building the input script (scriptSig) for the transaction, for example here: https://github.com/bitpay/bitcore-lib/blob/9e82395e71f8c1a9d4b1e4e4fc2b90085d5443d9/lib/script/script.js#L865-L886

As well as with the toTxFormat method: https://github.com/bitpay/bitcore-lib/blob/764aa6d4e9f28969192db2e8c1c82326cdbb6a6b/lib/crypto/signature.js#L300-L305

  • Thanks! Together with http://bitcoin.stackexchange.com/questions/37125/how-are-sighash-flags-encoded-into-a-signature your answer helped me finally get it. – hartmut Aug 22 '16 at 17:24