O que é hard fork, soft fork, chain splits?

Forks são atualizações ou mudanças na rede blockchain. Um sistema blockchain (como o próprio nome diz: “cadeia de blocos”) consiste em uma sequência de blocos interligados, onde cada bloco contém informações sobre as transações efetuadas na rede.

Imagine agora que essa cadeia de blocos teve uma divisão em duas partes, onde uma parte continuou a cadeia com algumas regras específicas enquanto outra parte continuou a cadeia com outras regras:

ilustração de fork de uma rede blockchain

Essa é a definição mais clara de fork.

Quando os Forks ocorrem e por quê?

Forks ocorrem em diversas situações, como:

  1. Atualizações de Protocolo: Quando desenvolvedores implementam novos recursos ou melhorias. Nesse caso, não necessariamente a rede irá se dividir em duas partes, mas haverá uma mudança de regras a partir de algum bloco específico.
  2. Divergências na Comunidade: Quando há desacordos significativos na comunidade sobre a direção da blockchain. Nesse caso, parte da comunidade segue em uma direção e a outra parte segue em outra.
  3. Correções de Segurança: Em resposta a vulnerabilidades de segurança descobertas decide-se implementar atualizações grandes que exigem forks. Nesse caso, não necessariamente a cadeia vai se dividir em duas.
  4. Experimentação: Para testar novas funcionalidades ou conceitos em uma blockchain separada.

Consequências

  • Divisão da Comunidade: Forks podem resultar em duas comunidades e blockchains separadas, cada uma com suas próprias regras e características.
  • Implicações Econômicas: No caso de criptomoedas, um hard fork pode resultar em duas moedas distintas. Os detentores de moedas na blockchain original geralmente recebem uma quantidade igual de moedas na nova cadeia.
  • Segurança: Forks podem afetar a segurança da rede, especialmente em casos de hard forks, onde a potência de hash pode ser dividida entre duas cadeias.

Diferenças entre hard fork e soft fork

Quando uma atualização feita na rede não altera a compatibilidade com o passado, ou seja, as novas regras são compatíveis com as regras anteriores, tem-se um soft fork. Um exemplo desse tipo de atualização é diminuir o número de transações armazenadas por bloco, pois quando se aumenta a rigidez nas regras, não se tem uma quebra de compatibilidade com o passado.

Uma quebra da rede (chain split) irá ocorrer somente se parte da rede continuar trabalhando com as regras antigas, pois assim o sistema terá duas novas cadeias, validando blocos de diferentes regras. Esse tipo de split costuma ser temporário, pois a cadeia com maior hash power (poder computacional) costuma se tornar a única cadeia.

Quando uma atualização na rede altera a compatibilidade com o passado, tem-se um hard fork. Esse tipo de atualização pode, por exemplo, diminuir a rigidez nas regras, como aceitar blocos maiores (com mais transações por bloco). Nesse caso, como não há compatibilidade com o passado, o fork é mais “pesado” (a mudança é mais drástica), então o que ocorre na prática é que geralmente parte dos mineradores não aceitam a mudança, criando um split na rede, o que acaba originando uma nova cadeia permanente com um blockchain independente, ou seja, uma nova criptomoeda.

Em resumo:

Soft Forks

  • Definição: Um soft fork é uma mudança compatível com versões anteriores. Isso significa que os novos blocos gerados sob as novas regras são reconhecidos como válidos pelos nós que ainda não foram atualizados para a nova versão do software.
  • Como Ocorrem: Soft forks geralmente ocorrem quando a maioria dos mineradores atualiza seu software para uma nova versão que impõe regras adicionais para a validação de blocos. Como resultado, blocos que não estão em conformidade com as novas regras são rejeitados pelos nós atualizados, mesmo que sejam válidos segundo as regras antigas.
  • Exemplo: Um exemplo de soft fork é a implementação do Segregated Witness (SegWit) no Bitcoin, que aumentou a capacidade do bloco sem alterar seu tamanho, ao modificar a forma como os dados de transação eram armazenados.

Hard Forks

  • Definição: Um hard fork é uma mudança incompatível com versões anteriores. Isso cria uma divisão permanente na blockchain, pois os blocos gerados segundo as novas regras não são reconhecidos como válidos pelos nós que permanecem na versão antiga.
  • Como Ocorrem: Hard forks acontecem quando os desenvolvedores decidem introduzir mudanças significativas na blockchain que não são compatíveis com as regras existentes. Isso geralmente requer que todos os nós da rede atualizem seu software para continuar participando.
  • Exemplo: Um exemplo famoso de hard fork foi a separação do Ethereum e Ethereum Classic. O Ethereum realizou um hard fork para reverter as consequências do ataque DAO, enquanto o Ethereum Classic continuou na cadeia original sem as reversões de transação. Outro exemplo foi a divisão da comunidade bitcoin, que acabou gerando duas cadeias e duas criptomoedas distintas: Bitcoin e Bitcoin Cash.

Leia também:

Voltar para: Curso completo de Bitcoin e Blockchain