binary-circle-checkCriptografía Aplicada

Hashing, firmas digitales y curvas elípticas


“Sin criptografía, Bitcoin sería literalmente imposible.” — Hal Finney (Bitcointalk, 2009)


1. Introducción

Bitcoin es, en esencia, un sistema económico sustentado en matemáticas. No depende de instituciones, autoridades o confianza interpersonal: depende de funciones criptográficas que garantizan:

  • irreversibilidad

  • no falsificación

  • verificabilidad pública

  • propiedad digital

  • resistencia a ataque

Este capítulo cubre los tres pilares criptográficos fundamentales:

  1. Funciones hash (SHA-256, RIPEMD-160)

  2. Firmas digitales (ECDSA)

  3. Curvas elípticas (secp256k1)

Cada uno cumple un rol específico dentro del diseño de Bitcoin.


2. Hashing criptográfico en Bitcoin

2.1. ¿Qué es un hash?

Una función hash criptográfica es una transformación:

H:0,10,1nH: {0,1}^* \rightarrow {0,1}^n

con las siguientes propiedades:

  • Preimagen difícil

  • Segunda preimagen difícil

  • Resistencia a colisiones

  • Determinismo

  • Eficiencia

Bitcoin utiliza principalmente:

  • SHA-256

  • RIPEMD-160

Y ocasionalmente combinaciones como SHA-256(SHA-256(x)) (double SHA-256).


2.2. Propiedades clave aplicadas al diseño de Bitcoin

1. Resistencia a colisiones

Imposibilita encontrar dos mensajes distintos que produzcan el mismo hash.

Esto es esencial para:

  • asegurar integridad de los bloques

  • evitar reorganizaciones maliciosas

  • garantizar unicidad de transacciones

2. Unidireccionalidad

No es posible recuperar la información original desde un hash.

Facilita:

  • direccionamiento sin revelar claves públicas

  • resistencia a ataques de gasto futuro

  • protección ante colisiones preimagen


2.3. Hashing en los distintos componentes del sistema

Componente
Algoritmo hash
Propósito

Cabecera del bloque

SHA-256d

Probar PoW

Árbol de Merkle

SHA-256d

Agregar transacciones

Dirección Bitcoin

SHA-256 + RIPEMD-160

Crear identificadores cortos


3. Árboles de Merkle: compresión y verificabilidad

Las transacciones dentro de cada bloque se organizan en un árbol de Merkle.

3.1. Definición formal

Un árbol de Merkle es una estructura binaria donde:

Hl1=SHA256d(tx1)H_{l1} = SHA256d(tx1) Hl2=SHA256d(tx2)H_{l2} = SHA256d(tx2) H0=SHA256d(Hl1Hl1)H_0 = SHA256d(H_{l1} | H_{l1}) Hl3=SHA256d(tx3)H_{l3} = SHA256d(tx3) Hl4=SHA256d(tx4)H_{l4} = SHA256d(tx4) H1=SHA256d(Hl3Hl4)H_1 = SHA256d(H_{l3} | H_{l4}) Root=SHA256d(H0H1)Root = SHA256d(H_{0} | H_{1})

3.2. Ventajas

  • Proporcionan pruebas eficientes de inclusión (Merkle proofs)

  • Permiten nodos livianos (SPV)

  • Reducen necesidad de almacenamiento

Estas pruebas son fundamentales para dispositivos móviles y clientes ligeros.


4. Firmas digitales (ECDSA)

4.1. ¿Para qué sirven?

Bitcoin utiliza firmas digitales para verificar:

  • que el propietario de una clave privada autorizó una transacción

  • que la transacción no fue modificada

  • que la firma es válida públicamente

4.2. Fundamento matemático

Si:

  • dd = clave privada

  • Q=dGQ = dG = clave pública (punto en curva)

entonces la firma (r, s) satisface:

r=(kG)xmodnr = (kG)_x \mod n

s=k1(H(m)+dr)modns = k^{-1}(H(m) + dr) \mod n

donde:

  • kk = número aleatorio por firma

  • GG = punto generador

  • nn = orden del grupo elíptico


4.3. Seguridad

ECDSA es seguro mientras:

k sea uˊnico y aleatoriok \text{ sea único y aleatorio}

Si se reutiliza, la clave privada puede derivarse:

d=s1kH(m1)rmodnd = \frac{s_1k - H(m_1)}{r} \mod n

Esto ha provocado hacks en implementaciones defectuosas en el pasado.


5. Curvas elípticas: la base algebraica

Bitcoin usa la curva elíptica secp256k1.

5.1. Definición matemática

Es la curva:

y2=x3+7y^2 = x^3 + 7

sobre el campo finito:

Fp,p=2256232977\mathbb{F}_p, \quad p = 2^{256} - 2^{32} - 977

5.2. Propiedades

  • curva no aleatoria (a diferencia de curvas NIST)

  • operaciones eficientes

  • seguridad comprobada

  • resistente a manipulación estatal (según muchos criptógrafos)

5.3. Multiplicación de puntos

La operación fundamental es:

Q=dG Q = dG

donde:

  • dd = número de 256 bits

  • GG = punto generador

  • QQ = clave pública

Es fácil calcular QQ, pero prácticamente imposible calcular dd.

Esto se basa en la dificultad del Problema del Logaritmo Discreto (ECDLP).


6. Direcciones Bitcoin: del hash a la representación Base58Check

6.1. Proceso completo de generación

Clave puˊblica=Q\text{Clave pública} = Q

hash160(Q)=RIPEMD160(SHA256(Q))\text{hash160}(Q) = \text{RIPEMD160}(\text{SHA256}(Q))

Agregar versión: 00+hash16000 + hash160

Calcular checksum: SHA256d(00+hash160)\text{SHA256d}(00 + hash160)

Codificar en Base58Check.


6.2. Ejemplo simplificado en pseudocódigo

7. Seguridad criptográfica frente a ataques modernos

7.1. Ataques cuánticos

Bitcoin resiste parcialmente ataques cuánticos:

Función
Riesgo cuántico
Impacto

SHA-256

Bajo

Grover reduce seguridad al 50%

ECDSA

Medio

Shor podría derivar claves públicas

Mitigación actual:

  • claves públicas no expuestas hasta gastar

  • posibilidad futura de cambiar de algoritmo

7.2. Ataques de colisión

SHA-256 no presenta colisiones conocidas.

Colisión implica:

H(x)=H(y)H(x)=H(y)

con xyx \neq y

La probabilidad es astronómicamente baja (2256\approx 2^{-256} ).

7.3. Ataques de implementación

Los ataques más comunes:

  • mala generación de aleatoriedad

  • wallets defectuosas

  • side-channel attacks

  • hardware comprometido

Bitcoin como protocolo es seguro; implementaciones pueden no serlo.

8. Criptografía aplicada en la cadena de bloques

Bitcoin utiliza criptografía para asegurar:

Componente
Mecanismo

Integridad de bloques

Hash SHA-256d

Integridad de transacciones

Merkle Root

Propiedad digital

ECDSA

Prevención de doble gasto

PoW

Identidades pseudónimas

Hash160

Ceros iniciales del bloque

PoW objetivo (target)

9. Conclusión del capítulo

La criptografía en Bitcoin no es decorativa. Es la fuente de:

  • seguridad

  • descentralización

  • confianza matemática

  • irreversibilidad

  • resistencia a censura

  • propiedad digital

Bitcoin no funciona porque “todos acuerdan” su validez. Funciona porque las matemáticas no aceptan sobornos.


Bitcoin no usa criptografía para “ocultar” datos. Usa criptografía para garantizar reglas económicas sin intermediarios.


Última actualización

¿Te fue útil?