Saltar al contenido
buybitcoinsmart

Glosario / Minería y consenso

SHA-256

También se conoce como SHA256.

¿Qué es SHA-256?
SHA-256 toma un valor de entrada de cualquier longitud y devuelve una huella digital de 32 bytes, idéntica cada vez e impredecible de antemano, a partir de la cual es imposible volver atrás.

Bitcoin se apoya en esa única función casi en todas partes: los hash de bloque, los ID de transacción, los árboles de Merkle, las sumas de comprobación de las direcciones y la suma de comprobación de su frase semilla. El resultado tiene 256 bits, se escribe como 64 caracteres hexadecimales y procede de un espacio de aproximadamente 1,2 por 10 elevado a 77 valores. Esa es la aritmética que detecta una dirección mal escrita antes de que sus monedas vayan a ninguna parte.

Cómo funciona

SHA-256 divide su valor de entrada en segmentos de 512 bits y mezcla cada uno a lo largo de 64 rondas de desplazamientos, rotaciones y sumas.

El estado que se mezcla está formado por ocho palabras de 32 bits, inicializadas con constantes tomadas de las partes fraccionarias de las raíces cuadradas de los ocho primeros números primos, mientras que las 64 constantes de ronda proceden de las raíces cúbicas de los 64 primeros primos. Ese origen es justamente lo importante: son números que nadie pudo haber elegido por un motivo oculto, y así es como el diseño argumenta que no tiene puerta trasera. El algoritmo lo creó la Agencia de Seguridad Nacional de Estados Unidos y lo publicó el NIST en 2001, y la especificación vigente es FIPS 180-4.

Son tres las propiedades que bitcoin obtiene en realidad. La función es determinista, así que cualquier máquina, en cualquier lugar, deriva el mismo hash a partir de los mismos bytes. Tiene efecto avalancha, así que cambiar un solo bit del valor de entrada modifica alrededor de la mitad de los bits del resultado, sin ningún patrón que relacione ambos. Y se resiste a ejecutarse a la inversa: nadie ha encontrado una forma de recuperar un valor de entrada a partir de un hash, ni de producir dos valores de entrada que compartan uno, más rápido que por fuerza bruta. SHA-1 cayó ante una colisión práctica en febrero de 2017, que costó a los investigadores una cantidad enorme de cómputo y no se trasladó en absoluto a SHA-2.

Bitcoin rara vez la llama una sola vez. Los encabezados de bloque, los ID de transacción, los nodos del árbol de Merkle y la suma de comprobación de un mensaje de la red entre pares usan todos una doble pasada, que calcula una segunda vez el hash del primer hash. Los hash de las direcciones toman otra ruta, RIPEMD-160 aplicado a un hash SHA-256, y de ahí sale la carga útil de 20 bytes de una dirección heredada (legacy). Taproot rompió de nuevo el patrón: el BIP340 define hash etiquetados que llaman a SHA-256 una sola vez, con un prefijo de separación de dominio, para que las firmas de un propósito no puedan repetirse en otro.

Dónde aparece

Cada cadena hexadecimal de 64 caracteres de un explorador de bloques es un resultado de SHA-256. Eso incluye el ID de transacción que usted pega en las solicitudes de soporte y el hash de bloque que empieza por una larga serie de ceros, que es el aspecto de un encabezado que batió el objetivo.

Dos lugares importan directamente cuando usted conserva monedas. Una frase semilla lleva una suma de comprobación construida con esta función: 12 palabras codifican 128 bits de aleatoriedad más 4 bits de suma de comprobación tomados del hash SHA-256 de esa aleatoriedad, así que una frase con una palabra equivocada se rechaza alrededor de 15 veces de cada 16, en lugar de abrir en silencio una billetera vacía. Una dirección heredada lleva una protección similar, una suma de comprobación de 4 bytes obtenida de una doble pasada de SHA-256, lo que deja la probabilidad de que un error tipográfico aleatorio produzca una dirección válida en aproximadamente 1 entre 4,3 mil millones.

El hardware de minería no existe para nada más. Un ASIC es un chip que calcula esta única función y ninguna otra, y esa es la razón de que los mineros de bitcoin no puedan reutilizarse para cadenas construidas sobre otro algoritmo y de que la expresión moneda SHA-256 describa toda una familia de bifurcaciones. Tenga en cuenta el límite de todo esto: una suma de comprobación detecta una dirección que usted escribió mal, nunca una dirección que un malware reemplazó por otra perfectamente válida que no es suya.

No confundir con

Preguntas frecuentes

¿Podrían las computadoras cuánticas romper SHA-256?

No en el sentido en que se suele plantear. Los algoritmos cuánticos conocidos debilitan la búsqueda de hash mucho menos que la criptografía de clave pública, así que se considera que la parte expuesta es el esquema de firma de bitcoin, no su función hash.

¿Por qué bitcoin calcula dos veces el hash de los datos?

El doble hash fue la precaución de Satoshi Nakamoto contra la extensión de longitud, una debilidad que permite que alguien que solo conoce el hash continúe una pasada única. Cuesta casi nada y elimina por completo esa clase de ataque.

Para seguir leyendo

Términos relacionados

Más en la sección Minería y consenso

Leer esta página en inglés