Vou explicar aqui neste tópico de forma simplificada o que significam os termos soft fork e hard fork quando estamos falando de blockchain.
O que é um fork?
Fork é um conceito muito conhecido na área de programação.
O termo, como não era de se estranhar, acabou chegando e tomando conta também do mundo de criptomoedas.
O nome talvez não seja tão explicativo quanto pareça, afinal fork significa “garfo” em inglês, e a princípio isto não explica nada.
Apesar de alguns termos terem uma tradução direta para o português, este é um dos que eu nunca vi (nem ouvi) ninguém usando a tradução direta.
Na visão de um programador é meio estranho ouvir algo como “Haverá um garfo do projeto”.
Para simplificar: O nome fork se dá pelo formato do garfo, e não pela sua utilidade.
O garfo tem um tronco central e único, e ao chegar na ponta há uma ramificação (divisão do tronco em ramificações menores).
Geralmente programas de computador começam a ser desenvolvidos por um grupo, ou uma pessoa.
Ao longo do seu desenvolvimento várias decisões precisam ser tomadas para encaminhar o projeto para o seu verdadeiro objetivo.
O que acontece é que em muitos casos os próprios desenvolvedores discordam de como o projeto deve ser continuado, e neste momento pode acontecer um fork.
Há uma divisão (ou cópia) do projeto original (que seria o tronco), e a partir deste momento ambos os projetos seguem caminhos diversos (suas ramificações).
E nas criptomoedas?
Se você já assistiu o vídeo aqui da tribo sobre blockchain, já deve ter entendido um pouco sobre como os mineradores mantém a sincronia e integridade das transações através do processo de mineração.
Portanto todos os mineradores precisam obedecer as mesmas regras e chegar as mesmas conclusões para que o processo seja confiável. Estas regras que permitem o consenso entre os mineradores são feitas através de um protocolo.
O resultado da mineração é a produção de mais blocos encadeados na blockchain, e esta base de dados chamada de blockchain é guardada no computador de cada minerador.
Algo importante a se considerar é que o código do software que os mineradores utilizam pode sofrer atualizações com o tempo, principalmente para arrumar problemas (bugs) detectados e corrigir diversos tipos de limitações que vão sendo descobertas conforme a rede recebe mais transações.
Estas mudanças no código do software podem gerar dois tipos de forks: soft fork e hard fork.
Qual a diferença entre Soft fork e Hard fork?
Em inglês, soft é algo mais suave, e hard é o oposto: algo mais brusco ou radical.
Um soft fork se dá quando a mudança no código que é usado pelos mineradores oferece compatibilidade com as versões anteriores, e por este motivo é possível que mineradores com códigos diferentes ainda trabalhem em harmonia mantendo a mesma cópia da blockchain.
Para este software novo, blocos existentes anteriores ao hard fork são considerados inválidos, mas para o software antigo, tanto os blocos novos quanto os anteriores são válidos.
A idéia é que ao longo do tempo, todos os mineradores atualizem suas versões, e que a rede continue funcionando sem qualquer impacto.
Já o hard fork acontece quando uma modificação no código propõe uma mudança mais radical na forma como os blocos são minerados/gerados, de forma que os blocos produzidos pelo software novo não possam ser validados por mineradores que utilizam o software anterior.
A partir do momento em que um minerador decide utilizar este novo software incompatível, na prática a base de dados anterior (blockchain) é ramificada.
Mineradores com o novo código começarão a manter uma blockchain que a partir deste momento será diferente da original, o que na prática significa dar origem a uma nova rede e nova moeda: Hard fork.
Os mineradores da rede anterior que decidirem não migrar para usar o código incompatível, continuarão mantendo a blockchain anterior, que seguirá seu rumo como se nada tivesse acontecido.
Algo que é interessante de saber é que no momento do fork todas as pessoas que tiverem uma certa quantidade de moedas na blockchain automaticamente também terão a mesma quantidade de moedas na nova ramificação.
Ps: Se você não sabia que suas moedas ficam na blockchain, veja este tópico aqui.
Isto foi exatamente o que aconteceu nos casos dos hard forks mais recentes: Bitcoin Cash e Bitcoin Gold.
Lembre-se: apesar de haver uma certa “duplicação” de moedas no momento do fork, as moedas terão valores diferentes no mercado. O valor de uma moeda é, além de outras coisas, definido pela sua confiabilidade, e por isso é muito difícil de prever o valor de uma moeda após um hard fork.
Muitas pessoas ao saber que um hard fork se aproxima decidem se posicionar (comprar moedas), para se beneficiar desta consequente duplicação, e garantir algumas moedas de graça na nova blockchain.
Esta é uma explicação simplificada do que hard fork e soft fork significam quando falamos de blockchain.
E você? Já conhecia os termos? Tem algo para acrescentar sobre o assunto?
Fique a vontade para responder o tópico e expôr o seu ponto de vista.