Un hash es una huella digital de datos. Al introducir cualquier dato en una función hash, se obtiene una cadena de caracteres de longitud fija. El mismo dato siempre produce el mismo hash. Si se modifica un solo carácter, el hash cambia por completo. Esta propiedad hace que los hashes sean útiles para la verificación. Se puede comprobar que un archivo no ha sido alterado comparando su hash con un valor válido conocido. Bitcoin utiliza SHA-256. Ethereum utiliza Keccak-256. Cada bloque contiene el hash del bloque anterior, que enlaza la cadena.
Las funciones hash son unidireccionales. No se puede reconstruir la entrada original a partir de un hash. Por eso se utilizan para contraseñas y pruebas. Los mineros compiten por encontrar un hash inferior a un valor objetivo determinado. Modifican un valor aleatorio (nonce), aplican el hash al encabezado del bloque y comprueban el resultado. El proceso es de ensayo y error a gran escala. Encontrar un hash válido demuestra que se ha realizado el trabajo. Verificarlo requiere muy poco esfuerzo. Esta asimetría es la base de la prueba de trabajo. Las funciones hash también se utilizan para generar direcciones de monedero y verificar la integridad de las transacciones.
Propiedades de la función hash
- Determinista: la misma entrada siempre produce la misma salida.
- Rápido de calcular: la verificación es barata.
- Resistente a preimágenes: no se puede revertir el hash.
- Efecto avalancha: un pequeño cambio en la entrada produce una salida completamente diferente.
Un hash no es cifrado. Es un resumen unidireccional. No hay clave ni forma de descifrarlo.
Comments
No comments yet. Be the first to share a thought.
Leave a comment