¿Qué hay detrás de las funciones HASH?

in #bitcoin9 years ago

Una vez nos adentramos en el mundo de las criptomonedas, la referencia a las funciones Hash es inevitable. Cualquier página informativa o blog documentado y decente que valga la pena seguir, en un momento u otro, debe nombrar a estas funciones tan particulares.

Si te has topado con ese tipo de artículos más avanzados, como aquellos que relatan la labor de los mineros << ¿Resolver puzzles matemáticos de forma aleatoria?>>, éstas entradas de nuestro BLOGchain desmenuzarán el significado, importancia y papel de las funciones Hash, y así, una vez leas nuestro artículo posterior de identidades digitales y minería, el mapa difuso de este mundo virtual tan enrevesado te será más claro. ¡Comencemos!
¿Qué es una función Hash?

Las funciones Hash son la herramienta fundamental para que Bitcoin sea descentralizada y segura. Si el lector proviene de un campo profesional distinto al matemático o informático, el nombre Hash puede hacernos recular, pero no es más que una función como cualquier otra en su definición más básica: Relación entre dos magnitudes por la que a cada valor de una de ellas corresponde un valor determinado de la otra. Como es imposible visualizar algo que se desconoce, antes veamos una función algebraica cualquiera:

y = 5x + 4

Al valor de entrada x = 1, le corresponde el valor de salida y = 9. Ocurre una transformación que sigue unas normas, las indicadas por los operadores matemáticos en las que esta función particular está construida, la multiplicación y la suma.

Una función hash hace lo mismo, con la particularidad de que las entradas, x, son datos (Conjunto de símbolos) de un tamaño arbitrario, siendo las salidas, y, datos de un tamaño fijo.

Las normas que sigue la función Hash, como la análoga suma y multiplicación de la función algebraica de ejemplo, para transformar la entrada en otro valor de salida, depende del tipo de función que sea (Se explicará en las siguientes entradas de BLOGchain). Se pueden dividir, a grandes rasgos, en no criptográficas, utilizadas por software para encontrar archivos rápidamente al utilizar información más comprimida, datos menos pesados; y criptográficas, que modifican los datos de un documento con el objetivo de alcanzar algunas características de seguridad.

Algunos de los nombres de las distintas funciones Hash, y que cada una internamente tienen diferentes normas para codificar las entradas, son: Pearson, Jenkins, Java HashCode(), MD5, SHA-1, BLAKE2s, Whielpool, RIPEMD…
La que utiliza en particular Bitcoin es la llamada SHA-256 (Secure Hashing Algorithm 256 bits), una función Hash criptográfica utilizada para transformar las diferentes transacciones (Mensajes de un tamaño cualquiera) de Bitcoin en bloques, archivos de un tamaño fijo. Con los hardforks de Bitcoin, puede darse que en algún momento la función Hash utilizada cambie.
Funciones Hash

No criptográficas:

Un ejemplo podría ser un libro de contactos digital (E.g: Como el antiguo libro de Páginas amarillas). Los nombres, al ejecutarlos con una función hash, H(x), dan como resultado diferentes hashes (00,01…), a los que están adheridos una información determinada (Buckets), en este caso, números de teléfono.
Comparar el hash, que es menos pesado que un nombre, con el almacén de datos de las Páginas amarillas digitales para encontrar el número de teléfono, es más rápido.

Criptográficas:

Este tipo de funciones Hash se utilizan en diferentes ámbitos: Para firmas digitales (Utilizado en Bitcoin), para comparar archivos pesados, autentificación de contraseñas y de mensajes, evitar el spam en el correo electrónico…
Para entender más sobre las propiedades de las funciones Hash criptográficas, y así comprender qué papel tiene la SHA-256 utilizada por Bitcoin, y de forma última entender qué es el famoso bloque de la Blockchain, seguiremos subiendo artículos sobre las propiedades de las funciones Hash.

Cristian García & Gonzalo Munilla

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.099
BTC 64869.25
ETH 1924.05
USDT 1.00
SBD 0.38