Un hash criptográfico es la salida de tamaño fijo, también llamada valor hash o resumen (digest), que una función hash criptográfica calcula a partir de una entrada. La función está diseñada para ser unidireccional, lo que significa que es inviable recuperar la entrada, y resistente a colisiones, lo que significa que encontrar dos entradas distintas que compartan una misma salida está pensado para ser inviable. Bitcoin utiliza hashes para la prueba de trabajo y para enlazar bloques.
¿Qué Hace una Función Hash Criptográfica?
Una función hash criptográfica es un algoritmo que funciona como una máquina de huellas dactilares. Condensa datos de cualquier longitud práctica, como una palabra, un archivo o una transacción de Bitcoin, en una huella de tamaño fijo, y los mismos datos siempre producen la misma huella. La función está diseñada para que una computadora pueda calcularla fácilmente.
A la salida se la llama hash criptográfico, valor hash o resumen (digest), y los estándares del Instituto Nacional de Estándares y Tecnología (NIST) también usan el término “message digest” (resumen del mensaje). Calcular un hash criptográfico se denomina hashing, o hash criptográfico.
La siguiente tabla aplica el Algoritmo de Hash Seguro 256 (SHA-256), una función hash criptográfica ampliamente utilizada, a dos entradas de longitudes muy distintas. Cada valor hash tiene 64 caracteres hexadecimales. El hexadecimal es una notación en base 16 en la que cada carácter representa 4 bits, por lo que 64 caracteres equivalen a 256 bits.
| Entrada | Longitud de la entrada (caracteres) | Valor hash SHA-256 |
|---|---|---|
abc | 3 | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq | 56 | 248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1 |
¿Qué Propiedades Hacen que un Hash Sea Criptográfico?
Un hash criptográfico es determinista. La misma entrada produce el mismo valor hash en cualquier computadora, siempre, por lo que cualquiera puede recalcular un hash y compararlo con uno que se le haya proporcionado.
Un hash criptográfico tiene una longitud fija. Tanto las entradas cortas como las largas producen una salida del mismo tamaño: en SHA-256, una entrada de 3 caracteres y una de 56 caracteres dan, ambas, 256 bits.
Un hash criptográfico está diseñado para ser resistente a la preimagen, lo que convierte a la función hash en una función unidireccional. Dado solo un valor hash, encontrar cualquier entrada que lo produzca debe ser computacionalmente inviable. En términos simples, calcular un valor hash es fácil, pero recuperar la entrada está diseñado para ser inviable.
Un hash criptográfico está diseñado para ser resistente a la segunda preimagen. Aquí el atacante parte de una entrada conocida y su valor hash, y la tarea consiste en encontrar una entrada distinta que dé el mismo valor hash. Esto difiere de la resistencia a la preimagen, en la que el atacante solo cuenta con el valor hash.
Un hash criptográfico está diseñado para ser resistente a colisiones. Una colisión ocurre cuando dos entradas distintas producen un mismo valor hash, y en esta propiedad el atacante puede elegir ambas entradas. Las colisiones deben existir, porque hay más entradas posibles que salidas posibles: SHA-256, por ejemplo, tiene 2 elevado a 256 valores hash posibles. Esta propiedad, la resistencia a colisiones, significa que no se espera que nadie encuentre una colisión en la práctica, no que no exista ninguna.
Un hash criptográfico muestra un efecto avalancha. Un pequeño cambio en la entrada modifica el valor hash de forma impredecible. Cambiar “abc” por “abd” altera 122 de los 256 bits del valor hash SHA-256, aunque solo difiere un carácter.
¿En Qué Se Diferencia un Hash Criptográfico de una Suma de Verificación, el Cifrado y una Firma?
Un hash criptográfico se diferencia de una suma de verificación (checksum) en sus objetivos de diseño. Una suma de verificación es un valor calculado para detectar cambios accidentales, como datos dañados durante una transferencia. Una persona que modifique tanto los datos como su suma de verificación puede superar esa comprobación, por lo que una suma de verificación por sí sola no ofrece protección contra manipulaciones deliberadas. Una suma de verificación no necesita ser unidireccional ni resistente a colisiones para cumplir su función, mientras que una función hash criptográfica está diseñada para ser ambas cosas.
Un hash criptográfico no es cifrado. El cifrado transforma datos legibles en texto cifrado mediante una clave, y quien posea esa clave puede revertirlo. Una función hash criptográfica sin clave, como SHA-256, toma solo los datos como entrada y está diseñada para ser unidireccional, por lo que no hay nada que descifrar. Expresiones como “cifrado hash” o “descifrar un hash” confunden dos herramientas distintas.
Un hash criptográfico no es una firma digital. Una firma digital utiliza una clave privada para firmar y una clave pública para verificar, y puede confirmar tanto el origen como la integridad de los datos. El hashing suele formar parte del proceso de firma: primero se aplica hash al mensaje, y luego la función de firma procesa el valor hash en lugar del mensaje completo.
¿Qué Hacen las Funciones Hash en Bitcoin?
El hashing en el mundo cripto cumple funciones concretas en Bitcoin, que depende de las funciones hash en cinco lugares principales. Bitcoin suele aplicar SHA-256 dos veces, lo que se denomina doble SHA-256: la función se ejecuta una vez sobre los datos, y luego otra vez sobre su propia salida.
IDs de transacción. Un ID de transacción es el hash doble SHA-256 de los datos serializados de la transacción, sin contar los datos de testigo (witness data) de las transacciones Segregated Witness (SegWit). Por lo tanto, un ID de transacción cambia si se modifica una entrada o salida de la transacción.
Árbol de Merkle. Un árbol de Merkle es una estructura que condensa muchos hashes en uno solo. Bitcoin aplica hash a los IDs de transacción en pares, nivel por nivel, hasta que queda un único hash. Ese hash es la raíz de Merkle, y resume todas las transacciones del bloque. El encabezado del bloque es un resumen de 80 bytes de un bloque, y almacena la raíz de Merkle.
Prueba de trabajo. En la minería de Bitcoin, un minero aplica hash al encabezado del bloque. El encabezado contiene un número de versión, el hash del encabezado del bloque anterior, la raíz de Merkle, una marca de tiempo, una forma codificada del objetivo (target) y un nonce. El nonce es un número que el minero cambia en cada intento. El objetivo es un umbral establecido por las reglas de Bitcoin, y un encabezado solo es válido si su valor hash doble SHA-256, interpretado como número, es igual o menor que el objetivo.
Enlace entre bloques. Un hash criptográfico enlaza un bloque con el siguiente. Cada encabezado de bloque almacena el hash del encabezado del bloque anterior, en un campo llamado hash del encabezado del bloque anterior, y ese campo encadena los bloques en orden.
Direcciones. Un hash criptográfico también ayuda a construir direcciones. Las direcciones de clave única, tanto heredadas (legacy) como SegWit, se derivan aplicando hash a una clave pública con SHA-256 y luego con RIPEMD-160. RIPEMD-160 es una segunda función hash con una salida de 160 bits. Las direcciones script-hash y Taproot se construyen de otra manera, por lo que no todas las direcciones de Bitcoin siguen este patrón.
¿Por Qué el Hashing Hace que el Historial de la Blockchain Sea a Prueba de Manipulaciones Detectables?
Un hash criptográfico hace visible cualquier cambio en datos antiguos de la blockchain, porque los hashes de cada bloque dependen unos de otros. Supongamos que alguien altera una entrada o salida de una transacción en un bloque antiguo. Ocurren cuatro cosas en orden:
- El ID de la transacción cambia, por lo que la raíz de Merkle de ese bloque también cambia.
- El encabezado del bloque contiene la raíz de Merkle, por lo que el hash de ese encabezado cambia.
- El bloque siguiente almacena el hash del encabezado anterior en su campo de hash del encabezado del bloque anterior, y el valor almacenado ya no coincide con el recalculado.
- Para que la cadena vuelva a ser coherente, habría que reconstruir todos los bloques posteriores, y cada uno necesitaría rehacer su prueba de trabajo.
Como un hash criptográfico es determinista, cualquiera que tenga copias de los bloques, incluido un nodo completo, puede recalcular el hash de un encabezado y compararlo con el valor almacenado en el bloque siguiente. Un nodo completo es una computadora que ejecuta el software de Bitcoin, almacena la cadena y verifica los bloques recibidos según las reglas de consenso.
La verificabilidad es la capacidad de los participantes de la red para verificar por sí mismos cualquier transacción o bloque. El hashing contribuye a la verificabilidad, porque cualquier participante que posea copias de los bloques puede repetir esa comparación de hashes.
La inmutabilidad es la resistencia de una red blockchain a la censura y al cambio. El hashing contribuye a esa resistencia al cambio al hacer visible cualquier alteración del historial.
Ser a prueba de manipulaciones detectables (tamper-evident) no es lo mismo que ser inmune a la manipulación (tamper-proof). Los bloques enlazados mediante hashes hacen que un cambio sea visible y costoso de rehacer, pero no lo hacen lógicamente imposible. El hashrate es la cantidad de hashes que la red calcula por segundo. Un grupo que controlara la mayoría del hashrate de la red podría reescribir el historial de forma confiable.
¿Qué No Te Dice un Hash Criptográfico?
Un hash criptográfico puede mostrar que los datos cambiaron, pero no quién los creó o modificó. La autoría es tarea de una firma digital.
Un hash criptográfico no hace segura una entrada débil. Revertir un valor hash es computacionalmente inviable, pero cualquiera puede aplicar hash a conjeturas y comparar los resultados. Como una función hash es fácil de calcular, una entrada corta o común, como una contraseña simple o un PIN de cuatro dígitos, suele descubrirse rápidamente.
Una función hash criptográfica está diseñada para ser unidireccional y resistente a colisiones. Estos son objetivos de diseño, que el NIST describe como propiedades esperadas de dicha función, no garantías demostradas.
Una función hash puede debilitarse con el tiempo, y SHA-1 es un caso documentado. El NIST declaró obsoleto a SHA-1 en 2011 y prohibió su uso para firmas digitales a finales de 2013. En febrero de 2017, investigadores del Centrum Wiskunde & Informatica (CWI) de Ámsterdam y de Google publicaron la primera colisión práctica de SHA-1. En diciembre de 2022, el NIST anunció que SHA-1 debería eliminarse por completo antes de finales de 2030.
Hasta octubre de 2026, el NIST sigue incluyendo a SHA-256 entre los algoritmos aprobados, y su página sobre funciones hash no menciona ningún ataque de colisión o de preimagen sobre la función completa. Ese es un historial hasta la fecha, no una promesa sobre el futuro.
12 de noviembre de 2026










