Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Clave pública

¿Qué es una clave pública?
Una clave pública es el punto de la curva secp256k1 derivado de su clave privada, publicable sin riesgo, y el valor con el que se verifica una firma cuando usted gasta.

Multiplicar la clave privada por un punto fijo de la curva produce la clave pública, y ningún método conocido invierte ese paso. Las claves comprimidas ocupan 33 bytes, y Taproot las recortó aún más hasta la forma x-only (solo coordenada x) de 32 bytes definida en BIP-340. Un usuario rara vez llega a ver una, porque la mayoría de las direcciones publican solo un hash de la clave y revelan la propia clave cuando las monedas por fin se mueven.

Cómo funciona

Las claves públicas salen de una curva concreta, y su aritmética hace todo el trabajo. Bitcoin usa secp256k1, definida por la ecuación y al cuadrado es igual a x al cubo más 7 sobre un campo primo grande, junto con un punto de partida acordado llamado generador. Sumar ese generador consigo mismo tantas veces como indica la clave privada produce otro punto de la curva, y ese punto es la clave pública. La operación es rápida en un sentido y, con todas las técnicas conocidas hoy, inviable en el otro, lo que constituye toda la base de la propiedad de bitcoin.

En la práctica aparecen tres codificaciones. La forma original sin comprimir gasta 65 bytes en escribir las dos coordenadas detrás de un prefijo 0x04. La forma comprimida conserva solo la coordenada x y un byte de paridad, 33 bytes en total, y es la predeterminada desde hace mucho más de una década. Taproot va un paso más allá con claves x-only de exactamente 32 bytes, y prescinde del byte de paridad porque, en su lugar, BIP-340 establece la convención.

Dónde aparece la clave on-chain depende del tipo de salida. Una salida heredada (legacy) o SegWit versión 0 fija un hash de 20 bytes de la clave pública, así que la cadena muestra el hash y nada más hasta que se gastan las monedas, momento en el que quien gasta debe revelar la clave cuyo hash coincide con él. Una salida Taproot es distinta: la clave de salida de 32 bytes está en la propia dirección, visible desde el momento en que llegan los fondos.

Por qué importa cuando compra bitcoin

Dos situaciones prácticas ponen una clave pública delante de un comprador corriente, y en ambas es fácil equivocarse.

La primera es demostrar que una dirección es suya. Según el reglamento de la UE sobre transferencias de fondos, un exchange debe verificar que una dirección autoalojada pertenece realmente a su cliente antes de enviarle más de 1.000 euros, y en varias otras jurisdicciones que cubren nuestras guías de país se aplican comprobaciones comparables. La prueba estándar es un mensaje firmado: su billetera firma un desafío con la clave que hay detrás de la dirección, y el exchange lo verifica con la clave pública. Nada secreto sale de su dispositivo, así que es seguro atender esta solicitud, a diferencia de una solicitud de la propia clave.

La segunda es la clave pública extendida, la xpub que su billetera puede exportar. Una xpub no es una credencial de gasto, y entregarla no puede costarle monedas directamente. Lo que sí entrega es su historial financiero: cualquiera que la tenga puede generar todas las direcciones que esa billetera use alguna vez, pasadas y futuras, y leer el saldo y cada transacción asociada a ellas. Los rastreadores de portafolio, las herramientas fiscales y los contadores piden la xpub de forma habitual. Entregue una solo donde se sentiría cómodo entregando un extracto bancario de toda una vida, y use una cuenta o una billetera separada donde no.

Seguir una clave hasta la blockchain

Tome una billetera que usa la ruta estándar de SegWit nativo, m/84'/0'/0'/0/0. La clave en esa ruta son 33 bytes comprimidos. La billetera calcula su hash, primero con SHA-256 y luego con RIPEMD-160, lo que produce 20 bytes, y codifica esos bytes como una dirección bc1q. Todo lo que se envía a esa dirección queda ahora bloqueado en un hash, y la red nunca ha visto la clave.

Cuando usted gasta, el campo de testigo lleva dos elementos: una firma y la clave pública de 33 bytes. Cada nodo calcula el hash de la clave, comprueba que el resultado coincide con los 20 bytes que exigía la salida y luego verifica la firma con la clave. Solo si se cumplen ambas cosas el gasto es válido. A partir de ese bloque la clave es pública, lo que es una buena razón para no dejar un saldo en una dirección desde la que usted ya ha gastado.

Clave pública frente a clave privada

La clave privada se elige al azar y la clave pública se calcula a partir de ella, nunca al revés. Esa asimetría decide cómo se trata cada una: publicar una clave pública es algo rutinario y no le cuesta nada, mientras que publicar una clave privada entrega las monedas de inmediato y de forma irreversible. Los respaldos protegen el lado privado, ya que la clave pública siempre puede volver a calcularse a partir de él en microsegundos. La verificación usa el lado público, y por eso los desconocidos y los nodos pueden verificar su firma sin que nunca se les confíe nada.

No confundir con

Preguntas frecuentes

¿Es seguro compartir mi clave pública?

Sí. Una clave pública no puede convertirse de nuevo en la clave privada, y de todos modos se publica en la blockchain cada vez que usted gasta. El costo de compartirla es de privacidad y no de seguridad, ya que lo vincula a usted con las monedas que controla.

¿Una clave pública es lo mismo que mi dirección de bitcoin?

No. En las salidas heredadas y en las salidas SegWit nativas, la dirección contiene un hash de 20 bytes de la clave pública, no la clave. Las direcciones Taproot son la excepción: incorporan directamente una clave de 32 bytes.

¿Puede alguien robar mis monedas si tiene mi xpub?

No, una clave pública extendida no puede firmar nada. Lo que sí permite a quien la tenga es generar todas sus direcciones y observar todo su saldo y su historial de transacciones, así que trátela como información financiera confidencial y no como una credencial secreta.

Para seguir leyendo

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés