SHA-256: la función hash en la que se basa Bitcoin

SHA-256: la función hash en la que se basa Bitcoin

SHA-256 (Secure Hash Algorithm 256-bit) es una función hash criptográfica de la familia SHA-2 que convierte una entrada de cualquier longitud práctica en una salida fija de 256 bits (32 bytes), llamada hash o resumen. SHA-256 no es cifrado, porque no usa ninguna clave ni tiene un paso de descifrado. La prueba de trabajo de Bitcoin (el proceso en el que los mineros calculan una y otra vez el hash de un encabezado de bloque) y sus registros de transacciones se basan en SHA-256.

¿Qué hace el algoritmo SHA-256 con una entrada?

Una función hash como SHA-256 funciona como una máquina de huellas dactilares. La misma entrada siempre da la misma huella de tamaño fijo, y una entrada distinta da, en la práctica, una huella distinta que no parece tener relación con la primera. El NIST, el Instituto Nacional de Estándares y Tecnología de EE. UU., describe una función hash como aquella que asigna a un mensaje de cualquier longitud un resumen de longitud fija.

A octubre de 2026, SHA-256 es una de las seis funciones aprobadas de la familia SHA-2, el NIST la especifica en su Secure Hash Standard desde 2002, y la versión vigente de ese estándar es FIPS 180-4. El 256 del nombre es la longitud de la salida en bits, no un tamaño de clave ni un límite para la entrada. El algoritmo acepta entradas de hasta algo menos de 2 elevado a 64 bits, muy por encima de cualquier archivo real.

La salida de SHA-256 es de 256 bits, o 32 bytes, y suele escribirse como 64 caracteres hexadecimales. El hexadecimal es una notación en base 16 que usa los dígitos 0-9 y las letras a-f, y cada carácter representa 4 bits, así que 256 bits ocupan 64 caracteres.

El nombre también se escribe SHA256 o SHA 256, y las tres grafías se refieren a la misma función. Esta entrada trata solo de SHA-256; las funciones hash en general corresponden a la entrada sobre hash criptográfico.

¿Qué aspecto tiene un hash SHA-256?

Un hash SHA-256 parece una cadena aleatoria de 64 caracteres hexadecimales. La tabla muestra el hash SHA-256 del texto de tres caracteres “abc” (el resumen coincide con el valor de prueba que publica el NIST para esa entrada) y de “abd” (una entrada que se diferencia de “abc” en un solo carácter).

EntradaHash SHA-256 (64 caracteres hexadecimales)
abcba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
abda52d159f262b2c6ddb724a61840befc36eb30c88877a4030b65cbe86298449c9

En SHA-256, cambiar la última letra de “abc” para obtener “abd” altera 58 de los 64 caracteres hexadecimales, y nada en el segundo hash indica que las dos entradas eran casi idénticas.

¿Qué propiedades hacen útil a SHA-256?

Determinista. SHA-256 siempre produce el mismo hash para la misma entrada, en cualquier equipo. Cualquiera puede volver a calcular un hash y comparar el resultado con uno publicado.

Longitud fija. SHA-256 siempre devuelve 256 bits, tanto si la entrada es una sola letra como si es un libro entero. Por eso, un hash de 64 caracteres tiene el mismo tamaño sin importar qué datos haya detrás.

Unidireccional. SHA-256 está diseñada para ser unidireccional, lo que significa que encontrar una entrada que corresponda a una salida especificada de antemano es computacionalmente inviable. A octubre de 2026, no se conoce ningún ataque práctico contra la función SHA-256 completa, así que en la práctica solo se puede encontrar una entrada para un hash dado probando entradas una tras otra y comparando cada resultado. Por eso, una entrada débil sigue estando en riesgo aunque se le aplique un hash.

Efecto avalancha. SHA-256 presenta un efecto avalancha: un cambio mínimo en la entrada produce un hash que no parece tener relación con el original. Cambiar “abc” por “abd” modifica 122 de los 256 bits de salida.

Resistencia a colisiones. SHA-256 está diseñada para ser resistente a colisiones. Una colisión es un par de entradas distintas que producen el mismo hash, y una función hash es resistente a colisiones cuando encontrar ese par es computacionalmente inviable. Las colisiones tienen que existir matemáticamente, porque hay más entradas posibles que salidas posibles. SHA-256 tiene 2 elevado a 256 salidas posibles, un número de 78 cifras, y, a octubre de 2026, no se conoce ninguna colisión para la función completa.

¿Dónde usa Bitcoin SHA-256?

SHA-256 es la función hash de Bitcoin en varios puntos, y Bitcoin suele aplicarla dos veces. Este uso se llama doble SHA-256, también escrito SHA-256d: la salida de la primera pasada vuelve a pasar por la función hash, y la salida final sigue siendo de 256 bits, no de 512.

La prueba de trabajo es el mecanismo en el que los mineros de Bitcoin calculan una y otra vez el hash del encabezado de bloque de 80 bytes, que resume el bloque en seis campos: versión, hash del bloque anterior, raíz de Merkle, tiempo, nBits y nonce. Un encabezado es válido si su hash doble SHA-256, leído como un número de 256 bits, es igual o inferior al objetivo.

En la prueba de trabajo de Bitcoin, el objetivo es el umbral que el hash de un bloque no debe superar, y nBits es el objetivo en forma compacta. Como el hash debe ser igual o inferior al objetivo, un objetivo más bajo es más difícil de alcanzar. El nonce es un campo de 4 bytes que los mineros cambian en cada intento antes de volver a calcular el hash del encabezado.

Un árbol de Merkle resume todas las transacciones de un bloque. Bitcoin calcula el hash de los ID de transacción por pares, vuelve a calcular el hash de los resultados por pares y repite el proceso hasta que queda un solo hash, la raíz de Merkle. Cambiar cualquier transacción cambia la raíz de Merkle y, como la raíz está en el encabezado, cambia el hash del bloque.

Un ID de transacción es el hash doble SHA-256 de la transacción serializada, es decir, de su versión, sus entradas, sus salidas y su locktime. Una transacción SegWit (Segregated Witness) también lleva datos de testigo, la parte que contiene elementos como la firma y la clave pública, y su ID de transacción deja fuera esa parte.

Una dirección de clave única es la que se construye a partir de una sola clave pública. En las direcciones legacy y SegWit de clave única, Bitcoin calcula el hash de la clave pública con SHA-256 y después con RIPEMD-160, una segunda función hash con una salida de 160 bits (20 bytes). Los demás tipos de dirección se construyen de otra forma y no se tratan aquí.

Cuatro de los puntos en los que Bitcoin usa SHA-256 se resumen en esta tabla.

Estructura de BitcoinQué se pasa por la función hashCómo se usa SHA-256
Encabezado de bloqueEl encabezado de 80 bytesDoble SHA-256; el resultado debe ser igual o inferior al objetivo
Árbol de MerklePares de ID de transacciónDoble SHA-256 en cada nivel, hasta llegar a una única raíz de Merkle almacenada en el encabezado
ID de transacciónLa transacción serializada, sin los datos de testigoDoble SHA-256
Dirección (legacy y SegWit de clave única)La clave públicaSHA-256 y después RIPEMD-160

El hashrate de la red Bitcoin, el número de hashes que calcula por segundo, se estimaba en más de 1.000 exahashes por segundo (EH/s) a octubre de 2026. Un exahash equivale a un trillón de hashes, es decir, 10 elevado a 18. Los proveedores informan valores ligeramente distintos, y la cifra cambia de un día para otro.

¿Por qué los ASIC de minería de Bitcoin están diseñados para SHA-256?

SHA-256 es el algoritmo de minería de Bitcoin: el cálculo que repiten los mineros es el hash de los encabezados de bloque. Un circuito integrado de aplicación específica (ASIC) es un chip fabricado para un uso concreto en lugar de para computación de propósito general. Por eso, un ASIC de minería de Bitcoin está diseñado para calcular hashes SHA-256, y estos chips, por lo general, no pueden usarse para nada que no sea la minería de Bitcoin.

Un ASIC de minería de Bitcoin está ligado al algoritmo SHA-256, no a una moneda concreta, porque la ficha técnica de una misma máquina puede enumerar varias monedas que usan el mismo algoritmo. Otras monedas de prueba de trabajo usan otras funciones hash, como Scrypt, y necesitan un hardware distinto.

La velocidad de un ASIC de minería de Bitcoin es su hashrate, que se mide en terahashes por segundo (TH/s), donde un terahash es un billón de hashes. Por ejemplo, el Antminer S21 XP de Bitmain es un ASIC de minería de Bitcoin que indica SHA-256 como algoritmo y, a octubre de 2026, un hashrate típico de 270 TH/s.

¿Qué no hace SHA-256?

SHA-256 no es cifrado. El cifrado convierte un texto plano en texto cifrado mediante un algoritmo criptográfico y una clave, y el descifrado revierte ese cambio. SHA-256 no usa ninguna clave ni tiene un paso de descifrado, así que una expresión como “cifrado SHA-256” es un término incorrecto, y un hash SHA-256 no se puede “descifrar”.

Un hash SHA-256 no protege una entrada débil. Un hash no se puede calcular hacia atrás, pero cualquiera puede calcular el hash de posibles valores y compararlos con el hash buscado. La guía sobre contraseñas del NIST indica que un atacante que tiene contraseñas en forma de hash puede hacer intentos offline sin límite, y que los secretos cortos o predecibles, como palabras comunes o contraseñas filtradas anteriormente, caen ante ataques de fuerza bruta y de diccionario. Un PIN de cuatro dígitos solo tiene 10.000 valores posibles, así que su hash SHA-256 no le da ninguna protección práctica.

SHA-256 no tiene una demostración de seguridad permanente. A octubre de 2026, no se conoce ningún ataque práctico contra la función SHA-256 completa, pero eso describe el conocimiento actual, no una demostración. Los ataques de colisión publicados solo alcanzan versiones reducidas de SHA-256: un artículo de investigación de 2024 presentó una colisión semi-free-start, en la que el atacante puede elegir el estado inicial, para una versión de 39 pasos, mientras que la función completa tiene 64 pasos.

12 de noviembre de 2026

Noticias de GoMining

Quizá le interese: