Compartilhe este artigo

Garfo duro vs. garfo macio

Os Eventos hard fork e soft fork referem-se ao processo de implementação de novas alterações no código de um projeto blockchain.

bitcoin forks

Os forks, ou a ameaça deles, parecem ser uma característica estabelecida no cenário das Criptomoeda . Mas o que são eles? Por que eles são tão importantes? E qual é a diferença entre um hard fork e um soft fork?

Um “fork”, em termos de programação, é uma modificação do código-fonte aberto. Normalmente, o código bifurcado é semelhante ao original, mas com modificações importantes, e as duas “pontas” coexistem confortavelmente. Às vezes, um fork é usado para testar um processo, mas com criptomoedas , é mais frequentemente usado para implementar uma mudança fundamental ou para criar um novo ativo com características semelhantes (mas não iguais) ao original.

A História Continua abaixo
Não perca outra história.Inscreva-se na Newsletter The Protocol hoje. Ver Todas as Newsletters

Nem todos os garfos são intencionais. Com uma base de código de código aberto amplamente distribuída, uma bifurcação pode acontecer acidentalmente quando nem todos os nós estão replicando as mesmas informações. Normalmente, esses tipos de garfos acidentais são identificados e resolvidos. A maioria dos forks de Criptomoeda ocorre devido a divergências sobre características incorporadas, como exploraremos a seguir.

Uma coisa a ter em mente com relação aos garfos é que eles têm uma “história compartilhada”. O registro das transações em cada uma das cadeias (antiga e nova) é idêntico antes da divisão.

Garfos duros

Existem dois tipos principais de fork de programação:

  • Garfo duro.
  • Garfo macio.

Um hard fork é uma mudança em um protocolo blockchain que torna versões mais antigas inválidas. Se as versões mais antigas continuarem em execução, elas acabarão com um protocolo diferente e com dados diferentes da versão mais recente. Isso pode levar a confusão significativa e possíveis erros.

Com o Bitcoin , seria necessário um hard fork para alterar parâmetros de definição como o tamanho do bloco, o algoritmo de dificuldade de mineração, limites de informações adicionais que podem ser adicionadas, ETC Uma alteração a qualquer uma destas regras faria com que os blocos fossem aceites pelo novo protocolo, mas rejeitados pelas versões mais antigas, e poderia levar a problemas graves – possivelmente até à perda de fundos.

Por exemplo, se o limite de tamanho do bloco fosse aumentado de 1 MB para 4 MB, um bloco de 2 MB seria aceito pelos nós que executam a nova versão, mas rejeitado pelos nós que executam a versão mais antiga.

Digamos que este bloco de 2 MB seja validado por um nó atualizado e adicionado ao blockchain. E se o próximo bloco for validado por um nó executando uma versão mais antiga do protocolo? Ele tentará adicionar seu bloco ao blockchain, mas detectará que o bloco mais recente não é válido. Assim, ele irá ignorar esse bloco e anexar sua nova validação ao ONE.

De repente, você tem dois blockchains, um com blocos de versões mais antigas e mais recentes e outro apenas com blocos de versões mais antigas. Qual cadeia cresce mais rápido dependerá de quais nós validarão os próximos blocos, e pode acabar havendo divisões adicionais. É viável que as duas (ou mais) cadeias possam crescer em paralelo indefinidamente.

Este é um hard fork e potencialmente confuso. Também é arriscado, pois é possível que os bitcoins gastos em um novo bloco possam ser gastos novamente em um bloco antigo (já que comerciantes, carteiras e usuários que executam o código anterior não detectariam os gastos no novo código, que consideram inválidos).

A única solução é abandonar uma agência em favor da outra, o que envolve a perda de alguns mineradores (as transações em si não seriam perdidas, seriam apenas realocadas). Ou todos os nós precisariam mudar para a versão mais recente ao mesmo tempo, o que é difícil de conseguir em um sistema descentralizado e amplamente difundido.

Ou então, divisões de Bitcoin , o que aconteceu (olá, Bitcoin Cash ).

Garfo macio

Um soft fork é essencialmente o oposto de um hard fork, em que as alterações recém-implementadas permanecem compatíveis com versões anteriores.

Por exemplo, se um protocolo for alterado de forma a tornar as regras mais rígidas, implementar uma mudança cosmética ou adicionar uma função que não afete a estrutura do blockchain de forma alguma, então os novos blocos de versão serão aceitos pelos nós da versão antiga. Porém, não o contrário: a versão mais recente e “mais rígida” rejeitaria blocos de versões antigas.

No Bitcoin, os mineradores da versão antiga perceberiam que seus blocos estavam sendo rejeitados e seriam forçados a atualizar. À medida que mais mineradores atualizam para a versão mais recente, a cadeia com blocos predominantemente novos se torna a mais longa, o que, por sua vez, aumenta a quantidade de blocos órfãos de versões antigas que são criados e faz com que mais mineradores atualizem. Este processo garante que o sistema se corrija automaticamente. Como os novos blocos de versão são aceitos pelos nós antigos e atualizados, os novos blocos de versão eventualmente WIN.

Por exemplo, digamos que a comunidade decidiu reduzir o tamanho do bloco para 0,5 MB de seu limite teórico atual de 4 MB (com blocos SegWit ). Os nós da nova versão rejeitariam blocos com o limite antigo e construiriam sobre o bloco anterior (se fosse extraído com uma versão atualizada do código), o que causaria uma bifurcação temporária.

Este é um soft fork e já aconteceu várias vezes. Inicialmente, o Bitcoin T tinha limite de tamanho de bloco. A introdução do limite de 1 MB foi feita através de um soft fork, já que a nova regra era “mais rígida” que a ONE.

A função pay-to-script-hash , que aprimora o código sem alterar a estrutura, também foi adicionada com sucesso por meio de um soft fork. Este tipo de alteração geralmente requer apenas a atualização da maioria dos mineiros, o que a torna mais viável e menos perturbadora.

Os soft forks não apresentam o risco de gasto duplo que assola os hard forks, uma vez que os comerciantes e usuários que executam nós antigos lerão blocos de versões novas e antigas.

Para exemplos de mudanças que exigiriam um soft fork, consulte a “ lista de desejos do softfork ”.

Noelle Acheson

Noelle Acheson is host of the CoinDesk "Markets Daily" podcast, and author of the Crypto is Macro Now newsletter on Substack. She is also former head of research at CoinDesk and sister company Genesis Trading. Follow her on Twitter at @NoelleInMadrid.

Noelle Acheson