Clave Pública
La parte pública de un par de claves
Una clave pública es la parte "pública" de un par de clave privada y clave pública. Se calcula a partir de la clave privada, lo que significa que hay una conexión matemática entre ambas.
La clave pública se usa para que tú "recibas" bitcoins. Al hacer una transacción, una salida puede ser bloqueada a una clave pública, de modo que solo el dueño de la clave privada pueda desbloquearla después.
Creando
¿Cómo creas una clave pública?
Una clave pública se crea mediante multiplicación de curva elíptica. Multiplicas un punto inicial (el punto generador) en la curva secp256k1 por la clave privada (un número aleatorio), y eso resulta en un nuevo conjunto de coordenadas x e y, que es la clave pública. Así que una clave pública es solo un punto en la curva elíptica.
Multiplicación en la Curva Elíptica
Conceptos básicos de la curva elíptica
El uso de la multiplicación de curva elíptica da una conexión matemática de la clave privada a la clave pública, con dos propiedades importantes:
- No se sabe cómo trabajar "hacia atrás" para obtener la clave privada. Puedes ir hacia adelante con la multiplicación, pero no hay forma de invertirla matemáticamente. Por eso puedes divulgar tu clave pública y mantener tu clave privada en secreto.
- Puedes demostrar que tienes la clave privada sin revelarla, mediante una firma digital.
Formatos
¿Cómo es una clave pública?
No comprimida (65 bytes)
La clave pública no comprimida contiene las dos coordenadas completas, con el prefijo 0x04:
04 <x (32 bytes)> <y (32 bytes)> Comprimida (33 bytes)
Como la coordenada y puede derivarse de x (a partir de la ecuación de la curva), la clave pública comprimida almacena solo la coordenada x, con un prefijo que indica si y es par (0x02) o impar (0x03):
02/03 <x (32 bytes)> Las claves públicas comprimidas se convirtieron en el estándar, porque ocupan menos espacio (33 bytes en vez de 65) y, por tanto, dan lugar a transacciones más baratas.
Generar a partir de una clave privada
Empieza con una clave privada y calcula la clave pública correspondiente: