Wie signiere ich eine Nachricht mit dem privaten Schlüssel von Bitcoin?

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?

Die ultimative Dokumentation ist die Quelle ...
Was ist los mit signmessage <bitcoinaddress> <message>?
Haben Sie den Signaturalgorithmus gefunden? Ich habe es mit doubleSha (msg.getBytes) (in Java) versucht. Die Überprüfung schlägt fehl.
Um Himmels willen wird die Frage gestellt, damit die Dinge manuell erledigt werden können, ohne Programme wie bitcoin-qt zu verwenden, es ist eine technische Frage! Der Benutzer möchte eine tx manuell signieren und mit bitcoin-qt oder cli überprüfen, ob die Signatur korrekt ist!

Antworten (2)

Mit bitcoind und bitcoin-cli können Sie dies wie folgt tun:

bitcoin-cli signmessage 1DiWX6p3FdHPZqN88vMeGVXSwAQ1h7BeVj 'Hello world!'

Bei Bitcoin-qt

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Oder Sie können dies in blockchain.info/wallet tun, indem Sie auf das Menü über Ihren Adressen klicken.

Keine Notwendigkeit, es manuell zu tun.