Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Clave hija

También se conoce como Clave pública hija o Clave privada hija.

¿Qué es una clave hija?
Una clave hija sale de un paso de derivación y no de un generador de números aleatorios, y se identifica por el índice que su clave padre usó para producirla.

Se especifica en el BIP-32.

Nada en una clave hija es más débil que la clave que está por encima de ella. Una clave hija es una clave privada completa de 256 bits con su propio código de cadena, capaz de firmar transacciones y de tener, a su vez, claves hijas. La palabra describe una posición en un árbol, y en una billetera estándar las claves que realmente guardan sus monedas están cinco niveles por debajo de la raíz del árbol.

Cómo funciona

Derivar una clave hija requiere un hash y una suma. El código de cadena de la clave padre se convierte en la clave de HMAC-SHA512, los datos son el material de la clave padre seguido de un índice de cuatro bytes, y el resultado de 64 bytes se divide por la mitad. Los 32 bytes de la derecha se convierten en el código de cadena de la clave hija. Los 32 bytes de la izquierda se suman a la clave privada padre, módulo el orden de la curva secp256k1, y la suma es la clave privada hija.

Esa suma es la razón de que la derivación pública sea siquiera posible. Sumar un número a una clave privada equivale a sumar un punto a la clave pública, así que un software que solo tenga la parte pública puede calcular la misma clave pública hija sin ver nunca un secreto. BIP-32 también contempla el caso en que el resultado del hash cae fuera del rango válido, cuya probabilidad sitúa por debajo de 1 entre 2 elevado a 127, y la instrucción es saltarse ese índice y pasar al siguiente.

Las claves hermanas no delatan nada. Dos claves hijas de una misma clave padre no comparten nada que un observador pueda detectar a partir de sus direcciones, y eso es lo que hace que valga la pena usar una dirección nueva por pago. Solo puede recuperar la relación quien tenga la clave pública extendida padre.

Dónde aparece

Una billetera está hecha, en realidad, de claves hijas, así que usted se las encuentra como números de índice y no como claves.

Abra una pantalla de control de monedas en Sparrow o Electrum y verá que cada dirección lleva su ruta: m/84'/0'/0'/0/7 es la octava dirección de recepción de la primera cuenta, contando desde cero. Confirme un retiro en un Trezor o en un Ledger y el dispositivo mostrará esa misma ruta junto a la dirección, que es como usted comprueba que el destino pertenece a su propio árbol y no a quien haya comprometido la computadora.

También vale la pena leer la profundidad. La clave maestra está en la profundidad 0, y en una ruta al estilo de BIP-44 la clave que firma un pago está en la profundidad 5. Cada nivel intermedio es hijo del de arriba y padre del de abajo, así que ambas palabras describen una relación y no un rango.

De todo esto se desprende un hábito. Nunca exporte una clave privada hija individual de una billetera HD, salvo que tenga la intención de abandonar la rama por completo. Una clave privada hija no endurecida, combinada con la clave pública extendida padre, revela la clave privada extendida padre, así que una sola exportación descuidada puede entregar una cuenta entera en lugar de una dirección.

Clave hija frente a clave padre

Una clave hija y una clave padre son el mismo tipo de objeto visto desde los extremos opuestos de un paso de derivación. Toda clave, salvo la maestra, es la clave hija de otra, y toda clave de la que se ha derivado alguna es la clave padre de otra, así que un nodo del árbol en m/84'/0'/0' es ambas cosas a la vez. La asimetría está en lo que cada una puede calcular. Una clave padre deriva sus claves hijas sin límite, mientras que una clave hija, por sí sola, no dice nada de la clave que tiene por encima. Esa propiedad unidireccional es todo el modelo de seguridad del árbol, y la derivación endurecida es lo que la mantiene unidireccional.

No confundir con

Preguntas frecuentes

¿Una clave hija es menos segura que la clave maestra?

No. Una clave hija es una clave privada completa de 256 bits, y firmar con ella es exactamente igual de robusto. La diferencia es de posición: una clave hija puede regenerarse a partir de su clave padre, mientras que la clave padre no puede regenerarse a partir de la clave hija.

¿Puedo exportar solo una clave hija para mover una sola dirección?

Puede, pero no debería. Una clave privada hija no endurecida entregada a alguien que también tiene la clave pública extendida padre le permite reconstruir la clave privada padre y gastar toda la rama.

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés