Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Código de cadena maestro

También se conoce como Clave privada maestra.

¿Qué es el código de cadena maestro?
El código de cadena maestro es la mitad derecha del hash de 64 bytes de su semilla, el complemento de la clave privada maestra que ocupa la profundidad cero del árbol de una billetera HD.

Se especifica en el BIP-32.

Todas las claves que usted llegue a usar descienden de ese único par. Una sola pasada de HMAC-SHA512 sobre la semilla, con la cadena de caracteres ASCII Bitcoin seed como clave, devuelve 64 bytes: los primeros 32 se convierten en la clave privada maestra y los últimos 32, en el código de cadena maestro. Copiar la semilla equivale a copiar todo lo que hay por debajo de ella, y esa es toda la razón de que un respaldo sea una frase y no un archivador.

Cómo funciona

La generación del par maestro se ejecuta exactamente una vez, al crear la billetera. BIP-32 acepta una semilla de entre 128 y 512 bits, recomienda 256 y la pasa por el hash con clave descrito arriba. El par resultante es el nodo del árbol que se escribe como m al principio de cada ruta de derivación, y no hay nada por encima de él.

En ese paso se esconde una comprobación de validez. Si los 32 bytes de la izquierda resultan ser cero, o un número mayor o igual que el orden de la curva secp256k1, BIP-32 declara la semilla no válida y la implementación debe rechazarla. La probabilidad de dar con cualquiera de los dos casos es inferior a 1 entre 2 elevado a 127, así que ninguna billetera ha informado nunca de uno, pero la regla es lo que hace que toda semilla aceptada se pueda usar sin ambigüedad.

Serializada, la raíz del árbol se identifica sola. Las claves privadas extendidas de la mainnet llevan los bytes de versión 0x0488ADE4 y aparecen como xprv; las públicas llevan 0x0488B21E y aparecen como xpub. En la raíz del árbol, el byte de profundidad es 0x00, y tanto la huella digital de la clave padre como el índice de la clave hija son cuatro bytes cero, porque no hay ninguna clave padre a la que apuntar.

El número que usted maneja en realidad es la huella digital, no los bytes en bruto. Calcular el hash de la clave pública maestra con SHA-256 y después con RIPEMD-160, y quedarse con los cuatro primeros bytes, produce una cadena hexadecimal de ocho caracteres que identifica una billetera sin revelar nada que se pueda derivar de ella.

Dónde aparece

El software de consumo oculta por completo el par maestro y muestra en su lugar la huella digital. Sparrow la imprime junto a cada almacén de claves, Bitcoin Core abre con ella, entre corchetes, cada línea del resultado de la llamada RPC listdescriptors, y un Coldcard la muestra en la pantalla de inicio para que usted pueda confirmar qué semilla guarda el dispositivo en ese momento. Cuando llega un PSBT, un dispositivo de firma compara la huella del campo de origen de la clave con la suya antes de decidir siquiera si la solicitud va dirigida a él.

En multisig, la identidad de la raíz del árbol deja de ser una curiosidad. Una billetera 2 de 3 no se puede recuperar solo con tres frases semilla, porque reconstruirla exige conocer también la huella digital y la ruta de cada cofirmante. Por eso toda herramienta multisig seria le indica que guarde el descriptor de la billetera junto a las palabras, y por eso perder el descriptor puede dejar varadas monedas que ninguna frase semilla por sí sola puede alcanzar.

El único momento en que usted toca directamente la clave privada maestra es una importación. Pegar una xprv en un programa entrega el árbol entero: cada propósito, cada cuenta, cada dirección futura, sin forma de limitar la concesión a una sola rama. No existe una versión parcial de una raíz del árbol, y por eso las billeteras de hardware se niegan por completo a exportarla.

Código de cadena maestro frente a frase semilla

La frase semilla va primero y el par maestro después, y pertenecen a estándares distintos. BIP-39 convierte 12 o 24 palabras en una semilla de 512 bits ejecutando PBKDF2 durante 2.048 rondas; después, BIP-32 convierte esa semilla en la clave privada maestra y el código de cadena maestro. Las capas son lo bastante independientes como para que añadir una frase de contraseña cambie la semilla, y por tanto el par maestro y todas las direcciones que dependen de él, mientras las palabras de su tarjeta siguen exactamente iguales. Electrum lo demuestra desde el otro lado: sus frases semilla no son BIP-39 en absoluto, y aun así producen una raíz BIP-32 corriente.

No confundir con

Preguntas frecuentes

¿Qué es la huella digital de la clave maestra que mi billetera muestra una y otra vez?

Es un identificador de ocho caracteres de su clave maestra, tomado de los cuatro primeros bytes del hash de la clave pública maestra. Las billeteras y los dispositivos de firma lo usan para confirmar que una transacción o un descriptor pertenece a la semilla que guardan.

¿Debería exportar o guardar alguna vez la clave privada maestra?

No. Una xprv otorga el control de todas las cuentas y de todas las direcciones futuras a la vez, y ninguna billetera necesita que usted se la dé. Respalde en su lugar la frase semilla, y exporte solo claves públicas extendidas de nivel de cuenta cuando se necesite acceso de solo lectura.

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés