Blockchain/Nível II · Mecânica/2.3 Blocos e a cadeia/Lição 5
Ajuste de dificuldade a cada 2016 blocos
O regulador de duas semanas que mantém o relógio funcionando
MateriaisInterface de explorador de blocos mostrando histórico de dificuldadeUma calculadora para cálculos de razões
Curiosidade
- Por que a rede ajusta a dificuldade a cada duas semanas em vez de após cada bloco?
- Como um sistema descentralizado pode chegar a um acordo sobre uma correção matemática sem que uma autoridade central emita uma atualização?
- O que acontece com a velocidade de produção de blocos nos dias imediatamente seguintes a uma queda massiva na capacidade de hashing global?
Explorar
- O modelo de segurança do Bitcoin depende de um ritmo constante de aproximadamente dez minutos por bloco. Essa cadência equilibra a finalização das transações em relação ao congestionamento da rede e ao consumo de recursos. No entanto, o hardware de mineração evolui rapidamente; os ASICs se tornam exponencialmente mais eficientes com o tempo. Sem intervenção, a dificuldade computacional fixa significaria que os blocos seriam encontrados em segundos, e não em minutos, à medida que a capacidade de processamento aumenta. Tal volatilidade desestabilizaria as propriedades de segurança da cadeia e complicaria as expectativas dos usuários em relação aos tempos de confirmação.
- Para manter esse ritmo, o Bitcoin implementa um loop de feedback automático conhecido como retargeting (reajuste). A cada 2.016 blocos – um período que dura em média catorze dias – cada nó recalcula independentemente a meta da prova de trabalho. O número 2.016 é obtido multiplicando-se 14 dias por 144 intervalos de dez minutos por dia. Essa frequência alcança um equilíbrio: suficientemente curta para responder a mudanças significativas na taxa de hash, mas longa o suficiente para suavizar flutuações temporárias ou anomalias na participação da rede.
- O cálculo compara o tempo real gasto para minerar os 2.016 blocos anteriores com o tempo esperado de 20.160 minutos. A fórmula é Nova Meta = Meta Antiga × (Tempo Real / Tempo Alvo). Se os mineradores encontrarem os blocos em média mais rápido do que dez minutos, o tempo real será menor, resultando em uma fração inferior a um que reduz a meta e aumenta a dificuldade. Por outro lado, se os blocos levarem mais tempo, a meta sobe para facilitar o desafio. Esse ajuste proporcional garante que a média volte ao patamar de dez minutos.
- Para evitar volatilidade extrema causada por choques de curto prazo, o ajuste é limitado a um fator de quatro em qualquer direção por ciclo. Por maior que seja a mudança na taxa de hash, um ajuste pode no máximo multiplicar a dificuldade por quatro ou dividi-la por quatro. Esse limite evita os danos causados por timestamps distorcidos e garante mudanças graduais durante eventos dramáticos no mercado ou transições de hardware.
- Um exemplo notável ocorreu em julho de 2021, após a proibição da mineração de criptomoedas pela China. A taxa global de hash caiu drasticamente, fazendo com que os blocos fossem encontrados significativamente mais devagar do que a cada dez minutos. O ajuste subsequente na dificuldade foi a maior queda na história do Bitcoin, com redução de quase 28%, visando refletir a diminuição da capacidade computacional. Essa correção rápida fez com que o tempo médio entre blocos voltasse ao seu valor alvo em apenas um ciclo, demonstrando a capacidade de resposta desse mecanismo a choques econômicos e regulatórios do mundo real.
- Entre os ajustes, a rede opera com uma dificuldade fixa. Se a taxa de hash mudar durante essas janelas de duas semanas, os tempos entre blocos se desviarão dos dez minutos até o próximo evento de retargeting (reajuste). Esse atraso é um trade-off inerente aos ajustes periódicos; outras cadeias, por sua vez, fazem o reajuste a cada bloco, trocando a simplicidade e previsibilidade do Bitcoin por uma resposta mais rápida. Usuários e mineradores podem monitorar esse ciclo por meio de qualquer explorador de blocos, que exibe os blocos restantes até o próximo ajuste e a porcentagem estimada de mudança com base na velocidade atual de mineração.
Fatos-chave
- A dificuldade é reajustada a cada 2.016 blocos, aproximadamente a cada duas semanas.
- A fórmula de ajuste escala a meta anterior pela razão entre o tempo real transcorrido e os 20.160 minutos esperados.
- As mudanças de dificuldade são limitadas a um fator de quatro por ciclo para evitar flutuações extremas.
- Um erro de “off-by-one” no código original faz com que o cálculo utilize 2.015 intervalos, criando um viés insignificante em direção a uma dificuldade maior.
- O ajuste de julho de 2021 foi a maior queda na história do Bitcoin, chegando a quase 28%.
- Cada nó realiza esse cálculo de forma independente, garantindo consenso sem coordenação central.
Exercício nove, seis, três, um
9ReunirListe 9 ajustes de dificuldade anteriores do histórico de um explorador de blocos, indicando cada data e porcentagem de alteração.
6AgruparAgrupe os 9 em 6 por magnitude e direção: alta grande, alta moderada, alta pequena, baixa pequena, baixa moderada, baixa grande.
3DestilarReduza os 6 para 3 tipos de eventos que causam os maiores ajustes.
1CristalizarEscreva 1 frase sobre como o ciclo de duas semanas do Bitcoin equilibra a capacidade de resposta com a estabilidade em um ambiente descentralizado.
Verificação de fatos
Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.
- Bitcoin Core source code, pow.cpp (CalculateNextWorkRequired)
- A. M. Antonopoulos & D. A. Harding, Mastering Bitcoin, 3rd ed. (2023), ch. 12
- Bitcoin difficulty history, block 689,472 (July 2021)