Diccionario de Criptomonedas

¿Qué Es El Hash Objetivo O Target?

Qué Es El Hash Objetivo

Al pasar por una función hash la cabecera de un bloque, este debe ser menor al hash objetivo o target para considerarse válido.

La minería de criptomoneda se refiere al proceso por el cual los mineros deben completar una tarea que permite procesar las transacciones de la red mientras ellos ganan criptomonedas como premios.

El objetivo de este trabajo es el de verificar que las transacciones que se generan son válidas, es decir que esa cuenta tiene las criptomonedas que envía y que la autorización es correcta.

Por tanto, los mineros son parte fundamental de aquellas cadenas de bloques que utilizan un mecanismo de consenso llamado Prueba de Trabajo, el cual permite generar bloques si se demuestra una cierta cantidad de trabajo empleado.

Algunas criptomonedas que utilizan este sistema son Bitcoin y Ethereum 1.0.

Aquí el hash objetivo es utilizado para ajustar la dificultad, que al final permite asegurar que el procesamiento de nuevos bloques se realice de forma eficiente.

¿Cómo funciona el hash objetivo?

Las criptomonedas utilizan la tecnología de cadena de bloques para guardar toda la información de las transacciones que se han realizado.

Estas transacciones son pasadas por una función hash para transformarlas en una serie de caracteres alfanuméricos de longitud fija y así codificarlas criptográficamente.

No importa el tamaño de la entrada de estas funciones, siempre acabaremos con un resultado de la misma longitud. Tanto si son unos pocos caracteres o enviamos a la entrada cientos de miles de ellos.

Por otro lado, cada bloque también contiene el hash del bloque previo para poder vincularlo.

Toda esta es información que va dentro de un bloque y que buscamos validar para poder agregar a la cadena de bloques. Una área que se conoce como minería.

La minería consiste en buscar un valor de hash que este por debajo del hash objetivo. Para eso utiliza hardware que le permite generar una gran cantidad de hashes de forma aleatoria para poder encontrar el que necesita.

La información que utiliza para generar el hash es la de la cabecera del bloque, que debe arrojar un valor inferior o igual al target hash, valor que es determinado por la red.

La cabecera del bloque contiene una serie de información importante que ahora será hasheada. Dentro encontramos el número de versión del bloque, la fecha, el hash del bloque anterior, el hash del la raíz de Merkle, el nonce y el hash objetivo.

Con todo eso se genera un nuevo hash, que es comparado con el hash objetivo para saber si el primero es menor o igual. Si no lo es, el minero cambia el nonce para intentar encontrar el correcto. Toda esta secuencia es realizada automáticamente por el software y hardware del minero y repetido miles o millones de veces por segundo.

Finalmente, cuando se ha alcanzado el valor correcto, entonces el bloque es agregado a la blockchain.

Esta actividad de buscar la soluciones adivinando el nonce es lo que se conoce como Prueba de Trabajo (PoW por sus siglas en inglés), y es fundamental para asegurar la cadena de bloques.

¿Cuándo se ajusta la dificultad en Bitcoin?

La dificultad en Bitcoin se ajusta cada 2.016 bloques. Esto es aproximadamente cada dos semanas, ya que 20.160 minutos es exactamente ese periodo.

Por ejemplo, a memento de escribir esto, la última dificultad fue modificada el 21 de septiembre del 2021 a las 14:34:36 en el bloque número 701,568. La dificultad es:

0000000000000000000ed0eb0000000000000000000000000000000000000000

¿Cómo se calcula?

El primero hash objetivo se encuentra en el primer bloque y es:

00000000ffff0000000000000000000000000000000000000000000000000000

Este fue ingresado de forma manual por Satoshi Nakamoto, y se cree que lo hizo así porque consideraba que era una dificultad acorde para comenzar.

Luego, cada vez que han pasado los 2016 bloques, los mineros revisan el tiempo entre estos bloques y descubren si han sido minados más rápido o más lento que los 10 minutos necesarios.

Calculo del hash target

Cada bloque tiene una marca de tiempo o timestamp en la cabecera. Esta se encuentra expresada en tiempo Unix, que es la cantidad de segundos desde el 1 de enero de 1970.

En caso de que el tiempo sea menor a los 10 minutos (0.8 < 1), entonces la dificultad se ajusta hacia abajo. Haciendo que sea más difícil encontrar los siguientes 2.016 bloques.

En caso de que el tiempo sea más lento (1.2 > 1) entonces la dificultad se ajusta hacia arriba para que sea más fácil encontrar los próximos bloques.

La dificultad se ajusta hacia abajo para aumentar la dificultad porque cuanto menor sea el objetivo, menos hashes hay que sean válidos. Y lo mismo sucede a la inversa.

Si decimos que la dificultad va de 0 a 100 por ejemplo, una dificultad de 60 es más sencilla que una de 30, ya que hay el doble de números que podemos hallar de forma aleatoria.

¿Todos los nodos tienen el mismo hash objetivo?

Cada nodo en la red opera de forma independiente, por lo que no existe un único valor de hash objetivo.

Sin embargo, como la cadena de bloques funciona con un mecanismo de consenso donde todos buscan continuar el legado de la cadena más larga, al final todos acaban calculando el mismo target hash, por lo que se puede decir que todos comparten el mismo.

Por ejemplo, cuando corramos por primera vez un nodo de Bitcoin, este descargara la información de toda la cadena y calculara el objetivo. Y debido a que el nodo tiene la misma información que los más, terminara calculando el mismo valor.

Por tanto, a pesar de que cada nodo hace su propio cálculo, al final cada uno lo hace desde la misma información, por lo que debería llegar al mismo resultado para no quedar excluido de la red.

¿Dónde encontramos el hash objetivo?

Este se encuentra en el campo bit de la cabecera de cada bloque.

¿Qué hace que un bloque se mine más rápido o más lento que 10 minutos?

Primero hay que decir que la minería es un proceso impredecible, por lo que no sabemos nunca cuando un minero va a encontrar el próximo bloque que cumpla con la condición de que su hash esta por debajo del objetivo.

Segundo, los mineros entran y salen de la red en cualquier momento, afectando el tiempo en que se descubre un nuevo bloque.

Si la dificultad se mantiene constante, pero aumenta el hashrate de la red, entonces es probable que se descubran en menos de 10 minutos. Si el hashrate desciende, entonces es probable que tarde más.

El target hash de Bitcoin

Bitcoin utiliza un algoritmo de hash llamado SHA-256. Este genera hashes aleatorios verificables de forma que requiere una cantidad de poder de procesamiento predecible.

Los mineros tienen que modificar el nonce de la cabecera del bloque de Bitcoin para que cuando pase por la función de hash este arroje un nuevo resultado. La idea es que este sea menor que el hash objetivo que se utilizó en el último bloque minado.

El número de dificultad se encuentra entre el valor 0 (que es la opción más difícil) y 256 bits (que es la opción más fácil).

El minero debe probar en Bitcoin millones de nonce hasta hallar el hash que cumpla con la condición de ser menor o igual al hash objetivo.

Si lo encuentra puede agregar su bloque a la cadena y así obtener 6,25 BTC. Caso contrario, deberá volver a intentarlo en el próximo bloque.

Resumen

  • Un hash objetivo, en las criptomonedas, es un valor numérico que sirve para comparar con el hash de la cabecera de un bloque, el cual debe ser menor o igual para considerarse válido.
  • Estos hashes en específico son utilizados en criptomonedas que utilizan un algoritmo de consenso llamado Prueba de Trabajo. En donde se requiere de la minería de criptomonedas y el hash es utilizado para ajustar la dificultad de la misma.
  • Cada cierta cantidad de bloques es necesario ajustar la dificultad, aumentando o disminuyendo este hash target en función de que los bloques sean creados con cierta regularidad.

Acerca del autor

Criptotario

Me llamo Martin, soy ingeniero y apasionado de las inversiones y la tecnología. Me gusta mucho leer libros y todo aquello que me haga mejorar día a día.

Agrega un Comentario

Haz clic aquí para añadir un comentario