Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Huella digital de la clave

¿Qué es la huella digital de la clave?
La huella digital de la clave consiste en los primeros 32 bits del Hash160 de una clave pública, escritos como ocho caracteres hexadecimales, y las billeteras la usan para indicar de qué clave parte una ruta de derivación.

Se especifica en el BIP-32.

Una huella digital es una etiqueta de ancho fijo para una clave, y su ancho forma parte del formato, no de una elección de presentación. BIP-380 exige exactamente 8 caracteres hexadecimales dentro de los corchetes de un descriptor, y sus propios vectores de prueba rechazan una huella de siete caracteres, una de nueve y otra que contiene una letra fuera del rango hexadecimal. Cuando una billetera se niegue a importar su descriptor, cuente primero los caracteres de ese campo.

Cómo funciona

BIP-32 da a una clave extendida dos identidades de distinta longitud, y la huella digital es la corta. El identificador es el Hash160 de la clave pública serializada, RIPEMD-160 sobre SHA-256, sin tener en cuenta el código de cadena, y solo los primeros 32 bits de ese identificador reciben el nombre de huella digital. Los otros 128 bits no se descartan: BIP-32 dice que el identificador completo de 160 bits podría usarse internamente, mientras que la forma corta solo sirve como una manera rápida de detectar los nodos padre e hijos del árbol, así que el software debe estar dispuesto a lidiar con colisiones.

La coherencia entre un campo de huella digital y la clave que lo rodea es una regla de validez, no una convención. Una clave maestra no tiene clave padre y escribe 0x00000000 en su campo de huella digital de la clave padre, y el quinto vector de prueba de BIP-32, el conjunto que abarca las claves que deben reconocerse como no válidas, incluye tanto una xprv como una xpub con profundidad cero y una huella digital de la clave padre distinta de cero. El software que importa cualquiera de esas dos cadenas de caracteres sin protestar no sigue la especificación, algo que conviene saber antes de confiarle una restauración.

Dónde aparece

La huella digital de la clave aparece sobre todo en dos formatos legibles por máquina, los descriptores de salida y las transacciones de bitcoin parcialmente firmadas, y en ambos se sitúa justo delante de una ruta de derivación.

BIP-380 coloca la información de origen de la clave entre corchetes delante de la clave y es estricto con el ancho: exactamente 8 caracteres hexadecimales y, después, los pasos endurecidos y no endurecidos. Su lista de expresiones no válidas nombra tres fallos de ese único campo: deadbef, con siete caracteres; deadbeeef, con nueve; y gaaaaaaa, que empieza por una letra que no es un dígito hexadecimal. Los tres se rechazan de plano, así que una huella mal escrita le cuesta un error de importación y no una billetera que observa en silencio la rama equivocada.

BIP-174 asocia una huella digital de 4 bytes a una ruta escrita como enteros little endian de 32 bits (el byte menos significativo primero), y en el elemento global de clave pública extendida el número de esos enteros debe coincidir con la profundidad que declara la propia xpub. Ese número es lo que permite a un firmante cotejar la ruta indicada con la clave que recibió, en lugar de dar la etiqueta por buena.

En la pantalla de un dispositivo, esos mismos ocho caracteres responden a una pregunta: ¿qué semilla es esta? No revelan nada gastable, porque un hash truncado no puede volver a convertirse en una clave ni en una dirección. Aun así son un identificador, de modo que dos descriptores que llevan los mismos ocho caracteres son un vínculo visible entre esas dos ramas.

Huella digital de la clave frente a dirección de bitcoin

Una huella digital de la clave y una dirección de bitcoin parten del mismo hash y dejan de ser comparables justo después. BIP-32 indica que el identificador de una clave extendida corresponde exactamente a los datos que se usan en las direcciones de bitcoin tradicionales, y luego desaconseja escribir ese identificador en base58, porque se leería como una dirección y el software de billetera no está obligado a aceptar pagos a la propia clave de la cadena. Una huella digital conserva 4 de los 20 bytes del identificador y se escribe en hexadecimal simple, así que es demasiado corta para confundirse con un destino de pago, ni siquiera por accidente. Ocho caracteres hexadecimales en un descriptor dicen en qué clave empezó una ruta; una dirección dice adónde se permite que vayan las monedas.

No confundir con

Preguntas frecuentes

¿Es un secreto la huella digital de mi billetera?

No, se deriva de una clave pública y no da a nadie la capacidad de gastar ni de derivar una dirección. Aun así es un identificador, de modo que quien ve los mismos ocho caracteres en dos descriptores ve un vínculo entre esas dos ramas.

¿Pueden dos claves distintas tener la misma huella digital?

Sí. Una huella digital tiene solo 32 bits, así que BIP-32 establece que el software debe estar dispuesto a lidiar con colisiones y que el identificador completo de 160 bits está disponible donde importa la unicidad. Compruebe que coincida una dirección de recepción, no solo una huella digital, antes de enviar fondos.

Para seguir leyendo

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés