¿Qué es hash?

El hashing se refiere al proceso de generar una salida de tamaño fijo a partir de una entrada de tamaño variable. Esto se hace mediante fórmulas matemáticas conocidas como funciones hash (implementadas como algoritmos hash).

Aunque no todas las funciones hash involucran criptografía, las llamadas funciones hash criptográficas son fundamentales en el mundo cripto. Gracias a ellas, los blockchains y otros sistemas distribuidos logran niveles significativos de integridad y seguridad de datos, algo que personalmente encuentro fascinante.

Las funciones hash convencionales y criptográficas son determinísticas. Esto significa que, mientras la entrada no cambie, el algoritmo siempre producirá la misma salida (también conocida como resumen o hash). Me parece increíble cómo algo tan complejo puede ser tan predecible.

Los algoritmos hash en criptomonedas están diseñados como funciones unidireccionales, lo que significa que no pueden revertirse fácilmente sin enormes recursos computacionales. Es bastante sencillo crear la salida desde la entrada, pero casi imposible hacer lo contrario. En general, cuanto más difícil sea encontrar la entrada, más seguro se considera el algoritmo. Y créanme, algunos de estos algoritmos son prácticamente impenetrables.

¿Cómo funciona una función hash?

Diferentes funciones hash producen salidas de distintos tamaños, pero los tamaños de salida para cada algoritmo son siempre constantes. Por ejemplo, SHA-256 solo puede producir salidas de 256 bits, mientras que SHA-1 siempre generará un resumen de 160 bits.

Para ilustrarlo, ejecutemos las palabras "Binance" y "binance" a través del algoritmo SHA-256 (el usado en Bitcoin).

SHA-256 Entrada: Binance Salida: f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

Entrada: binance Salida: 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2

¿Ven cómo un pequeño cambio (la primera letra en mayúscula) resulta en un hash completamente diferente? Me fascina esta sensibilidad. Pero usando SHA-256, las salidas siempre tendrán un tamaño fijo de 256 bits (64 caracteres) independientemente del tamaño de entrada.

Por otro lado, si ejecutamos las mismas entradas por SHA-1, obtenemos:

SHA-1 Entrada: Binance Salida: 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1

Entrada: binance Salida: e58605c14a76ff98679322cca0eae7b3c4e08936

SHA significa Secure Hash Algorithms, refiriéndose a un conjunto de funciones hash criptográficas que incluyen SHA-0, SHA-1, SHA-2 y SHA-3. SHA-256 pertenece al grupo SHA-2. Actualmente, solo SHA-2 y SHA-3 se consideran seguros, lo cual me hace cuestionar por qué algunos sistemas aún utilizan los algoritmos más antiguos.

¿Por qué son importantes?

Las funciones hash convencionales tienen múltiples usos: búsquedas en bases de datos, análisis de archivos grandes y gestión de datos. Las funciones hash criptográficas se utilizan ampliamente en seguridad informática, autenticación de mensajes e identificación digital. En Bitcoin, son esenciales para la minería y la generación de direcciones y claves.

El verdadero poder del hashing surge con grandes cantidades de información. Puedes ejecutar un archivo enorme a través de una función hash y usar su salida para verificar rápidamente la precisión e integridad de los datos. Esto elimina la necesidad de almacenar y "recordar" grandes cantidades de información, algo que considero brillante en su simplicidad.

El hashing es particularmente útil en blockchain. La cadena de Bitcoin tiene numerosas operaciones que involucran hashing, principalmente en la minería. Casi todos los protocolos cripto dependen del hashing para vincular transacciones en bloques y crear enlaces criptográficos entre ellos, formando efectivamente una blockchain.

Funciones hash criptográficas

Una función hash que implementa técnicas criptográficas puede definirse como función hash criptográfica. Romper una de estas funciones requiere infinitas pruebas de fuerza bruta. Para "revertir" una función hash criptográfica, alguien necesitaría adivinar la entrada por ensayo y error hasta producir la salida correspondiente. Sin embargo, existe la posibilidad de que diferentes entradas produzcan exactamente la misma salida, causando una "colisión".

Técnicamente, una función hash criptográfica debe seguir tres propiedades para considerarse segura:

  • Resistencia a colisiones: imposible encontrar dos entradas distintas que produzcan el mismo hash
  • Resistencia a pre-imagen: imposible "revertir" la función hash
  • Resistencia a segunda pre-imagen: imposible encontrar otra entrada que colisione con una entrada específica

Resistencia a colisiones

Una colisión ocurre cuando entradas diferentes producen exactamente el mismo hash. Una función hash se considera resistente a colisiones hasta que alguien encuentra una. Siempre existirán colisiones para cualquier función hash porque las entradas posibles son infinitas, mientras que las salidas son finitas.

Una función hash es resistente a colisiones cuando la probabilidad de encontrar una colisión es tan baja que requeriría millones de años de cálculos. SHA-0 y SHA-1 ya no son seguros porque se han encontrado colisiones. Actualmente, SHA-2 y SHA-3 se consideran resistentes a colisiones.

Resistencia a pre-imagen

Esta propiedad está relacionada con el concepto de funciones unidireccionales. Una función hash es resistente a pre-imagen cuando hay muy poca probabilidad de que alguien encuentre la entrada que generó una salida específica.

Esta propiedad es valiosa para la protección de datos porque un simple hash puede probar la autenticidad de un mensaje sin revelar la información. Muchos proveedores web almacenan hashes de contraseñas en lugar de contraseñas en texto plano, algo que deberían hacer todos, en mi opinión.

Resistencia a segunda pre-imagen

Un ataque de segunda pre-imagen ocurre cuando alguien encuentra una entrada específica que genera la misma salida que otra entrada conocida. Implica encontrar una colisión, pero buscando una entrada que genere el mismo hash que otra entrada específica.

Cualquier función hash resistente a colisiones también es resistente a ataques de segunda pre-imagen. Sin embargo, aún es posible realizar un ataque de pre-imagen en una función resistente a colisiones.

Minería

La minería de Bitcoin involucra muchas operaciones de hash: verificación de saldos, vinculación de entradas y salidas de transacciones, y hash de transacciones dentro de un bloque para formar un árbol Merkle. Pero lo que realmente asegura la blockchain de Bitcoin es que los mineros deben realizar infinitas operaciones de hash para encontrar una solución válida para el siguiente bloque.

Un minero debe probar varias entradas diferentes al crear un valor hash para su bloque candidato. Solo podrá validar su bloque si genera un hash que comience con cierto número de ceros. Este número determina la dificultad de minería y varía según el hashrate dedicado a la red.

El hashrate representa cuánta potencia computacional se invierte en la minería. Si aumenta, el protocolo Bitcoin ajustará automáticamente la dificultad para mantener el tiempo promedio de minado en aproximadamente 10 minutos. Si varios mineros dejan de minar, la dificultad disminuirá.

Los mineros no necesitan encontrar colisiones porque hay varios hashes válidos (que comienzan con cierto número de ceros). Existen múltiples soluciones posibles para un bloque determinado, y los mineros solo necesitan encontrar una.

Como la minería es costosa, los mineros no tienen motivos para engañar al sistema, ya que eso causaría pérdidas financieras significativas. A más mineros en una blockchain, más fuerte se vuelve la red.

Sin duda, las funciones hash son herramientas esenciales en la informática, especialmente con grandes cantidades de datos. Combinadas con criptografía, ofrecen seguridad y autenticación de muchas maneras. Son vitales para casi todas las redes cripto, por lo que comprender sus propiedades y mecanismos es útil para cualquiera interesado en blockchain.

BTC-0.13%
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opera con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)