El hash como función criptográfica aplicada a cualquier conjunto de datos, nos dará como resultado un hash aleatorio y de longitud fija, que siempre será igual para esos mismos datos. Si cambiamos cualquier dato de entrada, el hash resultante será distinto.
La función hash nos da como resultado una cadena de datos escrita en formato hexadecimal, representando a los datos de entrada en forma de resumen. Este mismo hash solo podrá obtenerse de nuevo, si se vuelven a utilizar exactamente los mismos datos de entrada.
- El hash nos permite verificar que la información incluida en un bloque no ha sido modificada
- El algoritmo hash siempre deberá producir un mismo valor para un mismo conjunto de datos
- Se trata de una función unidireccional, así que no pueden volverse a obtener los datos de entrada, mediante el hash obtenido
Hash en claves Bitcoin privadas y públicas
A partir de la clave privada, el protocolo Bitcoin mediante una serie de operaciones matemáticas (funciones hash SHA-256 y RIPEMD-160), es capaz de obtener ese hash final que va a conformar una clave pública más corta y manejable.
Este proceso matemático es sencillo de realizar para cualquier ordenador actual, por lo que en Bitcoin se recomienda usar una clave pública nueva para cada transacción.
A través de una dirección pública, no será posible obtener la clave privada. De otra forma, cualquiera podría adivinar nuestra calve y gastar nuestros bitcoins.
El Hash en la minería Bitcoin
Cada 10 minutos se debe crear una nuevo bloque de transacciones, que finalmente sea añadido a la cadena de bloques. Y es ahí donde los mineros compiten por encontrar el hash adecuado, para poder añadir la lista de transacciones que ellos han verificado.
Para cualquier ordenador actual resulta muy sencillo ejecutar una función hash SHA-256 que resuma el listado de transacciones, la firma del bloque anterior y el número “nonce”. Por lo que Bitcoin añade la dificultad de tener que encontrar un hash que incorpore un determinado número de ceros al principio de la cadena:
“000000000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
Encontrar un hash que comience por ese número de ceros es altamente improbable. Y los mineros deberán hacer miles de cálculos matemáticos antes de averiguar el hash ganador.
Tras un último proceso de verificación, el hash encontrado por el minero se añadirá al final de su bloque y será la firma que certifique la integridad de los que incluye.
Ejemplo de una función hash
El protocolo Bitcoin utiliza la función hash SHA-256 y puedes encontrar varias páginas capaces de llevar a cabo esta función.
Para esta entrada de datos:
bitsofproof.com
Obtendremos esta cadena de salida:
6DC8927C36EF6BD826BC4E8B950E88036D09E94E74BC4B4A89CEE8B346ECA9EB
– Generador de hash (SHA256): passwordsgenerator.net
Blanca Guillen
Soy una apasionada de las nuevas tecnologías y actualmente trabajo como desarrolladora de software. Hace algunos años empecé a interesarme por la tecnología blockchain y la criptomoneda Bitcoin. Decidí crear este blog como una guía con la que cualquiera pudiese empezar a adquirir conocimientos sobre criptomonedas.
Puedes encontrarme en Linkedin y Twitter