Fundamentos de la Blockchain - Dificultad
A menudo leemos y oímos hablar de la dificultad de la minería. Sabemos que también afecta a la rentabilidad de la minería, pero ¿qué es exactamente la dificultad? Cómo y por qué se implementa en el consenso Prueba de trabajo? Lea este artículo para saber qué es la dificultad minera.
¿Qué es la dificultad de la minería de criptomonedas?
Para entender qué es la dificultad, primero hay que entender cómo funciona la prueba de trabajo y qué problemas resuelve. Ya explicamos que es en este artículo.
La prueba de trabajo resuelve el problema del doble gasto cuando un vicioso (o entidad) tiene la mala intención de gastar un Bitcoin dos veces. Para realizar el doble gasto, hay que controlar al menos el 51% de la red.
Para evitar que una persona controle el 51% de la red, la prueba de trabajo permite que una cantidad infinita de mineros (nodos) se unan a la red de blockchain y así descentralizarla. Pero, ¿qué ocurre si muchos mineros se unen o abandonan la red?
Digamos, hipotéticamente, que hay 100 mineros idénticos minando Bitcoin. Cada uno de los mineros hace un hash con 10 TH/s o 1.000 TH/s en conjunto. Esta cantidad de poder de hash permitirá estadísticamente adivinar el bloque cada 10 minutos con una dificultad de 1. Esto se espera porque la red de Bitcoin se inclina por el tiempo de bloqueo de 10 minutos.
Si otros 100 mineros se unen a la red, la potencia de hash se incrementa en 2.000 TH/s, lo que duplica la probabilidad de adivinar el bloque. Esto haría que el tiempo de un bloque se redujera a la mitad, a sólo 5 minutos. Esto no está bien, porque el tiempo de bloque debería ser de 10 minutos.
Si aumentamos la dificultad al valor de 2, se incrementa la dificultad de adivinar el hash correcto del bloque. Como resultado, el tiempo del bloque vuelve a estar en torno a los 10 minutos.
Las cadenas de bloques ajustan la dificultad automáticamente. Por ejemplo, la dificultad de Bitcoins se ajusta cada 2.016 bloques o cada 2 semanas. La dificultad de Ethereum, en cambio, se ajusta en cada bloque, o sea, en unos 15 segundos.
¿Qué es exactamente la dificultad de la minería?
Como ya se ha dicho, la dificultad de la minería controla el tiempo medio de los bloques al aumentar la dificultad de adivinar el siguiente bloque.
Veamos el ejemplo hipotético:
Escriba NiceHash en el campo DATA y seleccione Difficulty 1 y luego pulse el botón MINE. Su ordenador adivinará el nonce hasta que la salida del hash comience con cuatro ceros. Debería llevar un par de segundos resolver el problema encontrando el nonce correcto.
Si cambias el nivel de dificultad a 2, la computadora adivinará el nonce hasta que la salida del hash comience con seis ceros. Debería tomar un poco más de tiempo para resolver el problema.
Por último, si selecciona la dificultad 3, el ordenador adivinará el nonce hasta que la salida del hash comience con ocho ceros. Esto es lo que más tardará y requerirá más potencia de cálculo.
Es más difícil encontrar una solución al hash con más ceros consecutivos. En consecuencia, la dificultad aumenta y se necesita más potencia de hash para adivinar la respuesta correcta al mismo tiempo.