Em desenvolvimento de software, uma bifurcação (fork, em inglês) é a criação de um projeto em uma direção distinta do projeto principal ou oficial a partir do código-fonte deste já existente. Esta prática é de uso comum em projetos de código fonte ou software livre. Nas redes blockchain, as bifurcações são usadas tanto para criar novos projetos partindo de um anterior, como para atualizar um projeto em questão.

As redes blockchain se regem sob umas regras codificadas no protocolo que permitem aos nodos validar blocos de transações da mesma forma e manter-se em consenso. Estas regras verificam que a estrutura do bloco e as transações incluídas em ele, como o tamanho do bloco (quantidade de espaço disponível), sejam corretas.

Em ocasiões as regras de consenso podem ser modificadas para adicionar atualizações ou proteger á rede de ataques, ou intencionalmente violadas com propósitos específicos como dar nascimento a uma nova criptomoeda. Sem importar qual seja o motivo da modificação, há duas maneiras de mudar as regras: através de uma bifurcação suave (soft fork, em inglês) ou bifurcação forte (hard fork, em inglês).

As bifurcações suaves mudam o protocolo de forma que os nodos atualizados rejeitem transações previamente válidas, mas os nodos com software antigo validam tanto as transações com formato antigo como novo, fazendo mais fácil para os nodos atualizados criar a cadeia de blocos mais longa. Este tipo de bifurcações são mais difíceis de implementar em código que as fortes já que se deve cuidar a compatibilidade com versões passadas do software, o que adiciona limitações na hora de programar.

bifurcação-blockchain-bitcoin-soft-fork

Em uma bifurcação suave de êxito se estende mais rápido a cadeia com as novas regras e, tais como nodos atualizados ou não, constroem sobre ela.

As bifurcações fortes modificam o protocolo de maneira que os nodos atualizados aceitem as transações com o novo formato, mas os nodos desatualizados as rejeitam. Nesses casos, a nova estrutura das transações pode incluir formatos previamente inválidos (por exemplo, as regras antigas permitem blocos de 1 MB e as novas de 1 a 2 MB) ou mudar o formato de forma que seja incompatíveis (por exemplo, a estrutura das direções era ‘ABC’ e agora só pode ser ‘XYZ’).

bifurcação-blockchain-bitcoin-hard-fork

Em uma bifurcação forte de êxito se estende mais rápido a nova cadeia com os nodos atualizados e os desatualizados ficam desacoplados, pudendo deixar a cadeia antiga morrer ou continuar suportando-a.

 

Tanto nos soft forks como hard forks os usuários devem participar na atualização da rede já seja através do descarregamento do novo software e lançamentos de nodos atualizados ou por meio da abstenção de fazê-lo, se assim o decidam. No entanto, as bifurcações suaves não excluem a aqueles que não atualizem, enquanto que as fortes o fazem.  Sem importar a forma em que se realize a mudança, é necessário desenvolver aplicações que tirem proveito da atualização realizada. Exemplo-chave disso é Segregated Witness ou SegWit (Testemunho Segregado), atualização que foi implementada através de um soft fork na rede Bitcoin, mas que tem demorado muito em ser implementada pelas diversas carteiras e serviços, ocasionando que suas melhoras ainda não possam ser percebidas por todos os usuários.

Quando as bifurcações se usam para atualizar a rede em questão, é necessário alcançar o limiar de adoção por parte dos nodos da rede, previamente acordado e implementado em código por os desenvolvedores do protocolo. Se pelo contrário você quiser criar uma nova criptomoeda, o consenso não é um problema. Os desenvolvedores da nova blockchain especificam os novos parâmetros e um ponto de partida com respeito á cadeia bifurcada, seja este zero (como Litecoin) ou uma altura de bloco específica (como Bcash).

No caso de bifurcações fortes, uma vez ativadas, começa uma espécie de jogo de mercado no que as duas cadeias podem competir pela supervivência, o que pode terminar em um dos seguintes cenários:

  • A cadeia antiga ou nova fica desolada e o resto permanece ativo, com os nodos e os mineiros migrados principalmente a ela. Neste cenário é possível que os mineiros que fiquem na cadeia minoritária ou demorem em mudar-se á mais longa e percam dinheiro.
  • Ambas as cadeias sobrevivem e o poder de processamento e o valor de cada criptoativo se divide conforme o determine o mercado. Exemplo de isto é a bifurcação de Ethereum e Ethereum Classic.
  • A cadeia que inicia a bifurcação é totalmente alheia á cadeia principal, o que dá vida a uma altcoin cujo nascimento não afeta necessariamente ao poder de processamento ou o valor de mercado da cadeia original. Exemplo disto é a bifurcação de Bcash (Bitcoin Cash) desde a blockchain Bitcoin.

coinmarket-ether- bifurcação

O caso da bifurcação Ethereum (ETH) – Ethereum Classic (ETC) mostrou que o poder de processamento dos mineiros se move de acordo com o preço de cada criptoativo, em busca da maximização de ganhos. Fonte: Vitalik Buterin.

Em resumo, as bifurcações suaves são difíceis de programar, reduzem as regras de consenso e sua implementação não implica a atualização por parte de todos os nodos da rede, embora seja o cenário mais desejável. Em contraste, as bifurcações fortes são mais difíceis de desenvolver em código, adicionam ou modificam as regras atuais de consenso e sua implementação compreende uma atualização obrigatória dos nodos ou a exclusão da rede de não fazê-lo; pode derivar em duas cadeias independentes.

 

 

Com informação de: bitcoin.org
Traduzido de: CriptoNoticias.