Glosario cripto
Función hash
Una función hash convierte cualquier dato en una cadena de longitud fija, el hash, de forma irreversible; las blockchains la usan para enlazar bloques y minar.
Una función hash criptográfica toma datos de cualquier tamaño y produce un resultado de tamaño fijo que parece aleatorio. La misma entrada da siempre el mismo hash, pero cambiar un solo carácter genera uno completamente distinto. Una buena función hash es unidireccional, de modo que no se puede deducir la entrada a partir del resultado, y resistente a colisiones, por lo que encontrar dos entradas con el mismo hash es prácticamente imposible.
Las blockchains usan hashes en todas partes. Cada bloque contiene el hash del anterior, las transacciones se identifican por su hash, los árboles de Merkle las resumen y la minería por prueba de trabajo es una carrera por encontrar un hash de bloque por debajo de un objetivo. Bitcoin usa SHA-256, Ethereum usa Keccak-256 y las direcciones se obtienen a partir de hashes de claves públicas.
Una función hash es tan segura como su diseño; algunas antiguas, como MD5 y SHA-1, se han roto y ya no se consideran fiables. Además, el hash demuestra integridad, no confidencialidad: el hash de un valor corto o fácil de adivinar, como una contraseña débil, no lo protege.
Ejemplo
Pasar la palabra "bitcoin" por SHA-256 produce siempre la misma cadena de 64 caracteres, pero "Bitcoin" con mayúscula da una completamente distinta.