Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Clave pública sin comprimir

¿Qué es una clave pública sin comprimir?
Una clave pública sin comprimir escribe las dos coordenadas de un punto de la curva detrás de un prefijo 0x04, ocupa 65 bytes y hoy sobrevive sobre todo en claves generadas antes de 2012.

El primer software de Bitcoin registraba los valores completos de x y de y, y por eso las monedas de 2009 y 2010 están detrás de direcciones derivadas de claves de 65 bytes. Después, SegWit cerró la puerta al formato, ya que BIP-143 prohíbe las claves sin comprimir en los programas de testigo de versión 0 y ninguna dirección bc1q puede usar una. Si usted está recuperando una billetera de papel antigua, este es el detalle que decide si sus fondos aparecen.

Cómo funciona

Una clave pública sin comprimir tiene una estructura tan literal como su nombre. Un byte de prefijo 0x04 anuncia el formato, luego 32 bytes dan la coordenada x y después otros 32 bytes dan la coordenada y, en total 65 bytes. Para leerla no hay que calcular nada: las dos mitades del punto ya están ahí, y precisamente por eso la eligió la implementación original con el hardware de la época.

Las reglas de validez nunca han tratado este formato de forma especial en la capa base. Un nodo que valida un gasto heredado (legacy) de tipo pay-to-public-key-hash o pay-to-script-hash acepta una clave sin comprimir sin objeciones, y las monedas que en 2010 quedaron bloqueadas en una clave así siguen siendo gastables sin ningún plazo. Lo que cambió es todo lo construido encima: las billeteras BIP-32 solo derivan claves comprimidas, así que una frase semilla nunca puede producir una clave sin comprimir, y SegWit las hizo inválidas dentro de los gastos de versión de testigo 0.

El costo de los 32 bytes adicionales se paga en el momento de gastar. Una entrada heredada que lleva una clave comprimida ocupa alrededor de 148 vbytes; la misma entrada con una clave sin comprimir ocupa alrededor de 180 vbytes, aproximadamente un 22 % más por un gasto idéntico. Consolidar una docena de esas entradas durante un pico de comisiones es donde esa diferencia deja de ser una curiosidad.

Dónde aparece

Tres objetos todavía entregan claves sin comprimir a la gente, y los tres datan de la misma época.

Las billeteras de papel impresas por los sitios generadores de 2011 a 2013 solían producir una dirección que empezaba por 1 y una cadena en formato de importación de billetera que empezaba por 5, la marca del lado sin comprimir del formato. Las monedas físicas de la serie Casascius, acuñadas entre 2011 y 2013, ocultaban el mismo tipo de cadena de caracteres bajo un holograma que deja a la vista cualquier manipulación. Y las claves privadas exportadas del software de billetera más antiguo son completamente anteriores al cambio.

Recuperar una clave antigua

La trampa no es la codificación, sino que una misma clave privada produce dos direcciones distintas. Calcular el hash de la clave de 65 bytes da una dirección heredada; calcular el hash de la versión comprimida de 33 bytes de la misma clave da otra completamente distinta. Si se importa la clave en un software moderno que da por hecha la compresión, el saldo puede parecer cero mientras las monedas siguen intactas en la otra dirección.

Las billeteras que manejan bien el material antiguo, entre ellas Electrum, comprueban ambas derivaciones cuando usted barre una clave en lugar de importarla. Barrer es además la operación más segura: traslada las monedas a una dirección controlada por su frase semilla actual, de modo que una impresión que ha pasado tiempo en un cajón, fotografiada por un teléfono o vista por un propietario anterior, deja de poder gastar nada. Compruebe las dos formas de dirección en un explorador de bloques antes de dar por fallida una recuperación.

No confundir con

Preguntas frecuentes

¿Siguen siendo gastables las monedas que están detrás de una clave pública sin comprimir?

Sí. Las salidas heredadas aceptan claves sin comprimir sin ninguna expiración, y nada en ninguna actualización lo ha cambiado. La única restricción es que los gastos SegWit nativos las rechazan, así que las monedas tienen que pasar primero por una entrada heredada.

¿Por qué mi antigua clave privada muestra dos direcciones distintas?

Porque las versiones comprimida y sin comprimir de la misma clave son cadenas de bytes diferentes, y el hash de cada una da su propia dirección. Compruebe el saldo de ambas antes de concluir que una recuperación ha fallado.

Para seguir leyendo

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés