'01' al final de las firmas

Estoy confundido sobre el marcador final al final de las firmas (en mi caso, firmas individuales para un Tx que gasta un P2SH) en pybitcointools:

pybitcointools: 304402204dae851c29a117383c5c535086a7fe899c9c5f0d927a4e680498fdd9b244cb15022058fea40a9f8c3988b17556fceacdce063860057fd8c6ad84de40758d2

Bitcore: 304402204dae851c29a117383c5c535086a7fe899c9c5f0d927a4e680498fdd9b244cb15022058fea40a9f8c3988b17556fceacdce063860057fd8c6ad84de40758d2

Estas son dos firmas iguales (es decir, mismo Tx, entrada, clave privada). Solo pybitcointoolsque, en 'implementación, tiene un 01 al final . ¿Por qué?

¿Quizás tiene que ver con el tipo de hash?

Gracias

Respuestas (2)

Es del tipo hash, en este caso es SIGHASH_ALL . Para verificar la firma digital dentro del lenguaje Script, se requiere tener un tipo de hash adjunto al final de la firma digital. Sin embargo, si verifica la firma usando algo como openssl, la firma bitcore sería válida.

gracias. ¿Significa que al usar openssl para verificar la firma, no necesitamos saber sobre el tipo de hash?
@hartmut Así es. OpenSSL solo verifica la firma DER. El byte 2 del DER es la longitud de la firma (es decir, sin código hash)
@WizardOfOzzie Ok, gracias. Si tiene algún enlace que pueda recomendarme para leerlo, no dude en publicarlo :).

En bitcore-lib, el tipo sighash se agrega al crear el script de entrada (scriptSig) para la transacción, por ejemplo aquí: https://github.com/bitpay/bitcore-lib/blob/9e82395e71f8c1a9d4b1e4e4fc2b90085d5443d9/lib/script/script. js#L865-L886

Así como con el toTxFormatmétodo: https://github.com/bitpay/bitcore-lib/blob/764aa6d4e9f28969192db2e8c1c82326cdbb6a6b/lib/crypto/signature.js#L300-L305

¡Gracias! Junto con bitcoin.stackexchange.com/questions/37125/… tu respuesta finalmente me ayudó a conseguirlo.