Al terminar esta lección podrás
- Explicar cómo se reajusta la dificultad cada 2016 bloques
- Calcular el ajuste a partir del tiempo que tardaron los bloques
Si cada vez hay más máquinas minando, ¿por qué no salen bloques cada vez más deprisa? Porque la red ajusta el target. Cada 2016 bloques, todos los nodos miran cuánto tardaron esos bloques y lo comparan con lo previsto: 2016 bloques a diez minutos son 20.160 minutos, justo dos semanas.
La regla es una proporción. Si tardaron 12 días en vez de 14, el target nuevo es el anterior multiplicado por 12/14: más bajo, más difícil. La dificultad, que es la forma de expresar eso al revés, sube en la proporción contraria, 14/12, un 16,7 %. Si tardaron 16 días, la dificultad baja un 12,5 %. Con la potencia de ese momento, los bloques vuelven a salir cada diez minutos de media.
Hay un límite. En un solo reajuste la dificultad no puede multiplicarse por más de 4 ni dividirse por más de 4. Es una regla de consenso: está en el código que ejecuta cada nodo (en Bitcoin Core, el fichero pow.cpp). Si los bloques tardaron dos días, el ajuste se queda en ×4, y harán falta más reajustes para volver a los diez minutos.
Un detalle del código: Bitcoin Core mide el tiempo entre el primer y el último bloque del periodo, que son 2015 intervalos y no 2016. Es un error pequeño de la primera versión que nunca se cambió, porque cambiarlo exigiría cambiar las reglas de consenso.
El reajuste no es instantáneo. Si mañana se apagara la mitad de los mineros, los bloques pasarían a salir cada veinte minutos de media hasta el siguiente reajuste, y lo que quedara del periodo tardaría el doble. En el peor caso, un periodo entero de 2016 bloques duraría cuatro semanas. Nadie decide nada: cada nodo hace la misma cuenta por su cuenta y llega al mismo resultado.
Lee en Bitcoinpedia
Pruébalo
Supón que de repente se apaga la mitad de los mineros. ¿Cuánto tardarían de media los bloques? ¿Cuántos días tardarían los 2016 bloques del periodo? Escríbelo en el explorador y mira cuánto baja la dificultad.
Piénsalo o escríbelo a mano. No guardamos lo que respondas.