Ua wehewehe ʻia nā ʻōpala paʻa a me nā ʻōpala palupalu: ka hoʻomaopopo ʻana i nā mea hou pūnaewele
Hoʻohou by ʻO Melhores Corretores
Ke noi ʻia ʻoe e hōʻano hou i ka polokalamu noi de bancos digitais em seu smartphone, provavelmente nem pensa duas vezes. Talvez o seu telefone faça a atualização automaticamente sem você nem perceber. É um processo necessário, afinal de contas – se você não instalar a versão mais recente do software, corre o risco de ser negado o acesso aos serviços.
Mas em crypto-moni de código aberto, as coisas são muito diferentes. Você não precisa ler cada linha de código que sustenta o Bitcoin para usá-lo, mas ter a opção de fazê-lo é importante. Veja bem, não há hierarquia aqui, e nenhum banco que possa simplesmente enviar atualizações e mudar as coisas como quiser. Como resultado, implementar novos recursos em redes blockchain pode ser um desafio.
Neste artigo, vamos explorar como as redes de criptomoedas podem ser atualizadas, apesar da falta de uma autoridade central. Para fazer isso, elas usam dois mecanismos diferentes: ʻōpuʻu ʻoʻoleʻa e nā lāʻau palupalu.
Quem toma as decisões em uma rede blockchain?
Para entender como os forks funcionam, é importante primeiro entender os participantes envolvidos no processo de tomada de decisão (ou governança) da rede.
ʻAʻole Bitcoin, pode-se fazer uma distinção ampla entre três subsets de participantes – desenvolvedores, mineradores e usuários de nós completos. Esses são os grupos que realmente contribuem para a rede. Nós leves (ou seja, as carteiras em seus telefones, laptops, etc.) são usados extensivamente, mas eles não são realmente “participantes” no que diz respeito à rede.
nā mea hoʻomohala
Os desenvolvedores são responsáveis por criar e atualizar o código. Para uma moeda típica, qualquer pessoa pode contribuir para esse processo. O código está disponível publicamente, então eles podem enviar alterações para que outros desenvolvedores as revisem.
nā miners
Os mineradores são os que garantem a segurança da rede. Eles executam o código da criptomoeda e dedicam recursos para adicionar novos blocos ao blockchain. Na rede do Bitcoin, por exemplo, eles fazem isso através do Hōʻike o ka Hana. Eles são recompensados por seus esforços na forma de uma recompensa de bloco.
Usuários de nós completos
Os nós completos são a espinha dorsal da rede de criptomoedas. Eles validam, enviam e recebem blocos e transações e mantêm uma cópia do blockchain.
Muitas vezes, você encontrará sobreposição dessas categorias. Você poderia, por exemplo, ser um desenvolvedor e um usuário de nó completo, ou um minerador e usuário de nó completo. Você poderia ser todos os três ou nenhum. Na verdade, muitos dos que consideramos usuários de criptomoedas não assumem nenhum desses papéis. Em vez disso, optam por usar nós leves ou serviços centralizados.
Olhando para as descrições acima, poderíamos argumentar fortemente que os desenvolvedores e mineradores tomam as decisões para a rede. Os desenvolvedores criam o código – sem eles, não haveria software para executar e ninguém para corrigir bugs ou adicionar novos recursos. Os mineradores garantem a segurança da rede – sem uma competição saudável de mineração, a cadeia poderia ser sequestrada ou simplesmente parar.
No entanto, se essas duas categorias tentassem impor suas vontades ao resto da rede, não terminaria muito bem. Para muitos, o poder real está concentrado nos nós completos. Isso se deve em grande parte ao fato de que a rede é hōʻalo-ma, o que significa que os usuários podem escolher qual software estão executando.
Os desenvolvedores não estão invadindo sua casa e coagindo você a baixar os binários do Bitcoin Core à força. Se os mineradores adotarem uma atitude de “do meu jeito ou da estrada” para impor uma mudança indesejada aos usuários, bem, os usuários simplesmente escolherão a estrada.
Essas partes não são soberanos todo-poderosos – são provedores de serviços. Se as pessoas decidirem não usar a rede, então a moeda perderá valor. A perda de valor afeta diretamente os mineradores (suas recompensas valem menos quando denominadas em dólares). Quanto aos desenvolvedores, eles podem ser simplesmente ignorados pelos usuários.
Veja bem, não é como se o software fosse proprietário. Você pode fazer as edições que quiser fazer e, se os outros executarem seu software modificado, todos vocês podem se comunicar. Nesse caso, você faz um fork do software e cria uma nova rede no processo.
O que é um fork?
Um fork de software ocorre em um ponto em que o software é copiado e modificado. O projeto original continua existindo, mas agora é separado do novo, que segue uma direção diferente. Suponha que a equipe do seu site de conteúdo favorito sobre criptomoedas tenha uma grande discordância sobre como proceder. Uma parte da equipe poderia replicar o site em um domínio diferente. Mas, daqui para frente, eles publicariam tipos de conteúdo diferentes dos originais.
Os projetos se baseiam em um terreno comum e compartilham uma história. Assim como uma única estrada que mais tarde se divide em duas, agora há uma divergência permanente em seus caminhos.
Note que esse tipo de coisa acontece muito em projetos de código aberto e vem acontecendo há muito tempo antes do surgimento do Bitcoin ou do Ethereum. No entanto, a distinção entre hard forks e soft forks é quase exclusiva do espaço blockchain. Vamos discutir isso um pouco mais.
Hard Forks vs. Soft Forks
Apesar de terem nomes semelhantes e, em última análise, servirem ao mesmo propósito, hard forks e soft forks diferem significativamente. Vamos dar uma olhada em cada um deles.
O que é um hard fork?
Hard forks são atualizações de software incompatíveis com versões anteriores. Normalmente, isso ocorre quando os nós adicionam novas regras de uma forma que entra em conflito com as regras dos nós antigos. Os novos nós só podem se comunicar com outros que operam na nova versão. Como resultado, o blockchain se divide, criando duas redes separadas: uma com as regras antigas e outra com as novas regras.
Então agora existem duas redes funcionando em paralelo. Ambas continuarão a propagar blocos e transações, mas não estão mais trabalhando no mesmo blockchain. Todos os nós tinham um blockchain idêntico até o ponto do fork (e essa história continua), mas eles terão blocos e transações diferentes depois.
Por causa dessa história compartilhada, você acabará com moedas em ambas as redes se as estivesse mantendo antes do fork. Suponha que você tinha 5 BTC quando ocorreu um fork no Bloco 600.000. Você poderia gastar esses 5 BTC na cadeia antiga no Bloco 600.001, mas eles não foram gastos no Bloco 600.001 da nova blockchain. Assumindo que a criptografia não mudou, suas chaves privadas ainda possuem cinco moedas na rede bifurcada.
Um exemplo de hard fork foi o fork de 2017 que dividiu o Bitcoin em duas cadeias separadas – a original, Paʻi (BTC), e uma nova, Ka Waihona Waiwai (BCH). O fork ocorreu após muita discussão sobre a melhor abordagem para escalar. Os defensores do Bitcoin Cash queriam aumentar o tamanho do bloco, enquanto os defensores do Bitcoin se opuseram à mudança.
O aumento do tamanho do bloco requer modificação das regras. Isso foi antes do soft fork do SegWit (mais sobre isso em breve), então os nós só aceitariam blocos menores que 1MB. Se você criasse um bloco de 2MB que fosse válido de outra forma, outros nós o rejeitariam.
Somente os nós que alteraram seu software para permitir blocos com mais de 1MB poderiam aceitar esses blocos. Claro, isso os tornaria incompatíveis com a versão anterior, então apenas nós com as mesmas modificações de protocolo poderiam se comunicar.
O que é um soft fork?
Um soft fork é uma atualização compatível com versões anteriores, o que significa que os nós atualizados ainda podem se comunicar com os não atualizados. O que você normalmente vê em um soft fork é a adição de uma nova regra que não entra em conflito com as regras antigas.
Por exemplo, uma diminuição do tamanho do bloco pode ser implementada por meio de um soft fork. Vamos usar o Bitcoin novamente para ilustrar esse ponto: embora exista um limite para o tamanho máximo de um bloco, não há limite para o quão pequeno ele pode ser. Se você deseja aceitar apenas blocos abaixo de um determinado tamanho, basta rejeitar os maiores.
No entanto, fazer isso não o desconecta automaticamente da rede. Você ainda se comunica com nós que não estão implementando essas regras, mas filtra algumas das informações que eles lhe passam.
Um bom exemplo de soft fork foi o fork do Segregated Witness (SegWit), que ocorreu logo após a divisão Bitcoin/Bitcoin Cash. O SegWit foi uma atualização que mudou o formato dos blocos e transações, mas foi criada de forma inteligente. Os nós antigos ainda podiam validar blocos e transações (o formato não violava as regras), mas eles simplesmente não os entenderiam. Alguns campos só podem ser lidos quando os nós mudam para o software mais recente, o que lhes permite analisar dados adicionais.
Mesmo dois anos após a ativação do SegWit, nem todos os nós foram atualizados. Existem vantagens em fazer isso, mas não há urgência real, uma vez que não há mudança que quebre a rede.
Hard Forks vs. Soft Forks – qual é melhor?
Fundamentalmente, ambos os tipos de forks mencionados acima servem a propósitos diferentes. Os hard forks controversos podem dividir uma comunidade, mas os planejados permitem a liberdade de modificar o software com o acordo de todos.
Os soft forks são uma opção mais suave. Em geral, você tem mais limitações do que pode fazer, pois suas novas alterações não podem entrar em conflito com as regras antigas. Dito isso, se sua atualização puder ser criada de forma que continue compatível, você não precisa se preocupar em fragmentar a rede.
Nā manaʻo hope loa
Os hard forks e soft forks são cruciais para o sucesso a longo prazo das redes blockchain. Eles nos permitem fazer mudanças e atualizações em sistemas descentralizados, apesar da falta de uma autoridade central.
Os forks tornam possível que blockchains e crypto-moni integrem novos recursos à medida que são desenvolvidos. Sem esses mecanismos, precisaríamos de um sistema centralizado com controle de cima para baixo. Caso contrário, ficaríamos presos às mesmas regras durante toda a vida do protocolo.