Ich bin verwirrt über die Endmarkierung am Ende von Signaturen (in meinem Fall einzelne Sigs für einen Tx, der einen P2SH ausgibt) in pybitcointools
:
pybitcointools
: 304402204dae851c29a117383c5c535086a7fe899c9c5f0d927a4e680498fdd9b244cb15022058fea40a9f8c3988b17556fceacdce063860057fd8c6ad84de40715d2
Bitcore
: 304402204dae851c29a117383c5c535086a7fe899c9c5f0d927a4e680498fdd9b244cb15022058fea40a9f8c3988b17556fceacdce063860057fd8c6ad84de407758d2
Dies sind zwei gleiche Signaturen (dh gleiche Tx, Eingabe, privater Schlüssel). Nur, in pybitcointools
der 'Implementierung, haben Sie eine 01 am Ende . Warum?
Liegt es vielleicht am Hashtyp?
Danke
Es ist der Hash-Typ, in diesem Fall ist es SIGHASH_ALL . Um die digitale Signatur innerhalb der Skriptsprache zu verifizieren, muss am Ende der digitalen Signatur ein Hash-Typ angehängt werden. Wenn Sie die Signatur jedoch mit etwas wie openssl überprüfen, wäre die Bitcore-Signatur gültig.
In bitcore-lib wird der Sighash-Typ hinzugefügt, wenn das Eingabeskript (scriptSig) für die Transaktion erstellt wird, zum Beispiel hier: https://github.com/bitpay/bitcore-lib/blob/9e82395e71f8c1a9d4b1e4e4fc2b90085d5443d9/lib/script/script. js#L865-L886
Sowie mit der toTxFormat
Methode: https://github.com/bitpay/bitcore-lib/blob/764aa6d4e9f28969192db2e8c1c82326cdbb6a6b/lib/crypto/signature.js#L300-L305
Hartmut
Zauberer von Ozzie
Hartmut