Wie erstellt man mit privaten Bitcoin-Schlüsseln eine ordnungsgemäße Signatur für eine bestimmte Nachricht?
Ich habe eine Eingabeadresse von
5JeWZ1z6sRcLTJXdQEDdB986E6XfLAkj9CgNE4EHzr5GmjrVFpf
oder
6d7f6815bd7927423a728db28c5f4ea4032a81ab8dbca06ec41476508de48a6d
Ich möchte Nachricht signieren:
test
Ich konvertiere es in Hex:
74657374
Ich füttere es einer Signaturfunktion der ECDSA-Bibliothek, die secp256k1 verwendet, und ich bekomme zwei Ausgaben,
r = D16A44BF1095FB7D517C7C4DD6A51E3EFD29548C5CAD8CA4AB763946D02AE0E8
s = 2AB3E674B788804B87CED50619A1EFA267E17D20C016D0779BC3203D40E8105D
Wenn ich es mit DER/asn1 als Liste von Big Integers marshale, erhalte ich folgendes Ergebnis:
MEUCIQDRakS/EJX7fVF8fE3WpR4+/SlUjFytjKSrdjlG0Crg6AIgKrPmdLeIgEuHztUGGaHvomfhfSDAFtB3m8MgPUDoEF0=
Wenn ich sie als Liste von Byte-Arrays marsalle, bekomme ich
MEQEINFqRL8Qlft9UXx8TdalHj79KVSMXK2MpKt2OUbQKuDoBCAqs+Z0t4iAS4fO1QYZoe+iZ+F9IMAW0HebwyA9QOgQXQ==
Wenn ich sie als ein langes Byte-Array marshalle, erhalte ich 0WpEvxCV+31RfHxN1qUePv0pVIxcrYykq3Y5RtAq4Ogqs+Z0t4iAS4fO1QYZoe+iZ+F9IMAW0HebwyA9QOgQXQ==
Keine von ihnen scheint als Signatur zu funktionieren, wenn ich versuche, die Nachrichtensignatur mit Tools wie http://brainwallet.org/#verify zu überprüfen .
Wie signiere ich Nachrichten ordnungsgemäß mit privaten Bitcoin-Schlüsseln, um mit BitcoinQT kompatibel zu sein?
Mit bitcoind und bitcoin-cli können Sie dies wie folgt tun:
bitcoin-cli signmessage 1DiWX6p3FdHPZqN88vMeGVXSwAQ1h7BeVj 'Hello world!'
Nate Eldredge
KJ O
signmessage <bitcoinaddress> <message>
?Jus12
f4r4