Glossário / Protocolo e atualizações
Soft fork ativado por mineradores
Outros nomes: MASF.
- O que é um soft fork ativado por mineradores?
- Um soft fork ativado por mineradores entra em vigor quando uma supermaioria dos blocos minerados sinaliza a favor dela, usando o campo de versão do bloco como um voto contado automaticamente por cada nó.
Especificação no BIP-9.
Os mineradores não estão decidindo se uma regra é boa. Estão declarando quando há mineradores suficientes prontos para aplicá-la, de modo que o endurecimento não torne órfão o trabalho honesto. Nos termos do BIP-9, o limite é de 1.916 dos 2.016 blocos em um período de dificuldade, o que equivale a 95%, e a contagem recomeça do zero a cada período até que o limite seja atingido.
Como funciona
A sinalização reutiliza um campo que já existe em todo cabeçalho de bloco, então nenhum novo tipo de mensagem ou registro é necessário.
O método original, introduzido com o BIP-34 em 2013, simplesmente aumentava o número da versão do bloco e contava para trás: uma regra se tornava obrigatória quando 950 dos últimos 1.000 blocos traziam a versão mais alta, após uma etapa de 750 de 1.000 durante a qual ela obrigava apenas os blocos que a declaravam. Funcionou, mas as versões tinham de ser implantadas estritamente em sequência, então duas propostas nunca podiam estar em curso ao mesmo tempo.
O BIP-9 substituiu o contador por 29 bits independentes. Cada proposta reivindica um bit e um horário de início, os mineradores ativam esse bit nos blocos que mineram, e cada nó contabiliza o bit ao longo de um período de dificuldade completo de 2.016 blocos. Atingir o limite faz a implantação passar ao estado de travada, e a aplicação começa um período completo depois, dando a quem não atualizou cerca de mais duas semanas. Uma implantação que nunca atinge o limite expira no seu prazo e o bit fica livre para reutilização.
Duas variantes têm importância histórica. O BIP-91 comprimiu todo o processo a 80% de 336 blocos para que a sinalização do SegWit pudesse se tornar obrigatória rapidamente; ela foi travada no bloco 476.768 em 20 de julho de 2017 e começou a ser aplicada no bloco 477.120 em 23 de julho de 2017. O Speedy Trial, lançado no Bitcoin Core 0.21.1 em 1º de maio de 2021, manteve a contagem do BIP-9 mas baixou o limite para 1.815 blocos de 2.016, limitou a tentativa a cerca de três meses e separou a trava da ativação ao fixar de antemão uma altura mínima de ativação.
Onde você vê isso
Os exploradores de blocos exibem o campo de versão, geralmente como um valor hexadecimal de oito caracteres, e durante uma implantação em curso mostram qual bit está ativado. Uma versão que começa com 0x20 significa que o bloco usa bits de versão; os bits baixos são os sinais individuais.
A sinalização também deixa um rastro mais simples na transação coinbase, onde os pools escrevem texto livre. A sequência "/P2SH/" marcou o apoio a pay to script hash em 2012, e "NYA" marcou o Acordo de Nova York em 2017. Esse campo é decoração e não protocolo, mas muitas vezes é onde uma discussão se torna visível primeiro.
Para quem mantém bitcoin, o que se deve tirar de um percentual de sinalização é o que ele não é. Não é um referendo, não é ponderado pela propriedade, e um pool que sinaliza um bit está falando em nome de poder de hash que outras pessoas alugaram para ele. Uma regra pode chegar a 95% e ainda ser impopular, e uma regra pode ser aplicada pelos usuários sem nenhum apoio dos mineradores.
Soft fork ativado por mineradores vs soft fork ativado por usuários
As duas respondem a perguntas diferentes. Um soft fork ativado por mineradores pergunta quando a aplicação deve começar e deixa o poder de hash definir a data. Um soft fork ativado por usuários afirma primeiro a data e deixa os mineradores cumpri-la ou ter seus blocos rejeitados. Em 2017 as duas estavam sobre a mesa ao mesmo tempo, e a sequência é o ponto: a via dos mineradores estava parada havia meses, um prazo aplicado pelos usuários foi agendado, e a via dos mineradores se completou semanas depois de esse prazo se tornar crível.