Qué hace una función hash
Una función hash toma cualquier entrada (una palabra, un archivo, un bloque entero de transacciones) y produce una salida corta de longitud fija, llamada hash o digest. SHA-256, la que usa Bitcoin, siempre produce 256 bits, que normalmente se escriben como 64 caracteres hexadecimales, ya sea que la entrada sea una sola letra o una película completa.
Las propiedades que importan
- Determinista: la misma entrada siempre da el mismo hash, en cualquier computadora.
- Rápida de calcular: sacar el hash de un archivo grande toma una fracción de segundo.
- De un solo sentido: a partir de un hash, no hay forma práctica de encontrar una entrada que lo produzca, salvo adivinando.
- Efecto avalancha: si cambias un solo carácter de la entrada, cambia aproximadamente la mitad de los bits de la salida, así que entradas parecidas dan hashes que no tienen nada que ver.
Otra propiedad, la resistencia a colisiones, significa que nadie puede encontrar dos entradas distintas con el mismo hash. Las colisiones tienen que existir, porque hay más entradas posibles que salidas, pero en una función bien diseñada encontrar una requeriría más poder de cómputo del que existe.
Dónde te encuentras con hashes en cripto
- Cada bloque registra el hash del bloque anterior, lo que hace que cualquier alteración de la historia antigua sea evidente.
- Un árbol de Merkle reduce con hashes todas las transacciones de un bloque a un único hash raíz, así que se puede demostrar que una transacción está en un bloque sin descargar el bloque completo.
- Los mineros de Proof of Work buscan un hash de bloque por debajo de un número objetivo, y eso solo se logra probando una entrada tras otra.
- Una dirección de Ethereum se recorta del hash Keccak-256 de una clave pública.
Dónde deja de protegerte el hash
Un hash demuestra que los datos no cambiaron desde que se calculó. No dice nada sobre si los datos eran correctos desde el principio. Y lo de "un solo sentido" solo vale cuando la entrada es difícil de adivinar. Si sacas el hash de un PIN de cuatro dígitos, cualquiera puede revertirlo calculando el hash de los 10,000 PIN posibles y comparando. Las contraseñas, y las frases semilla que la gente inventa por su cuenta, fallan por la misma razón: la protección viene de la cantidad de entradas posibles, no del hash.
Un hash es un sello sobre un documento, no un veredicto sobre lo que el documento dice.