Glosario / Minería y consenso
Dificultad de minería
También se conoce como Dificultad de minado o Dificultad de la red.
- ¿Qué es la dificultad de minería?
- La dificultad de minería es el dial que la red ajusta cada 2.016 bloques para que los bloques sigan llegando con alrededor de diez minutos de separación, aparezca mucho o poco hash rate.
La dificultad es un único número que expresa cuánto más difícil es encontrar un bloque de lo que lo era para Satoshi en enero de 2009. Se recalcula cada 2.016 bloques, aproximadamente dos semanas, a partir de lo que tardaron realmente los 2.016 anteriores, y puede moverse como máximo un factor de cuatro en cualquiera de los dos sentidos. Por eso los bloques de diez minutos han sobrevivido a un aumento de cien billones de veces en el poder de hash.
Cómo funciona
La dificultad es un cociente, y el protocolo la calcula solo a partir de marcas de tiempo, sin intervención humana en ningún punto del proceso.
Detrás de ella está el objetivo, un número de 256 bits por debajo del cual debe quedar el hash del encabezado de un bloque y que se almacena en el encabezado como un campo compacto de cuatro bytes llamado nBits. La dificultad se define como el objetivo de dificultad 1 dividido entre el objetivo actual, de modo que una dificultad de 126 billones significa que un encabezado válido es 126 billones de veces más raro que en la primera semana de la red. Los nodos nunca comprueban realmente la dificultad; comprueban el hash del encabezado frente al objetivo. La dificultad existe porque un cociente es legible y un umbral de 256 bits no lo es.
El ajuste de dificultad se produce en cada altura de bloque que es múltiplo de 2.016. El nodo toma el tiempo que duró realmente esa ventana, lo compara con los 20.160 minutos previstos y escala el objetivo según ese cociente, acotado para que ningún ajuste por sí solo pueda ser más de cuatro veces más fácil ni cuatro veces más difícil. Hay un famoso error por uno (off by one) en el cálculo: el lapso de tiempo se mide entre el primer y el último bloque de la ventana, que abarca 2.015 intervalos y no 2.016, de modo que la red apunta en realidad a alrededor de 10,0049 minutos por bloque. Corregirlo sería una bifurcación dura (hard fork) por un error de redondeo, así que se mantiene.
La historia muestra que el mecanismo funciona en ambos sentidos. La dificultad se mantuvo en 1 durante casi un año, hasta el primer ajuste en el bloque 32.256, el 30 de diciembre de 2009, cuando subió a alrededor de 1,18. Desde entonces ha subido por encima de 120 billones. La mayor caída registrada se produjo el 3 de julio de 2021, cuando la expulsión de su industria minera por parte de China redujo la dificultad un 27,94 % de una sola vez, de aproximadamente 19,93 billones a 14,36 billones.
Por qué importa cuando compra bitcoin
La dificultad es la razón por la que su retiro se confirma en minutos y no en horas, y una dificultad obsoleta es la razón por la que a veces no ocurre así.
El mecanismo solo corrige a posteriori. Si una gran parte del hash rate se apaga, los bloques siguen llegando con la dificultad anterior y tardan más de diez minutos cada uno, hasta el siguiente ajuste, que puede llegar hasta dos semanas después. Durante esas semanas las confirmaciones son más lentas, la mempool se vacía más despacio de lo que se llena y las comisiones por vB suben porque el mismo espacio de bloque se subasta con menos frecuencia. Quien retiraba fondos de un exchange en julio de 2021 lo notó directamente. Los bloques de esa ventana promediaban cerca de catorce minutos.
El caso contrario es más silencioso, pero más frecuente. Cuando se conectan flotas nuevas, los bloques llegan en menos de diez minutos hasta que la dificultad se pone al día, de modo que las confirmaciones son, durante un tiempo breve, más baratas y rápidas de lo que sugiere el calendario.
Conviene decir con claridad dos cosas que la dificultad no hace. No tiene ningún efecto sobre el calendario de halvings, que cuenta bloques y no tiempo, y no es una señal de precio. La dificultad sube porque los mineros compraron máquinas que eran rentables hace meses. Leerla como un pronóstico es mirar por el espejo retrovisor.
El ajuste del 3 de julio de 2021
El ajuste de dificultad del 3 de julio de 2021 es la demostración más clara del mecanismo, porque el impacto fue enorme y la corrección, automática.
La ofensiva de China desconectó una gran parte de la flota minera mundial en cuestión de semanas, a mediados de 2021. Las máquinas acabaron en contenedores de transporte con destino a Texas, Kazajistán y Paraguay, y durante el traslado no calcularon ni un solo hash. La red no se paralizó ni pidió ayuda a nadie. Simplemente produjo bloques más despacio: una reducción del 27,94 % implica que la ventana anterior había promediado alrededor de 13,9 minutos por bloque en lugar de diez. En el ajuste, la dificultad bajó a 14,36 billones, el ritmo de diez minutos volvió en cuestión de horas, y los cuatro ajustes a la baja consecutivos de aquel verano restaron en conjunto aproximadamente un 45 % a la cifra. Los ajustes en el sentido contrario borraron toda la caída en los meses siguientes, sin que nadie decidiera que así debía ser.
Dificultad de minería frente a ajuste de dificultad
La dificultad de minería es el número; el ajuste de dificultad es el evento que lo cambia. La dificultad es un valor que se mantiene constante durante toda una época de 2.016 bloques, de modo que cada bloque de esa época es exactamente tan difícil como cualquier otro. El ajuste es el recálculo que se produce en el paso de una época a la siguiente, y es lo que siguen de cerca los mineros, porque es el momento en que cambian los ingresos por máquina. Decir que la dificultad subió un martes es una forma abreviada de decir que ese martes se produjo un ajuste.
Dificultad de minería frente a objetivo de dificultad
La dificultad de minería es una comodidad para las personas; el objetivo es lo que el software hace cumplir. El objetivo es el techo real de 256 bits por debajo del cual debe quedar el hash de un bloque, y es lo que aparece en cada encabezado de bloque, comprimido en el campo nBits. La dificultad se deriva de él por división y no aparece en ninguna parte del bloque. Cuando un titular dice que la dificultad subió un 5 %, el cambio de fondo es que el objetivo se hace alrededor de un 5 % más pequeño y que todos los mineros del planeta necesitan discretamente alrededor de un 5 % más de intentos por bloque.