Quando o sócio de uma empresa não concorda com uma mudança no negócio, ele pode deixar a sociedade e fundar uma nova firma, que pode ser semelhante à anterior ou diferente. O fork (bifurcação) de blockchains e criptomoedas funciona de forma semelhante. Se uma parte dos integrantes de uma plataforma cripto não concorda com alguma mudança, eles podem criar outro ativo digital.
No meio cripto, essa bifurcação ocorre normalmente para criar um projeto novo com características semelhantes (mas não iguais) às do original ou para implementar uma mudança drástica. Às vezes, um fork é usado também para testar um processo, mas isso é mais incomum.
O que é um fork?
Em termos de programação, um fork é basicamente a modificação do código-fonte da blockchain do projeto. A blockchain é um grande banco de dados virtual descentralizado que compila informações sobre todas as transações dos usuários de um determinado criptoativo.
Normalmente, esse código bifurcado é semelhante ao original, mas com modificações importantes, e os dois passam coexistir sem maiores problemas.
Importante dizer também que nem todos os forks são intencionais. Como os códigos desses projetos são abertos e amplamente distribuídos, uma bifurcação pode ocorrer acidentalmente quando nem todos os participantes da rede, chamados de nodes (“nós”, em português), estão replicando as mesmas informações. Essas bifurcações acidentais são normalmente identificadas e resolvidas.
Quais são os tipos de forks?
Existem dois tipos principais de fork: o hard fork e soft fork.
Hard fork
Um hard fork é uma mudança na blockchain que a torna incompatível com sua versão anterior. Se a versão mais antiga continuar em execução, ela será um protocolo diferente e com dados diferentes da versão mais recente.
Para ilustrar o procedimento podemos usar novamente o exemplo da empresa. O sócio que não concordou com a mudança proposta montou um novo negócio, com funcionários próprios (ou alguns que decidiram migrar junto com ele) e novas regras. Portanto, as duas empresas continuam existindo, mas cada uma “no seu quadrado”.
O Bitcoin passou por um hard fork em 2017. Naquela época, vários desenvolvedores se sentiram incomodados com o andamento do projeto. Segundo eles, o BTC estava se desviando da visão original de Satoshi Nakamoto, o criador (ou criadores) da moeda, e deixando de ser um sistema de pagamento barato e descentralizado. O conflito deu origem ao Bitcoin Cash (BCH).
As blockchains do BTC e do BCH eram iguais até o hard fork. A partir da cisão, no entanto, cada uma passou a ser um protocolo diferente, com nodes e regras próprias. Algumas das principais diferenças entre elas estão relacionadas à dificuldade mineração (verificação de dados e “produção” de criptos) e ao tamanho dos blocos (locais virtuais onde são registras as transações dos usuários).
Outro exemplo é o Ethereum Classic (ETC), fruto de um hard fork do Ethereum (ETH). A história foi a seguinte:
Em 2016, um hacker conseguiu desviar US$ 50 milhões em ETH de um aplicativo descentralizado construído na rede do projeto. Por causa disso, alguns desenvolvedores sugeriram restaurar a blockchain ao estado que estava antes do ataque virtual, de modo a recuperar as criptomoedas perdidas. Nem todo mundo, no entanto, concordou com a ideia. Como resultado, a rede foi dividida em Ethereum Classic (com o roubo) e Ethereum (sem o registro do roubo).
Leia mais: Ethereum 2.0: o que realmente muda na próxima grande atualização da rede?
Soft fork
Um soft fork é essencialmente o oposto de um hard fork. Nesse caso, as alterações recém-implementadas permanecem compatíveis com versões anteriores – ou seja, não houve uma bifurcação propriamente dita. Funciona mais ou menos como a atualização de algum sistema operacional, como o Windows ou o iOS.
No caso das blockchains, portanto, se um protocolo for alterado de tal forma que mude as regras, implemente uma mudança ou adicione uma função que não afeta a estrutura da rede de forma alguma, os blocos da nova versão serão aceitos pelos nós da versão antiga. Mas não o contrário: a versão mais nova rejeitaria os blocos da versão antiga.
No caso do Bitcoin, por exemplo, um soft fork super conhecido é o Segregated Witness (SegWit), que, em português, significa “Testemunha Segregada”. Em resumo, o SegWit aumenta a capacidade dos blocos do Bitcoin alterando a forma como os dados da transação são armazenados, mas sem mudar seu limite de tamanho. Na prática, é uma atualização que deixa a rede da criptomoeda bem mais rápida.
A função “Pay-To-Script-Hash” (P2SH), que aprimora o código sem alterar a estrutura, também foi adicionada com sucesso por meio de um soft fork da rede Bitcoin. Esse tipo de alteração geralmente exige apenas a atualização da maioria dos mineradores, o que a torna mais viável.