Las matemáticas que subyacen a Bitcoin son maravillosos y complejas. A menudo se consideran demasiado difíciles de comprender para el usuario promedio, pero son cruciales para la seguridad y accesibilidad del protocolo Bitcoin. En este artículo, exploraremos algunos de los conceptos matemáticos clave que te permiten enviar, gastar y mantener seguros tus Bitcoins.
Criptografía de Curvas Elípticas
La criptografía de curvas elípticas (ECC) utiliza curvas elípticas para generar pares de claves públicas y privadas sobre un campo finito. Una curva elíptica, como se ve en el diagrama a continuación, tiene la forma:
Y dentro de ECC, se deriva sobre un campo finito, por lo que tanto el eje x como el y tendrán un límite.
El uso de las propiedades asociadas a estas curvas permite generar dos puntos conectados de la curva que son relativamente ligeros de calcular en un sentido, pero prácticamente imposibles de calcular en el otro. Esto se conoce como criptografía asimétrica y permite que un punto se haga público (la clave pública) sin temor a que alguien pueda calcular el punto asociado (la clave privada).
La curva elíptica de Bitcoin tiene la forma:
Aquí, la constante d se define como 7 mod 158 x 10^7Para entender la aritmética modular, lee esto. Sin embargo, se puede entender como similar a un reloj, que es mod 1De esta manera, después de que la manecilla de la hora cruce las 12 del mediodía, la hora se convierte en la 1:00 pm, por lo que (en un reloj de 12 horas) los números mostrados solo pueden ser 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 y 12, antes de que vuelva a comenzar el ciclo en
Por lo tanto, en mod 12:
3+5 = 8 (ya que 8 es menor que 12)
5+9 = 14 que es igual a 2 mod 12 (ya que cuando llegamos a 12, “llegamos al máximo” y debemos comenzar a contar desde 1 de nuevo).
También tener en cuenta que el campo finito sobre el que se define la curva es que son los enteros primos (números enteros que son primos).
Esta curva se conoce como secp256k1 y se conoce como una curva de Kobiltz, ya que a diferencia de las curvas elípticas estándar que tienen una estructura aleatoria, secp256k1 se construyó de una manera no aleatoria para ayudar a la computación eficiente. Como tal, es c.30% más rápido de calcular y, como las constantes (las a, b, c y d en ) se seleccionaron de una manera predecible, es menos probable que haya una puerta trasera en la curva que pueda utilizarse para “hackear” las matemáticas.
Generación de Claves Públicas y Privadas
secp256k1 se utiliza para generar pares de claves públicas y privadas que permiten a los usuarios dentro de la red Bitcoin recibir y gastar bitcoins.
La clave pública se traduce a un formato ligeramente más legible, que se conoce como una dirección Bitcoin y se puede hacer pública para que cualquiera te envíe BTC. Sin embargo, tu clave privada debe mantenerse en secreto, ya que conocer una clave privada te da derecho a tener el control de cualquier Bitcoin asociado con la clave pública correspondiente.
Para generar el par de claves públicas/privadas, primero debes comenzar desde el punto generador, g, en la curva (el punto verde etiquetado como “g”). Esto se especifica como parte de las definiciones de la curva secp256kLuego, dibuja una tangente desde este punto (una línea recta, en azul), y esta tocará la curva en exactamente un punto más. Esto se refleja en el eje x y se convierte en el punto “2g”.

Luego, conecta “g” y “2g” (línea naranja) y esto tocará la curva en solo un punto más, que reflejado hacia arriba a través del eje x proporcionará el punto “3g”. Este proceso continúa conectando el punto generador original g y el nuevo múltiplo de g, reflejándolo a través del eje x. El término correcto para esto es suma de puntos.
Como tal, dado el punto generador inicial (donde comienzas) y un punto “k” en la curva (donde terminas), sería muy difícil saber cuántas veces has completado la suma de puntos sin volver a ejecutar todo el proceso de nuevo. De hecho, es tan difícil que tomaría un promedio de 2^128 intentos. Por lo tanto, incluso si tuvieras una supercomputadora haciendo un trillón de sumas de puntos por segundo y hubieras estado ejecutando tu computadora desde el comienzo del universo, solo habrías hecho 2⁹⁸ operaciones de suma de puntos hasta ahora.
El número de veces que has completado la suma de puntos se conoce como tu clave privada “x”, y la clave pública es “k”. El punto generador también se conoce públicamente, ya que esto no compromete la seguridad en la red debido a la extrema dificultad de calcular x a partir de k y g solos. Vale la pena señalar que el proceso anterior es la suma de puntos, mediante la cual te desplazas incrementalmente de los puntos g a k. Aunque también es posible multiplicar un punto generado por sí mismo, por ejemplo, 2g, y por lo tanto, la multiplicación de puntos. Esto te permite acelerar el proceso, pero aún hace que el proceso inverso sea computacionalmente imposible debido al campo finito extremadamente grande sobre el que se ejecuta el proceso.
Una complejidad adicional dentro de este proceso es que la curva que se muestra arriba está sobre un campo infinito, por ejemplo, no hay un valor máximo del eje x o y. Sin embargo, secp256k1 está sobre un campo finito de enteros primos y, como tal, gráficamente se parece más al gráfico de la izquierda.
También vale la pena señalar que el tamaño de las claves son enteros de 256 bits, es decir, 64 caracteres hexadecimales. Esto proporciona un área grande para que la curva funcione y hace que los cálculos sean mucho más difíciles, lo que aumenta la seguridad.
Por lo tanto, hemos explorado el tipo de curva que se utiliza debajo de la cadena de bloques de Bitcoin, la Curva Elíptica conocida como secpt256k1, y hemos visto cómo esta combinada con la aritmética modular y la suma de puntos se combina para proporcionar dos puntos en una curva que están relacionados pero increíblemente difíciles de calcular hacia atrás. Esto nos proporciona una base matemática de cómo se generan las claves públicas y privadas.
En la siguiente parte de “Las Matemáticas detrás de la Cadena de Bloques de Bitcoin”, exploraremos las matemáticas que generan las billeteras BTC y veremos cómo las firmas garantizan que puedes demostrar tu propiedad de una clave privada, sin revelar la clave privada en sí.
Si quieres conocer otros artículos parecidos a Bitcoin y las curvas elípticas: una exploración profunda de secp256k1 puedes visitar la categoría Finanzas / Inversiones.
