Porque atualizar Blockchains é um desafio?
Um longo caminho a percorrer
Blockchains possuem regras e essas regras, em Blockchains Públicos, estão definidas no mecanismo de consenso. Alterar tais regras requer que a maioria dos participantes da rede concordem com as modificações propostas.
Em Blockchains como Bitcoin e Ethereum, por exemplo, para que mudanças sejam implementadas deve-se percorrer um longo caminho:
- A pessoa apresenta uma ideia, conversa com outras pessoas sobre ela e, depois escreve uma proposta formal (por exemplo, um BIP, Proposta de Melhoria do Bitcoin).
- A proposta é amplamente compartilhada nas listas de discussão de desenvolvedores e fóruns da comunidade, onde muitas equipes, desenvolvedores e entusiastas avaliam seu design.
- Se a proposta é vista majoritariamente como uma boa ideia e pode ser implementada por ser compatível com versões anteriores, a comunidade de desenvolvedores começa a trabalhar na proposta (geralmente com planos para implementá-la junto com uma série de outras atualizações semelhantes).
- Atualizações compatíveis com versões anteriores podem ser implementadas a conta gotas (como um “soft fork”). Mudanças maiores que podem resultar em um “hard fork” são vistas como último recurso.
- Anunciada determinada data para o update (atualização), este deve possibilitar a todos tempo razoável para implementação e migração para a versão mais recente do software, momento no qual todos os novos recursos entram em ação.
No Bitcoin, os hard forks são deixados como último recurso (o SegWit foi finalmente adotado depois que Pieter Wuille descobriu como implementá-lo como um soft fork).
Constantinople
Na semana passada, Ethereum estava planejando implementar sua próxima grande atualização de rede, o upgrade de rede “Constantinople”. Mais uma etapa do projeto de migração do sistema, que hoje é baseado no PoW (Proof-of-Work), para PoS (Proof-of-Stake).
Constantinople é a segunda parte da fase Metropolis de Ethereum. Ele foi agendado para 16 de janeiro de 2019, mas foi adiado devido a um novo bug crítico, que apareceria na atualização.
Confira nossas sugestões de Pre-Sales para investir agora
O Constantinople traria muitas melhorias no desempenho da rede Ethereum, mas o cronograma para sua implementação, programada para 16 de janeiro de 2019, precisou ser adiado devido a um atraso na “Difficulty Bomb”.
Sua importância
No ano passado, o Ethereum começou a enfrentar muita concorrência de algumas outras plataformas como, EOS, Stellar, Cardano, NEM e NEO, devido à sua melhor taxa de transferência (embora algumas delas não possuam smart contracts). Portanto, esta atualização se concentra principalmente em melhorar o rendimento e a usabilidade da rede.
Ethereum Ice Age
Com uma série de Difficulty Bombs pré-programadas, a rede Ethereum ficará mais difícil de minerar. Isto aumentará assim o tempo entre blocos, e provocará um “congelamento” do Blockchain Ethereum, forçando as pessoas a fazerem a atualização.
Melhor explicando, essas bombas de dificuldade são um mecanismo implementado no algoritmo de consenso do Ethereum, projetado para incentivar os mineradores a migrarem para o Proof of Stake do Ethereum quando seu desenvolvimento for finalizado.
É um mecanismo especial que torna a mineração de um novo bloco exponencialmente mais difícil ao longo do tempo, até que em algum momento isso se torna impossível, efetivamente congelando toda a rede. Isso também é chamado Ethereum Ice Age (Era do Gelo) e foi adicionado pela primeira vez em 7 de setembro de 2015. A bomba de dificuldade realiza duas coisas:
Primeiro, isso pressiona os desenvolvedores da Ethereum a criar uma atualização para o protocolo. Isto porque, eles obviamente não querem que ele entre na era do gelo.
E em segundo lugar, isso força os mineradores a adotar novas atualizações. Porque, do contrário, eles acabam com uma blockchain que não pode gerar dinheiro para eles.
A necessidade de se reduzir a recompensa do bloco
Atualmente, os mineradores da rede Ethereum obtêm 3 éter quando eles mineram um novo bloco. Isso é chamado de recompensa de bloco. Um novo bloco é criado aproximadamente a cada 15 segundos. Isto significa que a cada dia há de 5000 a 6000 novos blocos adicionados.
Com uma recompensa em bloco de 3 éter, diariamente 15.000 a 18.000 novos éter são adicionados à oferta total. Isso pode se tornar um grande problema. A oferta cada vez maior de éter coloca pressão sob o preço (inflação). Para saber mais, consulte: Ethereum Improvement Proposals 1234 – Constantinople Difficult Bomb Delay and Block Reward Adjustment.
Infelizmente, como é complexo implementar alterações numa arquitetura descentralizada e, muitas vezes, o processo está sujeito a inúmeros erros…. Devido a descoberta de um bug no Constantinople, decidiu-se adiar sua implementação.
Um debate filosófico
Quando quase 50% dos nodes no Ethereum já tinham atualizado para o novo software, a Chain Security, empresa de auditoria de smart contracts, encontrou uma potencial vulnerabilidade, fazendo com que o Core Devs atrasasse o upgrade para fevereiro.
A vulnerabilidade, que poderia afetar smart contracts mais antigos, resultou em um amplo debate na comunidade. Dentre os inúmeros pontos debatidos, merece destaque um, de natureza filosófica …
O que significa “imutabilidade” e qual responsabilidade dos desenvolvedores do protocolo em relação aos desenvolvedores de smart contracts?
Em resumo, os desenvolvedores de smart contracts querem garantias. Seu código será imutável, como prometido no início da Ethereum?
Alterar a forma como o código é interpretado através de atualizações nos códigos de operação viola o princípio da imutabilidade do Blockchain.
Não vamos avançar nesta questão, porque isto é assunto para outro artigo.
Takeway
O que é interessante aqui é perceber quão difícil é implementar atualizações e mudanças em Blockchains. Definitivamente, é bem mais difícil que atualizar um aplicativo centralizado. Só para se ter uma ideia, a atualização do SegWit no Blockchain Bitcoin demorou dois anos de extenso debate.
Os bugs podem ser fatais, e desfazê-los pode ser ainda mais difícil do que implementá-los. Lembram do caso do hackeamento do The DAO ?
Quais garantias os desenvolvedores de protocolo devem à quem cria aplicativos em sua cadeia ?
As dúvidas são complexas e não param de surgir…. afinal, atualizar estruturas descentralizadas é quase uma ciência!
Leia também: Criptomoedas no Cenário Internacional; Um mergulho nas visões de governos e bancos centrais sobre criptoativos