Estaba tratando de obtener una respuesta sólida de que realmente entendía una parte del libro Mastering Bitcoin Book sobre las billeteras HD. La siguiente imagen es la referencia para la pregunta.
Revisé la funcionalidad expuesta por un Javascript Brain Wallet . Al ingresar "123" (es un secreto muy pobre) en un campo para un brainwallet HD y surgió la siguiente clave privada extendida: xprv9s21ZrQH143K2hYgcmBxsUfRw3Kbu3eEGXFJrM8Cqtewuqa6Y6nXbB7tv9HnrBajqjptPsRjL9FmnwLa317jHWJ5dpwTc99tPRaxk P.
Al hacer clic en el botón a la derecha de la clave privada, accedí a otra página que indica que el código de cadena privada principal es 40675733fc35303c1c75bc598716f24af225528da686192ceb567c88313f8885 y la clave privada principal es L4h3ZSQ3yfFNbovQjTGumvUGEfB1a7oFAhbkhoTSwdUD8KoTSwdUD .
Dadas estas dos últimas piezas de información y un índice de 0, ¿es posible emitir un número de comandos bx y concatenar sus resultados de salida para alimentar un hash HMAC-SHA512 para llegar a la clave WIF privada de KwMsDozFYQG7SZFwfvFRwWDhfuMJjkE669WxP6SqrpDPsCBrPV4p dirección pública 15jbcT7wE81s8n2dbEGRFGfj65xzh ? Si es así, ¿cómo se logra esto o es necesario complementar bx con algún otro comando que represente la funcionalidad HMAC-SHA512?
No hay necesidad de un programa externo en absoluto:
$ KEY=xprv9s21ZrQH143K2hYgcmBxsUfRw3Kbu3eEGXFJrM8Cqtewuqa6Y6nXbB7tv9HnrBajqjptPsRjL9FmnwLa317jHWJ5dpwTc99C2AiPztPRaxk
$ echo $KEY | bx hd-public -i 0 | bx hd-to-address
15jbcT7wE81s8n2dbEGRFGf65zp7PHrjxh
O, debido a que esto no está reforzado, puede usar la clave pública extendida:
$ KEY=xpub661MyMwAqRbcFBd9iniyEccAV5A6JWN5dkAuejXpQEBvnduF5e6n8ySNmP8uWeqNbwFXLHEQkV1shXbNtBV8YCUJPMSuE7bGCvDaZJfUBuP
$ echo $KEY | bx hd-public -i 0 | bx hd-to-address
15jbcT7wE81s8n2dbEGRFGf65zp7PHrjxh
skaht
skaht