Glossário / Mineração e consenso
Dificuldade de mineração
Outros nomes: Dificuldade, Dificuldade da rede.
- O que é a dificuldade de mineração?
- A dificuldade de mineração é o botão que a rede ajusta a cada 2.016 blocos para que os blocos continuem chegando com cerca de dez minutos de intervalo, não importa quanto hashrate apareça, muito ou pouco.
A dificuldade é um único número que expressa quanto mais difícil é encontrar um bloco do que era para Satoshi em janeiro de 2009. Ela é recalculada a cada 2.016 blocos, aproximadamente duas semanas, a partir de quanto tempo os 2.016 anteriores realmente levaram, e pode variar no máximo por um fator de quatro em qualquer direção. É por isso que os blocos de dez minutos sobreviveram a um aumento de cem trilhões de vezes no poder de mineração.
Como funciona
A dificuldade é uma razão, e o protocolo a calcula apenas a partir de carimbos de data e hora, sem intervenção humana em nenhum ponto do processo.
Por baixo dela está o alvo, um número de 256 bits abaixo do qual o hash do cabeçalho de um bloco deve ficar, armazenado no cabeçalho como um campo compacto de quatro bytes chamado nBits. A dificuldade é definida como o alvo de dificuldade 1 dividido pelo alvo atual, de modo que uma dificuldade de 126 trilhões significa que um cabeçalho válido é 126 trilhões de vezes mais raro do que na primeira semana da rede. Os nós nunca verificam de fato a dificuldade; eles verificam o hash do cabeçalho em relação ao alvo. A dificuldade existe porque uma razão é legível e um limite de 256 bits não é.
O recálculo acontece em cada altura de bloco que é múltiplo de 2.016. O nó toma quanto tempo essa janela realmente levou, compara com os 20.160 minutos previstos e escala o alvo pela razão, com limites para que nenhum ajuste isolado possa ser mais de quatro vezes mais fácil nem quatro vezes mais difícil. Há um famoso erro de um a mais no cálculo: o intervalo de tempo é medido entre o primeiro e o último bloco da janela, que abrange 2.015 intervalos e não 2.016, de modo que a rede na verdade mira cerca de 10,0049 minutos por bloco. Corrigir isso seria um hard fork por causa de um erro de arredondamento, então fica como está.
A história mostra o mecanismo funcionando nas duas direções. A dificuldade ficou em 1 por quase um ano, até o primeiro recálculo no bloco 32.256, em 30 de dezembro de 2009, quando subiu para cerca de 1,18. Desde então, subiu acima de 120 trilhões. A maior queda registrada ocorreu em 3 de julho de 2021, quando a expulsão da indústria de mineração da China derrubou a dificuldade em 27,94% em um único passo, de aproximadamente 19,93 trilhões para 14,36 trilhões.
Por que isso importa quando você compra bitcoin
A dificuldade é a razão pela qual seu saque é confirmado em minutos e não em horas, e uma dificuldade desatualizada é a razão pela qual às vezes isso não acontece.
O mecanismo só corrige depois do fato. Se uma grande parcela do hashrate for desligada, os blocos continuam chegando na dificuldade antiga e levam mais de dez minutos cada, até o próximo recálculo, que pode vir até duas semanas depois. Durante essas semanas, as confirmações são mais lentas, a mempool esvazia mais devagar do que enche, e as taxas sobem porque o mesmo espaço de bloco é leiloado com menos frequência. Quem sacava de uma corretora em julho de 2021 sentiu isso diretamente. Os blocos nessa janela ficavam em média perto de catorze minutos.
O caso oposto é mais silencioso, mas mais comum. Quando novas frotas entram em operação, os blocos chegam mais rápido do que dez minutos até a dificuldade se atualizar, então as confirmações ficam por pouco tempo mais baratas e mais rápidas do que o cronograma sugere.
Vale dizer com clareza duas coisas que a dificuldade não faz. Ela não tem nenhum efeito sobre o calendário do halving, que conta blocos e não tempo, e não é um sinal de preço. A dificuldade sobe porque os mineradores compraram máquinas que eram lucrativas meses atrás. Lê-la como previsão é olhar pelo espelho retrovisor.
O recálculo de 3 de julho de 2021
O recálculo de 3 de julho de 2021 é a demonstração mais clara do mecanismo, porque o choque foi enorme e a correção foi automática.
A repressão da China tirou do ar uma grande fração da frota de mineração mundial em poucas semanas, em meados de 2021. As máquinas foram para contêineres de transporte com destino ao Texas, ao Cazaquistão e ao Paraguai, e enquanto estavam em trânsito não calcularam nenhum hash. A rede não parou nem pediu ajuda a ninguém. Ela simplesmente produziu blocos mais devagar: uma redução de 27,94% implica que a janela anterior havia ficado em média cerca de 13,9 minutos por bloco em vez de dez. No recálculo, a dificuldade caiu para 14,36 trilhões, o ritmo de dez minutos voltou em poucas horas, e os quatro ajustes consecutivos para baixo daquele verão juntos tiraram aproximadamente 45% do número. Ajustes na direção oposta apagaram toda a queda nos meses seguintes, sem que ninguém decidisse que deveriam.
Dificuldade de mineração vs ajuste de dificuldade
A dificuldade de mineração é o número; o ajuste de dificuldade é o evento que o muda. A dificuldade é um valor que se mantém constante por uma época inteira de 2.016 blocos, então cada bloco dessa época é exatamente tão difícil quanto qualquer outro. O ajuste é o recálculo que acontece na fronteira da época, e é o que os mineradores acompanham, porque é o momento em que a receita por máquina muda. Dizer que a dificuldade subiu numa terça-feira é uma forma abreviada de dizer que houve um ajuste naquela terça-feira.
Dificuldade de mineração vs limite do alvo
A dificuldade de mineração é uma conveniência para humanos; o alvo é o que o software faz cumprir. O alvo é o teto real de 256 bits abaixo do qual o hash de um bloco deve ficar, e é o que aparece em cada cabeçalho de bloco, comprimido no campo nBits. A dificuldade é derivada dele por divisão e não aparece em nenhum lugar do bloco. Quando uma manchete diz que a dificuldade subiu 5%, a mudança por trás é o alvo ficar cerca de 5% menor, e todos os mineradores do planeta precisarem, silenciosamente, de cerca de 5% mais tentativas por bloco.