Criptografía de curva elíptica
La matemática que permite derivar claves públicas de privadas, pero no al revés. El fundamento de la seguridad de Bitcoin.
El concepto fundamental
La criptografía de curva elíptica (ECC) es el sistema matemático que permite a Bitcoin funcionar sin confianza: puedes demostrar que controlas una clave privada sin revelarla.
La propiedad clave: multiplicar un número (tu clave privada) por un punto especial de la curva (el punto generador G) es computacionalmente trivial. Pero dado el resultado (tu clave pública), encontrar el número original es prácticamente imposible.
Esta asimetría es la base de todo el sistema de firmas digitales de Bitcoin.
La curva secp256k1
Bitcoin usa una curva elíptica específica llamada secp256k1, definida por la ecuación: y² = x³ + 7 (mod p)
Donde p es un número primo muy grande. Los puntos (x, y) que satisfacen esta ecuación sobre el campo finito definido por p forman la curva.
Los parámetros completos de secp256k1 son: p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F = 2²⁵⁶ - 2³² - 977 a = 0 (coeficiente de x) b = 7 (término constante) G (punto generador): Gx = 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798 Gy = 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8 n (orden del grupo) = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 h (cofactor) = 1
No necesitas memorizar estos números. Lo importante es entender que son constantes públicas que todo el software de Bitcoin usa.
Operaciones en la curva
Suma de puntos
Dados dos puntos P y Q en la curva, se puede calcular un tercer punto P + Q mediante una operación geométrica definida. La suma de puntos tiene propiedades algebraicas útiles (asociatividad, elemento neutro, inversos).
Multiplicación escalar
Multiplicar un punto P por un escalar k significa sumar P consigo mismo k veces: k · P = P + P + P + ... (k veces)
Hay algoritmos eficientes para calcular esto sin hacer k sumas individuales (duplicación y suma).
De la clave privada a la pública
Tu clave privada es simplemente un número entero k entre 1 y n-1 (donde n es el orden del grupo, aproximadamente 2²⁵⁶).
Tu clave pública es el punto: K = k · G
Donde G es el punto generador definido en los parámetros de secp256k1.
Esta multiplicación es rápida: un ordenador moderno la calcula en microsegundos.
El problema del logaritmo discreto
Dado K (la clave pública) y G (conocido por todos), encontrar k (la clave privada) se llama el problema del logaritmo discreto en curvas elípticas (ECDLP).
No existe ningún algoritmo conocido que resuelva este problema en tiempo razonable para curvas bien diseñadas como secp256k1. El mejor ataque conocido requiere aproximadamente 2¹²⁸ operaciones, lo que está más allá de la capacidad computacional de cualquier tecnología actual o previsible.
Para poner esto en perspectiva: 2¹²⁸ operaciones, incluso a trillones de operaciones por segundo, tomaría más tiempo que la edad del universo.
Por qué secp256k1
Satoshi eligió secp256k1 por varias razones:
Eficiencia: Los parámetros "especiales" de secp256k1 (como a=0, b=7, y p con estructura específica) permiten optimizaciones computacionales.
Transparencia: Los parámetros no tienen estructura sospechosa que pudiera ocultar una puerta trasera. Comparada con curvas del NIST que tienen coeficientes "mágicos" de origen no explicado, secp256k1 es más transparente.
Estándar existente: Era una curva definida en el estándar SEC2 antes de Bitcoin.
Implicaciones prácticas
Para el usuario de Bitcoin, la curva elíptica es invisible. Tu wallet maneja todo automáticamente.
Pero entender el concepto explica:
- Por qué puedes compartir tu clave pública (para recibir) sin revelar tu clave privada
- Por qué perder tu clave privada significa perder tus bitcoin irrecuperablemente
- Por qué Bitcoin es seguro (asumiendo que el ECDLP sigue siendo difícil)
Los ordenadores cuánticos teóricamente podrían resolver el ECDLP eficientemente usando el algoritmo de Shor. Sin embargo, los ordenadores cuánticos actuales están lejos de tener la capacidad necesaria. La comunidad Bitcoin monitoriza este desarrollo y hay propuestas para migrar a criptografía post-cuántica si fuera necesario en el futuro.