¿Qué es, qué significa y para qué sirve un Hash en Bitcoin? (IV)

Ejemplo de Función Hash

(OroyFinanzas.com) – Una palabra recurrente en la minería de Bitcoin es la palabra “Hash”. En este artículo explicaremos qué es un “Hash” y qué significa en el contexto de Bitcoin. En artículos futuros explicaremos cómo se usan “Hash” para la minería de bitcoins y a nivel de seguridad de las carteras.

La palabra “Hash” es un verbo inglés que traducido al español significa picar o moler, pero en el contexto de una función criptográfica significa función hash o resumen criptográfico.

Un Hash se utiliza en lo que se llaman funciones hash criptográficas o funciones unidireccionales en el área de la criptografía. Este tipo de funciones se caracterizan por cumplir propiedades que las hacen idóneas para su uso en sistemas que confían en la criptografía para dotarse de seguridad. Al igual que todos los datos informáticos, los hashes no son números grandes, y se escriben normalmente en sistema hexadecimal (números entre 0 y 9 y letras entre A y F).

Un algoritmo de Hash convierte una cantidad arbitrariamente grande de datos en un Hash de longitud fija. Por ejemplo el Hash de la clave pública de la palabra “oroyfinanzas.com” (sin paréntesis) sería este 1DZEazabbJqtr2uciLFNxvgm1GBuS5kaej

Funciones deterministas (Deterministic functions en inglés)

Una función se puede llamar determinista si siempre crea el mismo resumen con la misma entrada aunque el resumen parezca aleatorio.

Colisión (Collision en inglés)

Una colisión ocurre cuando dos valores de entrada diferentes generan el mismo resumen. Una función hash debe ser resistente a la colisión.

El mismo Hash siempre será el resultado de los mismos datos (funciones deterministas), pero la modificación de la información, aunque sea un solo bit dará como resultado un hash totalmente distinto.

La idea básica de un valor Hash es que sirva como una representación compacta de la cadena de entrada como en el ejemplo que hemos utilizado para oroyfinanzas.com. Este es un ejemplo de Wikipedia que muestra la importancia de que todos los datos de entradas sean iguales para llegar al mismo valor Hash para ser deterministas.

Ejemplo entrada y salida Hash Wikipedia

Fuente Wikipedia: http://creativecommons.org/licenses/by-sa/3.0/deed.ese

Lo importante de un resumen criptográfico es que es sea fácil crear el valor Hash, pero es prácticamente imposible deducir el contenido de la entrada leyendo el valor Hash. Aunque sea muy fácil producir un Hash de una gran cantidad de datos cada resumen criptográfico es único.

Video Funciones criptográficas de Hash (en inglés)

Los Hash se utilizan en el protocolo Bitcoin en dos importantes áreas: Direcciones y minería

Aplicación en la generación de claves públicas y privadas

Para generar el Hash de las claves públicas y privadas (criptografía de clave pública- en inglés PKI o Public Key Infrastructure) de Bitcoin se utiliza el algoritmo de encriptación ECDSA (Elliptic Curve DSA). Con el algoritmo ECDSA es posible generar la clave pública y la dirección pública a partir de la clave privada, pero no al revés. Esto es fundamental porque la clave privada es la que da acceso a gastar los Bitcoins que uno tiene en su monedero o wallet. Con nuestro ejemplo anterior de oroyfinanzas.com la clave pública era 1DZEazabbJqtr2uciLFNxvgm1GBuS5kaej y la clave privada es 5K9xHTLBgEvfJuFNAcvBFcpaJKf2gLQJegjU5LDscguGwrQVx1i

En otro artículo explicaremos en más detalle el funcionamiento de las claves privadas y públicas en Bitcoin.

Aplicaciones en el minado de Bitcoins por los mineros

Bitcoin utiliza el algoritmo SHA-256 para generar de manera verificable “al azar” la secuencia de números del Hash que se requieren para definir una cantidad previsible de esfuerzo CPU. Los mineros buscan el hash correcto, aquél que empiece por un número determinado de ceros, en función de la dificultad establecida en ese momento añadiendo un nonce para la generación del bloque que les permita ganar el premio del bloque (el coinbase) correspondiente. Este hash formara parte de los Hash que unen todos los bloques del “block chain” (la cadena de bloques).

En otro artículo explicaremos en más detalle las funciones hash SHA-256 y RIPEMD-160, el funcionamiento del proceso de minado en Bitcoin, el significado de un nonce y el coinbase como parte del block chain.

© OroyFinanzas.com

© OroyFinanzas.com

Sobre el autor

Alex Preukschat
Autor de BitcoinComic.org - Estudioso del dinero en todos sus formatos con énfasis en el oro y Bitcoin. Twitter @AlexPreukschat
mencionado en: