09 / 7362016

Difficulty Adjustment

ajuste de la dificultad de minería

Cómo Bitcoin adapta el esfuerzo de minado para que, a largo plazo, aparezca un bloque nuevo aproximadamente cada diez minutos.

Difficulty Adjustment cambia automáticamente la dificultad de minar un bloque. Si los mineros encuentran bloques demasiado deprisa, las reglas dificultan la búsqueda; si tardan demasiado, la facilitan. Así Bitcoin puede mantener un ritmo aproximado incluso cuando cambia mucho la potencia de cálculo. Cada nodo que valida todas las reglas comprueba el ajuste del mismo modo: no lo decide un administrador.

Imagina que se incorporan muchas máquinas nuevas a la minería. Juntas prueban más cálculos por segundo y, con la misma dificultad, encuentran bloques más rápido en promedio. Un bloque agrupa transacciones confirmadas y, al crearlo, también pueden emitirse nuevos bitcoins. Sin el ajuste, unas máquinas más potentes acelerarían esa emisión. Los mineros calculan repetidamente un hash, una huella numérica de la cabecera del bloque. Tienen éxito cuando el resultado es lo bastante pequeño. Un umbral más exigente reduce la probabilidad de acertar en cada intento, por lo que hace falta más trabajo en promedio. [3]

En la red principal de Bitcoin, llamada mainnet, la dificultad se recalcula cada 2 016 bloques. A una media de diez minutos por bloque, son unas dos semanas. Pero no hay una alarma: el ajuste se activa al alcanzar el número de bloque correspondiente, su altura. Si muchos mineros apagan sus máquinas de repente, los bloques restantes pueden tardar más. La red termina primero el período con la dificultad anterior; en mainnet no existe una reducción de emergencia inmediata. [1] [2]

Supongamos que el tiempo usado para el cálculo es de 10 días, en vez de los 14 previstos. El período siguiente será más difícil: la dificultad aumenta aproximadamente en la proporción de 14 a 10, es decir, un 40 %. Si el período medido tarda 28 días, la dificultad se reduce aproximadamente a la mitad. Estos ejemplos simplificados omiten los redondeos y suponen que no se alcanza la dificultad mínima permitida. Si la potencia de cálculo permanece igual después, el nuevo ajuste aproxima de nuevo a diez minutos el tiempo esperado entre bloques. [1] [2]

Diez minutos es una media a largo plazo, no un tiempo de espera prometido. Dos bloques pueden llegar casi seguidos y otro tardar bastante más. Tampoco es seguro que tu transacción entre en el siguiente bloque: importan su comisión y las demás transacciones pendientes. El ajuste no controla el precio de BTC ni garantiza ganancias a los mineros. Tampoco cambia la cantidad de nuevos bitcoins permitida por bloque. Su reducción periódica a la mitad, el Halving, sigue otra regla. [2] [3]

Las reglas utilizan un umbral numérico llamado target. Un target más pequeño hace la minería más difícil; la cifra denominada dificultad expresa esa relación al revés. El nuevo target es el anterior multiplicado por el tiempo medido y dividido entre el tiempo objetivo de 1 209 600 segundos. Antes del cálculo, el tiempo medido se limita a un mínimo de un cuarto y un máximo de cuatro veces el tiempo objetivo. Así se acota el tamaño de cada ajuste. Además, el target no puede superar el máximo permitido, powLimit. Se guarda en la cabecera con la representación compacta nBits, de precisión limitada; por eso los porcentajes de los ejemplos son aproximados. [1] [2]

Bitcoin Core compara la marca de tiempo de la cabecera del último bloque del período terminado con la del primero. Entre 2 016 bloques hay 2 015 intervalos; las reglas conservan esta particularidad histórica. Los mineros escriben esas marcas de tiempo dentro de los límites de las reglas de la red. No son mediciones exactas del momento del hallazgo ni Median Time Past, otro valor temporal calculado a partir de bloques anteriores. No necesitas conocer este detalle para entender el propósito del ajuste, pero sí importa al reproducir el cálculo exacto. [1]

Las webs suelen mostrar una estimación del próximo cambio de dificultad. Hasta que acaba el período siguen llegando bloques, por lo que la estimación puede variar. Puedes verificar un ajuste ya realizado con tu propio nodo: comparar las marcas de tiempo de los bloques que delimitan el período, convertir sus nBits en targets numéricos y repetir el cálculo con sus límites y redondeos. Cada Full Node, un nodo que comprueba por sí mismo las reglas de Bitcoin, verifica el target exigido al aceptar un bloque. Este procedimiento corresponde a mainnet; las redes de prueba pueden tener reglas diferentes. [1] [2]

Para obtener la imagen más completa, lee esta entrada junto con Proof of Work, Minería, Timechain / Blockchain, Block Subsidy. También enlazan con esta entrada Timechain / Blockchain, Proof of Work, Minería, Halving.

DOC · 001Bitcoin Core v29.0: retargetFuente primaria DOC · 002Bitcoin Core v29.0: network parametersFuente primaria DOC · 003Bitcoin Developer Guide — Proof of Work and difficultyFuente primaria
Revisado: Fuentes primero · No es asesoramiento financiero