Na tecnologia blockchain, hard forks e soft forks são dois métodos distintos para atualizar e aprimorar protocolos de rede. Eles apresentam diferenças significativas na implementação, afetando a estrutura e operação da rede blockchain.
Hard Fork Um "hard fork" refere-se a uma mudança nas regras onde a nova versão da rede não é mais compatível com a versão antiga, resultando em dois ramos da blockchain (paralelos e que não se afetam mutuamente).
Soft Fork Um "soft fork" refere-se a uma mudança nas regras onde os nós que implementam as novas regras ainda podem interagir com nós que não adotaram as mudanças. A nova versão da rede permanece compatível com a versão antiga.
Hard Fork | Soft Fork |
---|---|
Os novos e antigos blocos seguem seus próprios protocolos | Os novos e antigos blocos compartilham um único protocolo |
Novos e antigos não são compatíveis entre si | Novos e antigos são compatíveis |
Exemplo: DAO Hard Fork de 2016 | Exemplo: Segwit Fork na rede Bitcoin em 2017 |
Análise da Situação
Por exemplo, se metade dos nós da rede quiser expandir o tamanho do bloco de 2MB para 3MB, o envio de um bloco de 3MB para nós da versão antiga resultará na rejeição, pois os nós da versão antiga têm uma regra que especifica 2MB como o tamanho máximo do bloco. Nesse cenário, o protocolo da rede se divide em dois, cada um utilizando diferentes moedas. Todos os saldos das contas são clonados dos registros originais para a nova cadeia. Usuários com 20BTC antes do fork terão uma conta com 20BTC e outra com 20 novos BTC em ambas as cadeias.
Por exemplo, se o tamanho original do bloco é de 2MB, e agora metade dos nós da rede implementa uma nova restrição de 1MB para o tamanho do bloco e trata blocos maiores como inválidos, os nós da versão antiga ainda podem receber ou transmitir blocos. Nesse caso, a nova rede pode abranger todos os nós sem ser limitada pelas versões das regras. O Segregated Witness (SegWit) do Bitcoin é um exemplo de um soft fork. Este fork introduziu de maneira inteligente um novo formato para blocos e transações. Nós que não foram atualizados podem continuar a receber informações sobre os blocos, mas não participam na validação das novas transações.