La dificultad de minería de Bitcoin es un factor crucial que determina la seguridad y estabilidad de la red. Es un número que representa la dificultad que enfrentan los mineros para añadir nuevos bloques de transacciones a la blockchain.
¿Por qué es importante la dificultad?
La dificultad de la minería de Bitcoin juega un papel esencial en el funcionamiento de la red. Su objetivo principal es garantizar que los bloques de transacciones se agreguen a la blockchain a intervalos regulares, incluso a medida que más mineros se unan a la red.
Si la dificultad permaneciera siempre igual, el tiempo necesario para agregar nuevos bloques a la blockchain se reduciría gradualmente a medida que más mineros se unieran a la red. Para evitar esto, la dificultad se ajusta periódicamente.
¿Cuándo cambia la dificultad?
La dificultad de la minería de Bitcoin se ajusta cada 2,016 bloques, lo que equivale aproximadamente a cada 2 semanas. En este intervalo, cada nodo calcula el tiempo esperado para la extracción de los últimos 2,016 bloques (2016 x 10 minutos) y lo divide por el tiempo real que tomó:
Tiempo esperado / Tiempo real = 20160 / Tiempo real
Si los mineros pudieran resolver cada bloque más rápido de lo esperado, por ejemplo, 9 minutos por bloque, obtendríamos un número como este:
20160 / 18144 = 11
Cada nodo utiliza este número para ajustar la dificultad para los próximos 2,016 bloques:
Dificultad x 11 = Nueva dificultad
Si el número es mayor que 1 (los bloques se minaron más rápido de lo esperado), la dificultad aumenta. Si el número es menor que 1 (los bloques se minaron más lento de lo esperado), la dificultad disminuye.
Todos los mineros en la red de Bitcoin trabajan con esta nueva dificultad durante los siguientes 2,016 bloques.
La dificultad solo se ajustará como máximo en un factor de 4 (es decir, un multiplicador no mayor que 4 ni menor que 0.25). Esto se hace para evitar cambios bruscos de un período de dificultad al siguiente.
¿Cómo controla la dificultad el tiempo entre bloques?
Para entender mejor cómo funciona la dificultad de la minería de Bitcoin, podemos usar un ejemplo sencillo:
Ejemplo sencillo
Imagina que te doy un rango de números del 1 al 100. Tu objetivo es generar un número aleatorio entre 1 y 100 una vez por minuto y obtener un número por debajo de un número objetivo que yo establezca.
Si establezco el número objetivo en 50, te tomará 2 minutos en promedio encontrar un número por debajo de ese valor. Si bajo el objetivo a 20, solo podrás generar un número ganador 1/5 del tiempo, o una vez cada 5 minutos.
La dificultad de la minería de Bitcoin controla el tiempo que tarda en generar un número ganador, estableciendo un número objetivo.
En lugar de decirte el número objetivo directamente, puedo darlo dividiendo el rango de números por un nuevo número, que es la dificultad.
Ejemplo de Bitcoin
La dificultad de la minería de Bitcoin funciona de la misma manera. Se utiliza para establecer un valor objetivo, y los mineros siguen generando números (haciendo hash de sus bloques candidatos) con la esperanza de encontrar un hash de bloque por debajo del valor objetivo.
Como los mineros pueden generar miles de números (hashes) por segundo, Bitcoin usa números extremadamente grandes para el objetivo.
Debido a que ahora hay miles de mineros tratando de encontrar números ganadores, para asegurar que se encuentre un número ganador cada 10 minutos (en lugar de cada pocos segundos), el rango de números exitosos termina siendo absolutamente pequeño.
¿Cómo se calcula la dificultad?
La dificultad se calcula dividiendo el valor objetivo máximo posible por el objetivo para el bloque actual.
El objetivo máximo es el objetivo que se estableció para el primer bloque:
Objetivo máximo = 0x00000000ffff0000000000000000000000000000000000000000000000000000
Para calcular la dificultad para el bloque 100,000, por ejemplo, solo necesitamos encontrar el objetivo para ese bloque:
Objetivo = 0x000000000004864c000000000000000000000000000000000000000000000000
Si convertimos ambos valores a decimal y los dividimos, obtenemos la dificultad:
Dificultad = Objetivo máximo / Objetivo = 0x00000000ffff0000000000000000000000000000000000000000000000000000 / 0x000000000004864c000000000000000000000000000000000000000000000000
Dificultad = 26959535291011309493156476344723991336010898738574164086137773096960 / 1861311314983800126815643622927230076368334845814253369901973504
Dificultad = 1448162361

La dificultad de la minería de Bitcoin es una representación de qué tan lejos se ha movido el objetivo actual del valor objetivo máximo posible.
¿Dónde puedo encontrar la dificultad actual?
Puedes encontrar la dificultad actual usando el comando bitcoin-cli getdifficulty. También puedes encontrarla en bitcoin-cli getmininginfo.
Resumen
El objetivo es la meta que los hashes de bloques deben superar para que se agregue un nuevo bloque a la blockchain. La dificultad es solo una medida de cuánto se ha movido el objetivo desde su valor inicial. En otras palabras, qué tan difícil es minar un bloque en comparación con cuando la blockchain comenzó.
Si quieres conocer otros artículos parecidos a Dificultad de la minería de bitcoin: entendiendo cómo funciona puedes visitar la categoría Finanzas / Inversiones.
