String de bloques: hashing de bloques

Blockchain es la tecnología principal de Digital CryptoCurrency BitCoin. La string de bloques es una base de datos distribuida de registros de todas las transacciones o eventos digitales que se han ejecutado y compartido entre las partes participantes. Cada transacción es verificada por la mayoría de los participantes del sistema. Contiene todos los registros de cada transacción. Para entender cómo funciona blockchain, es muy importante entender en detalle el concepto de Hashing.

Hay tres partes principales de cualquier red blockchain:

  • Node/Bloque: Es el bloque de construcción principal de cualquier string de bloques. Actúa como una base de datos para almacenar la información relacionada con todas las transacciones. El tamaño, el período y el evento de activación de los bloques son diferentes para cada string de bloques. Cada bloque o Node contiene un registro completo de todas las transacciones que alguna vez se registraron en esa string de bloques.
  • Red: La red está compuesta por “Nodes completos”. Piense en ellos como la computadora que ejecuta un algoritmo que protege la red.
  • Hash:  Actúa como una string que une un bloque con otro, matemáticamente se puede decir que está “enstringndo” todos los bloques. Este es uno de los conceptos más difíciles de comprender en blockchain. Es como la magia que une las strings de bloques y les permite crear confianza matemática y mantener la privacidad y la seguridad en la red. El hash en la string de bloques se crea a partir de los datos que estaban en el bloque anterior. Entonces podemos decir que el hash es una huella digital de estos datos y bloquea bloques en orden y tiempo.

Hashing en string de bloques:

En palabras simples, hashing se refiere al proceso de tener una entrada de cualquier longitud pero mostrar un elemento de salida de una longitud fija . Si tomamos el ejemplo del uso de blockchain en las transacciones en línea (usando bitcoins), las transacciones de diferentes longitudes se ejecutan a través de un algoritmo hash dado, y todas dan una salida de una longitud fija. Esta salida es independiente de la duración de la transacción de entrada.

  • Algoritmo hash seguro 256 (SHA-256): este algoritmo hashing siempre proporciona una salida de longitud fija de 256 bits o 32 bytes, sin importar el tamaño de la transacción de entrada. Significa que si hacemos hash de dos entradas diferentes usando SHA-256, digamos que una es una película de 1 gigabyte y otra es una imagen de 5 kilobytes, en ambos casos, el hash de salida será de 256 bits de longitud. La única diferencia entre los dos será el patrón hash. Actualmente, este algoritmo se utiliza en la red Bitcoin.
  • Keccak-256: este algoritmo hash siempre da una salida de longitud fija de 256 bits; actualmente se utiliza en la red Ethereum.

Funciones hash:

Básicamente, el proceso de usar una función hash dada para producir una transacción se llama hash. Una función hash tomará cualquier transacción o entrada de datos y la repetirá para producir una salida de un tamaño fijo. La salida de la transacción de esa función hash dada es lo que llamamos un hash.

DATOS DE ENTRADA —>

       H(X)

FUNCIÓN HASH

—->HASH—->

         H(x)

FUNCIÓN HASH

—-> SALIDA  

Este proceso completo se conoce como Hashing. Consta de dos subpartes, una es el cifrado de datos (el proceso de generar un hash a partir de los datos de entrada) y la segunda es el descifrado de datos (el proceso de generar resultados a partir del hash mediante una función de hash criptográfico).

Propiedades de la función hash: Las tres propiedades principales de las funciones hash criptográficas son:

  • Su entrada puede ser cualquier string de cualquier tamaño.
  • Produce una salida de tamaño fijo. Ya habíamos visto el ejemplo de SHA-256 con respecto a esta propiedad.
  • Y el tercero es, es eficientemente computable , esto significa que para una string de entrada dada, podemos averiguar cuál es la salida de la función hash en un período de tiempo razonable. Si hablo más técnicamente, calcular el hash de una string de n bits tiene un tiempo de ejecución que es O (N). 

Para que una función hash sea fuerte y más segura, tiene las siguientes tres propiedades adicionales:

  • Resistencia a la colisión: se produce una colisión cuando dos entradas distintas producen la misma salida. Una función hash H(x) es resistente a colisiones si nadie puede encontrar una colisión. Significa que para dos valores x e y, tales que x ≠ y, si h(x) =H(y), significa que la función h(.) es resistente a colisiones. Queremos aumentar la seguridad de los datos, entonces es muy importante usar una función hash fuerte que no sea resistente a colisiones.
  • Ocultar: Esta propiedad de las funciones hash asegura que si nos dan la salida de la función hash y=H(x), entonces no hay forma factible de averiguar cuál fue la entrada, x. De una manera más técnica y matemática, “una función hash H se esconde si: cuando se elige un valor secreto r de una distribución de probabilidad que tiene una entropía mínima alta, entonces dada H(r // x) es inviable encontrar x.
  • Facilidad de rompecabezas: esta propiedad de la función hash es un poco complicada de entender, pero intentaré que lo entiendas con palabras simples. De acuerdo con esta propiedad, si alguien quiere apuntar a la función hash para obtener un valor de salida particular y, si hay una parte de la entrada que se elige de manera aleatoria adecuada, es muy difícil encontrar otro valor que coincida exactamente con eso. objetivo. De una manera más técnica, esta propiedad establece que «Se dice que una función hash H es un rompecabezas, amigable si para cada posible valor de salida de n bits y, si k se elige de una distribución con alta entropía mínima, entonces es inviable encontrar x tal que H(k // x)=y en un tiempo significativamente menor que 2 n .

Aplicaciones:

1. Generación y verificación de firma: casi todos los esquemas de firma digital requieren que se calcule un hash criptográfico sobre el mensaje. El mensaje se considera auténtico si la verificación de la firma tiene éxito dada la firma y el resumen de hash recalculado sobre el mensaje. Por lo tanto, la propiedad de integridad del mensaje del hash criptográfico se utiliza para crear esquemas de firma digital seguros y eficientes.

2. Verificación de contraseña: para autenticar a un usuario, la contraseña presentada por el usuario se codifica y se compara con el hash almacenado. Se realiza un hash de contraseña; la contraseña original no se puede volver a calcular a partir del valor hash almacenado.

3. Verificación de archivos y mensajes: una aplicación importante de los hashes seguros es la verificación de la integridad de los mensajes. La comparación de resúmenes de mensajes (resumen hash sobre el mensaje) calculado antes y después de la transmisión puede determinar si se han realizado cambios en el mensaje o archivo.

Conclusión: la función hash criptográfica es una parte integral de la innovación de blockchain. Es esencialmente una función que brinda capacidades de seguridad a las transacciones procesadas, haciéndolas inmutables. Hashing también está en el centro de «Merkle Trees», que es un enfoque avanzado para hash de blockchain. Es útil en temas de escalabilidad, y mobile wallets/light wallets.

Publicación traducida automáticamente

Artículo escrito por nagarjagdeep y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *