Glossário / Protocolo e atualizações
Hard fork
- O que é um hard fork?
- Um hard fork flexibiliza ou altera as regras do bitcoin, de modo que blocos rejeitados pelo software antigo passam a ser válidos, o que significa que todo nó precisa ser atualizado ou fica para trás em uma cadeia diferente.
A compatibilidade com versões anteriores funciona em um sentido só, e um hard fork aponta no sentido errado. O software antigo trata os novos blocos como ilegais e continua construindo sua própria cadeia, de modo que, a menos que a adoção seja quase unânime, o resultado são duas criptomoedas onde havia uma. Foi assim que o Bitcoin Cash surgiu, no bloco 478.558, em 1º de agosto de 2017.
Como funciona
Um hard fork amplia o conjunto de blocos que um nó aceita, e ampliar é a direção que não pode ser escondida.
Considere uma mudança que permite um bloco de oito megabytes. Os nós atualizados aceitam blocos pequenos e grandes. Os nós não atualizados aceitam apenas os pequenos. Enquanto ninguém minerar um bloco grande, os dois grupos são indistinguíveis, e a divisão existe apenas no papel. No instante em que um minerador publica um, os grupos passam a ter pontas de cadeia diferentes e nada no protocolo vai jamais reuni-las novamente, porque nenhum dos lados está disposto a reverter um bloco que considera perfeitamente válido.
É por isso que os hard forks precisam de coordenação de um modo que os soft forks não precisam. A mudança é agendada para uma altura de bloco ou uma data de calendário, anunciada com bastante antecedência, e espera-se que todos tenham atualizado antes. Se você perder o prazo, seu nó não está apenas executando software antigo: ele está seguindo uma cadeia que as pessoas com quem você negocia abandonaram.
Um hard fork destinado a produzir uma segunda cadeia duradoura também precisa de proteção contra replay. Sem ela, uma transação assinada é válida nas duas cadeias, então um gasto em uma pode ser retransmitido na outra e gastar ali também as criptomoedas correspondentes. O Bitcoin Cash resolveu isso exigindo um novo tipo de hash de assinatura, SIGHASH_FORKID, que torna suas transações estruturalmente inválidas no bitcoin, e as do bitcoin inválidas nele. As divisões que pularam essa etapa deixaram usuários perdendo criptomoedas em replays acidentais.
O próprio Bitcoin só mudou suas regras desse modo em seus primeiros anos, sob pressão. O incidente de estouro de valor de 15 de agosto de 2010 produziu um bloco que criou 184 bilhões de bitcoins a partir de um bug aritmético, e o reparo exigiu um cliente corrigido mais uma reorganização deliberada que retrocedeu até antes desse bloco. A divisão da cadeia de março de 2013 foi resolvida com uma transição programada documentada no BIP-50. Nada desde então chegou perto, e não existe mecanismo para forçar uma: no bitcoin, um hard fork é uma proposta que só prospera se toda a economia decidir segui-la.
Por que isso importa quando você compra bitcoin
Duas perguntas práticas surgem sempre que um hard fork é anunciado, e apenas uma delas é sobre seus bitcoins.
A primeira é a custódia. Os bitcoins em uma carteira cujas chaves você guarda existem automaticamente nos dois lados de qualquer divisão, porque as duas cadeias herdam o mesmo registro até o bloco da bifurcação. Você não os reivindica, não os registra nem conecta nada a um site. Se quiser acessar o segundo ativo, importe a mesma frase de recuperação em um software que siga a segunda cadeia, e faça isso em um dispositivo que não guarde nada mais, porque esse software é escrito por pessoas em quem você não tem motivo algum para confiar.
A segunda é a sua corretora. Os bitcoins mantidos em uma plataforma são decisão da plataforma, não sua. Em 2017, algumas das corretoras que este site analisa creditaram Bitcoin Cash nos saldos dos clientes, outras habilitaram a negociação semanas depois e outras nunca o listaram, tudo isso enquanto depósitos e saques estavam suspensos. Nada disso é contratual em lugar algum. Se uma divisão importa para você, os bitcoins precisam estar fora da plataforma antes.
A camada de golpes é pior que o risco do protocolo. Airdrops falsos de bifurcações são um dos padrões mais antigos do nosso guia de golpes: um site anunciando uma nova cadeia, um formulário de reivindicação e um campo para as palavras da sua frase de recuperação. Nenhuma divisão jamais exigiu isso. Qualquer coisa que peça uma frase de recuperação para liberar criptomoedas bifurcadas está roubando os bitcoins originais.
Bitcoin Cash, o hard fork que realmente aconteceu
O Bitcoin Cash é o estudo de caso claro porque tudo o que ele fez foi publicado com antecedência e tudo o que ele precisava já tinha dado errado em outro lugar primeiro.
A especificação definiu um horário de ativação em 1º de agosto de 2017 e uma regra de que o primeiro bloco depois dele devia ultrapassar um megabyte, garantindo a divisão em vez de deixá-la ao acaso. O bloco 478.558 foi esse bloco. As novas regras elevaram o limite base para oito megabytes, recusaram o SegWit e adicionaram o SIGHASH_FORKID para que as duas cadeias nunca pudessem repetir as transações uma da outra.
A lição duradoura é o que aconteceu depois. Depois de estabelecer que um grupo pode sair com uma cópia do registro, o próprio Bitcoin Cash sofreu outro hard fork por uma facção que discordava de seu rumo, e as cadeias sucessoras continuaram se dividindo desde então. Um hard fork não é um evento único na vida de um projeto; é um precedente que a próxima discordância pode invocar.
Hard fork vs altcoin
Um hard fork herda um registro; uma altcoin começa com um registro vazio. A Litecoin foi lançada como uma cadeia própria sem saldo algum, então ninguém acordou sendo dono de nada. O Bitcoin Cash foi lançado com todos os saldos de bitcoin existentes no bloco 478.558 já creditados em sua cadeia, e por isso os detentores foram subitamente informados de que possuíam algo. Depois da divisão, a distinção deixa de importar tecnicamente, já que ambos são ativos separados com regras separadas e preços separados, mas importa inteiramente para como as criptomoedas foram distribuídas.
Hard fork vs soft fork
A diferença é a direção, e a direção decide quem é obrigado a agir. Um hard fork torna válidos blocos que antes eram inválidos, então todo nó precisa se atualizar ou sair da cadeia em que está o resto da economia. Um soft fork torna inválidos blocos que antes eram válidos, então um nó não atualizado continua seguindo a mesma cadeia sem perceber que algo mudou. Uma exige ação universal em um prazo; a outra não pede nada de quem não está minerando.