¿Cómo se crea una firma adecuada para un mensaje determinado utilizando claves privadas de Bitcoin?
Tengo una dirección de entrada de
5JeWZ1z6sRcLTJXdQEDdB986E6XfLAkj9CgNE4EHzr5GmjrVFpf
o
6d7f6815bd7927423a728db28c5f4ea4032a81ab8dbca06ec41476508de48a6d
Quiero firmar mensaje:
test
Lo convierto a hexadecimal:
74657374
Lo paso a una función de firma de la biblioteca ECDSA que usa secp256k1, y obtengo dos salidas,
r = D16A44BF1095FB7D517C7C4DD6A51E3EFD29548C5CAD8CA4AB763946D02AE0E8
s = 2AB3E674B788804B87CED50619A1EFA267E17D20C016D0779BC3203D40E8105D
Si lo organizo con DER/asn1 como una lista de Big Integers, obtengo un resultado de:
MEUCIQDRakS/EJX7fVF8fE3WpR4+/SlUjFytjKSrdjlG0Crg6AIgKrPmdLeIgEuHztUGGaHvomfhfSDAFtB3m8MgPUDoEF0=
Si los organizo como una lista de matrices de bytes, obtengo
MEQEINFqRL8Qlft9UXx8TdalHj79KVSMXK2MpKt2OUbQKuDoBCAqs+Z0t4iAS4fO1QYZoe+iZ+F9IMAW0HebwyA9QOgQXQ==
si los clasifico como una matriz de bytes larga, obtengo 0WpEvxCV+31RfHxN1qUePv0pVIxcrYykq3Y5RtAq4Ogqs+Z0t4iAS4fO1QYZoe+iZ+F9IMAW0HebwyA9QOgQXQ==
Ninguno de ellos parece funcionar como firma cuando trato de verificar la firma del mensaje usando herramientas como http://brainwallet.org/#verify .
¿Cómo firmo correctamente los mensajes con claves privadas de Bitcoin para que sean compatibles con BitcoinQT?
Usando bitcoind y bitcoin-cli puedes hacerlo de la siguiente manera:
bitcoin-cli signmessage 1DiWX6p3FdHPZqN88vMeGVXSwAQ1h7BeVj 'Hello world!'
Nate Eldredge
KJO
signmessage <bitcoinaddress> <message>
?Jus12
f4r4