QUÉ ES UN HASH
Un hash (picadillo en español) es un código que se obtiene al aplicar una función criptográfica a una información de entrada. Podríamos por ejemplo aplicar una función hash a un documento, un video, una imagen o un programa y obtendríamos como resultado un código único y de un tamaño fijo, un hash, equivalente a una huella digital del archivo de origen.
Si alguien alterase de forma accidental o fraudulenta el archivo de origen, el hash cambiaría totalmente y podríamos detectar de esa manera que el archivo original ha sido modificado.
Para un archivo digital podemos generar un hash a través de una función criptográfica, pero no podemos reconstruir el documento original a partir del hash (es unidireccional).
Para generar hashes se utilizan diversas funciones, según el nivel de fortaleza de encriptación que se desee lograr. En el caso del protocolo de Bitcoin una de las funciones hash utilizadas es la SHA-256 (SHA es Secure Hash Algorithm) y da como resultado un código de 64 caracteres hexadecimales (256 bits).
El sistema de numeración hexadecimal tiene 16 símbolos. Su equivalencia en en sistema de numeración decimal se muestra a continuación.
Decimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Hexadecimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
REQUISITOS DE UNA FUNCIÓN HASH
Una función hash debe cumplir los siguientes requisitos:
- Funcionar en una sola dirección. No se debe poder reconstruir el contenido de origen a partir del hash.
- Ser determinístico. Para un mismo documento el hash siempre debe ser el mismo.
- Calcularse rápidamente. El hash debe poder generarse de forma rápida y eficiente.
- Tener efecto avalancha. Ante el menor cambio en el archivo de origen, el nuevo hash debe ser completamente diferente. No debe ser predecible.
- Evitar colisiones. No debe ocurrir que para dos archivos de origen diferentes se genere un mismo hash; en realidad, podría ocurrir pero con muy baja probabilidad.
HERRAMIENTAS DE CRIPTOGRAFÍA
El protocolo Bitcoin utiliza varias herramientas criptográficas que describimos a continuación y que se utilizan para diferentes propósitos:
- SHA -256, desarrollado por la NSA y perteneciente a la generación de funciones hash SHA-2, que son una evolución más tolerante a ataques de fuerza bruta que las versiones SHA-0 y SHA-1. Se utiliza para resguardar el contenido de los bloques de información, para generar las cadenas entre los bloques, para resolver los retos de las pruebas de trabajo (lo explicaremos más adelante) y para convertir claves públicas en direcciones bitcoin.
- ECDSA (Elliptic Curve Digital Signature Algorithm). Es un algoritmo de curva elíptica que se caracteriza por su eficiencia para cifrar: optimiza el tamaño de la salida, lo que implica menor uso de memoria, es más rápido de procesar y sin que por ello se pierda seguridad. Se usa para obtener claves públicas a partir de claves privadas y para firmar/verificar transacciones.
- RIPEMD-160 (Race Integrity Primitives Evaluation Message Digest), Bitcoin usa la versión de 160 bits. se usa para genererar hashes de menor longitud.
POR QUÉ BITCOIN ES CRIPTO-MONEDA
Siempre escuchamos que bitcoin es una criptomoneda. Ahora podemos entender por qué es cripto: su existencia está soportada en varias herramientas de criptografía que permiten:
- proteger la historia de las transacciones guardadas en la blockchain
- generar un mecanismo para premiar a los mineros participantes (lo veremos más adelante en la prueba de trabajo de Bitcoin)
- verificar que quien envía los bitcoins es el propietario de las monedas
- garantizar que las transacciones sean válidas
- asegurar la privacidad de quienes realizan transacciones.
Ahora sí, ya estás listo para leer: ¿Cómo funciona una blockchain?
0 Comments