Función de derivación de clave privada infantil de billetera HD

Estaba tratando de entender las especificaciones sobre la función CKD tanto del estándar bip32 como del libro Mastering Bitcoin, no podía entender cómo se deriva una clave privada del lado izquierdo de la clave extendida.

El libro simplemente dice que el lado derecho se convierte en el código de la cadena y el lado izquierdo se convierte en la clave privada. Después de algunas investigaciones en línea, leí a alguien usando términos como ajustes y módulo n , G , que me confunden porque no se mencionaron en el libro y no tanto en la especificación en sí.

Ayúdenme a aclarar cómo se deriva exactamente una clave privada del lado izquierdo de la salida , y la relación con todas esas partes no mencionadas como el módulo n (¿Cuál n?), Ajustar (??), multiplicar por G (¿Qué es G ?) ya que todos estos términos no están bien documentados.

N y G son parámetros fijos de la curva secp256k1. Específicamente N=115792089237316195423570985008687907852837564279074904382605163141518161494337yG=(55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424)

Respuestas (1)

Una clave privada es un número, un número muy grande de 256 bits. Puede hacer aritmética ordinaria con tales números, por ejemplo, módulo de suma n, donde n es el orden de la curva (alguien más tendrá que ampliar eso si es necesario). n está muy cerca pero es menor que 2^256.

Aquí hay un diagrama de la derivación de la clave privada secundaria:

ingrese la descripción de la imagen aquí

Los 256 bits de la izquierda del hash de 512 bits se agregan módulo n a la clave privada principal. La suma, que también es un número de 256 bits (debido al módulo n), es la clave privada secundaria. La suma de la clave privada principal y un número aparentemente aleatorio de 256 bits es un número aparentemente aleatorio de 256 bits, por lo que esa suma funcionará bien como clave privada.

Todas las operaciones son módulo el orden de la curva N no módulo 2^256
Gracias, @MikeD. Actualicé mi respuesta en consecuencia.
De esa imagen podemos deducir que childPrivateKey= leftSideHash + parentPrivateKey ?. Corrígeme si estoy equivocado. De esa relación, ¿dónde se usa n o G?
@TheOverloadGenius n se usa en la adición (módulo de adición n). Dice "suma normal" en la figura pero en realidad es "suma normal módulo n". Tal vez debería agregar eso a la figura. G no se usa en absoluto en la derivación de claves privadas secundarias. Solo se usa cuando se calcula una clave pública a partir de una clave privada.