Monedero: ¿cómo generar clave pública extendida?

Según tengo entendido, cuando quiero crear una billetera HD, ¿necesito una clave privada que se derive en una clave pública extendida?

Entonces, mi pregunta es, si estoy codificando una cartera de bitcoin en Java, ¿cómo puedo generar esta clave pública extendida a partir de una clave privada (supongo que la clave privada es como una contraseña privada, verdad?)?

Gracias por tu ayuda,

tal vez esto ayude a solucionarlo: chimera.labs.oreilly.com/books/1234000001802/… y es posible que desee consultar bitcoin.stackexchange.com/questions/tagged/bip32 y bitcoin.stackexchange.com/questions/tagged/bip32 + billetera hd . Háganos saber, si todavía le falta algo :-)

Respuestas (1)

Generalmente, la clave privada y el código de cadena (estas 2 partes forman la clave privada extendida) se generan al mismo tiempo a partir de una semilla. La semilla puede ser un número generado aleatoriamente o derivado de un mnemotécnico de 12 palabras como BIP 39 detalles. Una vez que tienes una semilla, BIP 32 explica:

Calcule I = HMAC-SHA512 (Clave = "Semilla de Bitcoin", Datos = su semilla) Divida I en dos secuencias de 32 bytes, IL e IR. Utilice parse256(IL) como clave secreta maestra e IR como código de cadena maestra.

Básicamente, toma el hash de 512 bits de la semilla y lo divide en dos mitades de 256 bits, una de las cuales es la clave privada y la otra es el código de cadena. Y a partir de la clave privada se puede obtener la clave pública.