Topics BlockchainCurrent Page

Explicación: ¿Qué es el hash en blockchain?

Principiante
Blockchain
10 de sep de 2021
13 minutos de lectura

Resumen mediante IA

Mostrar más

Resumen detallado

El hashing, o hash, es un término frecuente cuando se habla de la tecnología de blockchain. El hashing se refiere a la transformación y generación de datos de entrada de cualquier longitud en una cadena de tamaño fijo, que se realiza mediante un algoritmo específico. En especial, el algoritmo del hash de Bitcoin es el SHA-256 o Algoritmo de hashing seguro de 256 bits. Este algoritmo es una función criptográfica unidireccional, ya que los datos originales pueden recuperarse mediante el descifrado.

La implementación de una función de hash criptográfica sirve para evitar transacciones fraudulentas, duplicar gastos en blockchain y almacenar contraseñas. Pero, ¿qué es el hash de Bitcoin, y qué tiene que ver en este contexto? En resumen, se trata de un número único que no es duplicable según el algoritmo. Por lo tanto, se utiliza con frecuencia para verificar la autenticidad de un archivo. Para contextualizar, cuando hay un cambio en un archivo con hash, su hash también cambiará automáticamente. Y cada hash posterior está vinculado al anterior, lo que garantiza la coherencia de todos los bloques.

¿Cómo funciona el hashing en blockchain?

Entonces, ¿qué es un algoritmo de hashing en blockchain y cómo funciona? En pocas palabras, un algoritmo de hashing toma un número infinito de bits, realiza cálculos con estos números y genera un número fijo de estos bits. Más allá de la longitud de los datos de entrada, la salida siempre será rectificada. Por lo tanto, los datos originales se denominan de entrada  y la transformación final se llama hash. En la actualidad, muchos algoritmos de hashing se diferencian solo en la forma de procesar la información.

Para entender del todo en qué consiste el hashing, es esencial entender primero la estructura de datos. Una estructura de datos es una forma específica de almacenamiento que consta de dos elementos clave: los punteros y las listas enlazadas. Los punteros  son variables que hacen referencia a otras variables, por lo que actúan como indicadores que muestran el camino hacia la ubicación correcta. Además, proporcionan la dirección del siguiente bloque en la cadena. Las listas enlazadas , por su parte, conforman una secuencia de los nodos que están conectados con la ayuda de punteros.

Gracias al hashing en blockchain , a cada bloque se le asigna un identificador original, lo que conlleva las consecuencias irreversibles de cambiar el blockchain. El bloque se identifica mediante la información incluida en la cabecera del bloque. Esta está conformada por detalles como los siguientes:

  • el número de versión de la blockchain;
  • el tiempo UNIX;
  • los punteros de hash;
  • el nonce, que es el valor que los mineros necesitan para crear un bloque; y
  • un hash de una raíz Merkle.

Todos estos elementos son necesarios para crear el bloque. Así que cuando se produce un hash en la blockchain, los datos se convertirán en una cadena única dentro de un bloque.

¿Cómo se resuelve un hash?

Para resolver un hash, se empieza por resolver problemas matemáticos complejos que contienen datos en la cabecera del bloque. Pero antes de que un minero inicie el proceso, tendrá que llevar a cabo un proceso de prueba y error para decidir qué cadena utilizar como nonce. Cuando se identifique un nonce, los mineros se centrarán en el nonce (un número de cadena) que esté relacionado con el contenido del hash del bloque anterior. Para que un hash se considere exitoso, el nuevo hash debe ser menor o igual que el hash objetivo. Y a cambio, el minero obtendrá una recompensa para añadir el bloque a la blockchain.

La relación de la prueba de trabajo en el hashing

El algoritmo de la prueba de trabajo (Proof of Work o PoW, por sus siglas en inglés) está correlacionado con el hash de la blockchain, ya que este algoritmo es útil para confirmar transacciones y generar nuevos bloques en la cadena.

Ilustración de la prueba de trabajo en Bitcoin. Imagen CC: IEEE Spectrum

¿Cómo funciona la PoW?

La descentralización es una propiedad crucial de la blockchain, pero es potencialmente vulnerable. Si un participante quiere descargar una copia de la blockchain, ¿cómo puede saber otro usuario que la blockchain es correcta? Digamos que hay miles de computadoras en la red; ¿qué les impide conspirar con un nuevo usuario con los datos que han forjado juntos?

Ahí es cuando entra en juego el algoritmo de la PoW. Permite a los participantes de la red de la blockchain saber si la información es realmente gratuita o no.

El historial lo es todo en la red, donde es necesario saber quién gasta el dinero y quién lo recibe. Antes era imposible alcanzar un consenso total en una red descentralizada sin el control de un tercero. La función hash lo hizo posible, ya que proporciona una huella digital única de un dato.

La PoW en el mundo de las criptomonedas

El concepto de PoW fue diseñado para contrarrestar los ataques de generación de servicios (DDoS) que congelan el sistema y se niegan a procesar las peticiones de los usuarios. El sistema de PoW también resiste el spam y protege con eficacia toda la red. Aunque no es una solución ideal al problema, este concepto sigue siendo relativamente eficiente.

En el mundo de las criptomonedas, el sistema PoW protege las criptomonedas, ya que es compatible con las redes descentralizadas. Un ejemplo sencillo: una persona crea una billetera digital que no está sincronizada con el resto de la red. Ni bien se conecta, la billetera cambia su estado a «sincronizada» y empieza a acceder a la blockchain.

¿Por qué engañar a la red no es rentable para los mineros?

El hash es útil para regular mejor el sistema, pero tiene un precio. Por lo que, cuando los mineros crean un nuevo bloque para la blockchain, deben proporcionar dos hash a la red:

  1. Un hash de todas las transacciones del bloque; 
  2. Un hash que demuestre que los mineros han empleado una cantidad considerable de energía para crear el bloque.

Aunque el sistema funciona bien, la compensación para los mineros es mínima. Si tenemos en cuenta que los recursos gastados en la búsqueda de los hashes hacen que la distorsión de datos no sea rentable. Pero para esto, los mineros tienen que operar en un sistema similar al de la lotería, donde solo puede haber un ganador. Y no hay garantía de encontrar un hash.

Además, se tardará una eternidad en ejecutar el proceso si la potencia de la unidad de procesamiento gráfico (GPU) y la unidad de procesamiento central (CPU) es escasa, mientras que solo las computadoras con equipos caros pueden manejar la potencia de procesamiento. Aun así, estas computadoras podrían consumir mucha electricidad, lo que hace que todo el proceso no sea rentable para un minero que encuentre un hash válido para un bloque de transacciones no válido. Al final, no tiene sentido confirmar el bloque «erróneo», afirmando que todas las transacciones son válidas, y proceder con el hash. El resto de las computadoras de la red rechazarán el bloque no válido, lo que significa que el minero no recibirá la recompensa.

Prueba de las transacciones

Al enviar criptomonedas, los usuarios tienen que confirmar la acción de sus billeteras, que transmiten las transacciones a la blockchain. Después, las transacciones entran en el grupo de transacciones a la espera de ser procesadas, donde permanecen hasta ser recogidas por un minero.

Las transacciones de este tipo pueden acumularse en un gran grupo o en pequeños grupos locales separados. Los mineros eligen las transacciones de los grupos de minería y las procesan en nuevos bloques. Este bloque incluye transacciones en espera de confirmación con metadatos adicionales. Al final, cada minero forma un bloque independiente. Y las mismas transacciones pueden entrar en los bloques de diferentes mineros.

Un minero debe asegurarse de que cada transacción determinada responde a los requisitos de procesamiento. En caso de que un emisor tenga suficientes recursos en el balance, la transacción se valida y puede añadirse al bloque. Para un procesamiento más rápido, el emisor puede aumentar la tasa de minería. Por lo general, los mineros aprovechan un mayor valor de las transacciones seleccionando las más rentables; por lo tanto, el tiempo de procesamiento es menor.

Cada transacción tiene su hash que se almacena en una estructura en forma de árbol. Estos hashes también se convierten en hash para formar la raíz de Merkle. Esta tecnología contiene información sobre todas las transacciones.

¿Qué son las funciones hash criptográficas?

Las funciones hash criptográficas se caracterizan por tener varias propiedades que las hacen muy útiles cuando se emplean en el ámbito criptográfico.

  1. El resultado de una función hash es siempre idéntico. Esta característica se denomina determinista. Independientemente de cuántas veces se ingrese el mismo mensaje, el resultado será el mismo después de aplicar la función hash. Sin embargo, el más mínimo cambio en los datos de entrada (‘Artículo’ en lugar de ‘artículo’) cambia el resultado por completo.
  2. 2. Se caracteriza por su rapidez de cálculo, ya que una velocidad baja hará que el sistema sea ineficiente.
  3. 3. La característica de resistencia a la preimagen en las funciones de hash hace que sea en cuanto a lo computacional inviable determinar la entrada a partir del valor de hash. Por lo tanto, los mineros solo pueden comparar el resultado hasta encontrar una coincidencia.

Unidades de la tasa de hash

La tasa de hash se refiere a la potencia de cálculo total del equipo de minería involucrado en la minería de criptomonedas. Estas son las unidades de medida que se incluyen:

  • Hash/seg (H/s)
  • Kilohash/seg (KH/s)
  • Megahash/seg (MH/s)
  • Gigahash/seg (GH/s)
  • Terahash/seg (TH/s)
  • Petahash/seg (PH/s)
  • Exahash/seg (EH/s)

Dado que la minería es cada vez más complicada, es casi imposible ver unidades «hash por segundo» en las redes modernas de blockchain. Hoy en día, se necesitan dispositivos con mayor potencia para resolver estos problemas que van desde decenas de megahash por segundo.

Por ejemplo, una potencia de procesador de 10 MH/s puede generar 10 millones de combinaciones diferentes de números en un segundo para encontrar el hash que coincida con todos los parámetros establecidos por la red.

Sin embargo, existen diferentes factores que determinan la tasa de hash. Incluso la elección de un algoritmo de minería afecta al parámetro. También es importante saber cómo reaccionan otros dispositivos con diferentes algoritmos. Mientras que algunos de estos proveen la máxima capacidad con redes que presentan un algoritmo de SHA (Bitcoin, Peercoin, etc.), el resultado puede ser inferior cuando la misma red emplea el algoritmo de Script.

¿Cómo se protegen los datos hash?

Cada bloque contiene un hash del bloque anterior (parent block), excepto el bloque Génesis. Imagine una cadena de bloques con hash de los bloques padre. Si la información de uno de estos bloques se modifica, afecta a todos los demás bloques de la cadena. Sin embargo, a medida que la red crece, cambiar los hash de todos los bloques resulta prácticamente imposible. Por lo tanto, el proceso de hashing es necesario para la blockchain, ya que asegura el carácter único y la originalidad de cada elemento del sistema.

Los datos inmutables y confiables son una de las propiedades centrales de la blockchain, lo que los hace valiosos y le da un potencial colosal a la blockchain. La información siempre permanece auténtica, determinando así la integridad de la blockchain.

¿Cómo se mide la tasa hash de la red Bitcoin?

La tasa de hash de Bitcoin representa la potencia de cálculo global de todos los nodos del mundo que contribuyen a la minería de Bitcoin. Sin embargo, es problemático determinarlo ya que las máquinas mineras que contribuyen a la red carecen de identificación, y se comunican con la red solo después de encontrar un bloque.

Pero, la tasa de hash se estima todos los días al comparar los bloques encontrados en las últimas 24 horas con el número 144, que es una tasa prevista de encontrar un bloque. Según el algoritmo, la velocidad de minado debería ser la misma (600 segundos). De esta manera, la fórmula de la potencia de hash de Bitcoin es la siguiente:

Potencia de hash = ((bloques encontrados en 24 horas/cantidad estimada de bloques) × trabajo)/600

Cuanto mayor sea la tasa de hash de Bitcoin, más difícil será el parámetro de minería, ya que siempre se ajusta para mantenerlo en línea con el trabajo de hash general. El ajuste de la dificultad es esencial para la seguridad. Así que es natural que el protocolo se aleje de la monopolización. Es necesario preservar la misma velocidad de minería de criptomonedas para evitar la inflación. De lo contrario, los mineros generarán más Bitcoins más rápido, y la criptomoneda perderá su valor.

¿Cómo afecta el hashing a la minería de Bitcoin?

La minería permanece descentralizada porque dos mineros no pueden hacer un hash de los mismos bloques. Los mineros reciben las transacciones por la red en un orden distinto.. Debido a esto, y a las preferencias individuales en términos de comisión, cada minero procesa el bloque de forma un poco diferente.

Aunque todos los bloques hayan sido validados correctamente, solo un bloque puede entrar en la blockchain a la vez. Todos los mineros tendrán que seguir haciendo hashing hasta que encuentren un número que produzca el resultado que la red acepte como válido cuando se añada a su bloque en la blockchain.

Además, la red debe garantizar la creación de un nuevo bloque cada diez minutos para mantener la política financiera de Bitcoin. La red lo hace ajustando la dificultad de minado cada dos semanas. Por lo tanto, si los bloques se validan demasiado rápido debido al aumento de la cantidad de nuevos mineros, la red aumentará la complejidad para reducir la inflación.

Como el hashing de la blockchain presume de ser aleatorio, incluso un minero con la computadora más potente no siempre gana. El concepto es similar al de un juego de lotería. Incluso un usuario con el mayor número de boletos puede tener más oportunidades de ganar, pero no es garantía de que siempre vaya a suceder eso.

Por lo general, un minero crea un bloque de transacciones válidas y luego ejecuta la PoW en ese bloque, a la espera de encontrar el hash establecido por las reglas de la red antes que otros mineros. Si el proceso tiene éxito, este bloque entra en la blockchain y el minero recibe la recompensa. Las especificaciones del hardware también importan, por lo que este factor debe ser considerado también al comprar el equipo de minería.

¿Se aplica el hashing solo a Bitcoin?

El hashing es la parte central e integral de una blockchain diferente. Muchas criptomonedas son compatibles con la minería, como Litecoin o Bitcoin Cash. Otras cadenas de bloques siguen utilizando diferentes algoritmos de minería. Sin embargo, hoy en día, muchos algoritmos de hashing difieren solo en la forma de procesar los datos.

Consumo de energía de Bitcoin en comparación con Ethereum

Bitcoin sigue siendo la criptomoneda que más energía consume. Al comparar Ethereum y Bitcoin, el consenso de la Prueba de participación de Ethereum pretende reducir el 99 % de su consumo energético. En comparación, el sistema de PoW de Bitcoin sigue aumentando, donde ya supera la energía total consumida en toda Suiza.

Con la migración a ETH 2.0, la red es soportada por validadores en lugar de mineros. Por lo tanto, es más sostenible y deja una menor huella de carbono en el medio ambiente.

Conclusión

La tecnología de blockchain se convirtió en la innovación más influyente del siglo pasado que determinó el desarrollo futuro de las tecnologías. El hashing es una función criptográfica que potenció esta tecnología. Es esencial entender qué es el hashing y la esencia de la tecnología para minar en una blockchain y ganar dinero en ella.

Aplicación de Bybit
Gana de forma inteligente