Hoje a gente vai falar de um tema polêmico, sobre o qual eu tenho uma opinião muito forte, que é o ETH 2.0.

[N.R.: O vídeo que deu base para o conteúdo deste post foi publicado cerca de 2 meses atrás, mas, por algum motivo, acabou “esquecido no churrasco”. Como o “The Merge” está próximo de acontecer – com algumas movimentações já ocorrendo – achei o momento oportuno para resgatar esse conteúdo. Com certeza assim que mais novidades surgiram, a gente vem aqui atualizar sobre o que está acontecendo.]

Pra poder falar do Ethereum 2.0, é preciso entender um pouco mais o que é o Ethereum 1.0, que está em produção atualmente. Em algumas postagens e vídeos anteriores eu já comentei sobre o assunto, mas vou resumir. O Ethereum nasceu com a proposta de ser um ecossistema de desenvolvimento de aplicações baseadas em Smart Contracts, utilizando máquinas virtuais, as EVMs [Ethereum Virtual Machines], para criar aplicativos, pequenos programinhas que são anexados à blockchain e, assim, criar os DApps, que são aplicações descentralizadas. A base fundamental do Ethereum, criada por Vitalik Buterin e descrita no paper original, já falava sobre Smart Contracts, DApps, EVMs e, num primeiro momento, o Vitalik foi muito crítico ao modo que o Bitcoin foi criado, sugerindo modificações na blockchain naquela época. O Ethereum tem algumas diferenças na implementação de blockchain, não só para suporte dos Smart Contracts, como na estrutura de geração de blocos, mas manteve o Proof of Work [PoW] como forma de validar os blocos dentro da rede do Ethereum. O Bitcoin tem uma sequência de blocos programada, com tempo pré-determinado para sua geração e existe uma hierarquia bem sólida com relação a quem tem o poder de consolidar essas informações dentro da blockchain: Quem consolida os dados dentro da blockchain é o próprio minerador que faz a validação do bloco, ele também fica responsável por delegar ou criar o próximo bloco. A rede do Bitcoin é uma blockchain sequencial monolítica, com um bloco criado atrás do outro, seguindo os contextos de header, tudo isso para gerenciar e descentralizar a forma de autenticar/validar essas transações. No caso do Ethereum é um pouquinho diferente, os full nodes validadores do Ethereum podem criar vários blocos e esses blocos podem ser processados em paralelo. Quando a gente adiciona o fator “Smart Contracts” dentro de uma blockchain, há um aumento considerável de transações, as Tx, porque qualquer mint de NFT, qualquer transferência dentro de um Smart Contract, qualquer alteração de status precisa ser processada, assim como uma transferência convencional. Enquanto a rede do Bitcoin é basicamente utilizada para transferir valores, que são informações simples, com processamento fácil, o algoritmo de validação é básico e a rede funciona perfeitamente, no caso do Ethereum, a gente tem o complicador dos blocos serem gerados em paralelo e pode acontecer, como acontece de vez em quando, a criação de forks.

Basicamente o que a gente precisa entender com ralação a fork é que, como a rede é descentralizada e os computadores estão espalhados pelo mundo inteiro, do momento em quem um minerador encontra a solução de bloco até que esse bloco seja consolidado dentro da blockchain e que essa informação seja espalhada por todos os full nodes, existe uma latência. No caso do Bitcoin, Satoshi Nakamoto, o criador da rede, estipulou a regra de dez minutos para a geração de um novo bloco, justamente por entender que normalmente esse seria o tempo necessário para fazer a consolidação completa de um bloco dentro da rede, por isso muitos softwares de Exchanges demoram até finalizar a verificação do Tx, e normalmente eles não aceitam só uma validação, eles precisam de várias validações para daquele bloco e, obviamente, vai demandar tempo para processar. Já na rede do Ethereum (e várias outras), depois que um minerado faz a validação de um bloco, os nodes têm a capacidade de verificar se aquela validação está correta ou não, então a rede começa a atualizar sua blockchain local a partir dessa validação. O que acontece com certa frequência é que a latência de atualização desses blocos cria duas validações simultâneas. Vamos supor que uma parte da rede entenda que quem validou o bloco A foi o minerador X e outra parte da rede entende que quem minerou o mesmo bloco A foi o minerador Y, então no próximo round de geração vai ser criado um bloco para a linha de bifurcação no minerador X, e um bloco para a bifurcação do minerador Y. A própria rede escolhe o elo com mais nós como sendo o correto e o fork menor vai ser ignorado. Consequentemente aqueles blocos “errados” vão ser descartados, o registro deles permanece dentro da rede, mas eles não são mais considerados blocos válidos e todas as transações vão ser canceladas.

No caso do Ethereum, o próprio Vitalik Buterin fez um estudo junto com a comunidade da quantidade de nós nesse fork a rede conseguiria voltar e dar merge sem precisar de intervenção. Na época ele estipulou o número em sete blocos subseqüentes até que a rede se reestruture, senão pode ser que essa reestruturação não ocorra e alguma medida tenha que ser tomada pela comunidade. O perigo é justamente criar um hard fork dessa rede, onde uma parte da rede começa a seguir determinado caminho de blockchain e outra parte da rede segue outra cadeia de registros. Consequentemente, uma parte desses mineradores vai começar a entregar resultados que não são válidos porque uma das coisas necessária para validar o algoritmo do Ethash é justamente o índice das validações anteriores. Então, se você está numa bifurcação que boa parte da rede não entende como verdadeira, vai acontecer que as validações vão dar invalid share na mineração. O minerador que estiver obtendo vários invalid share vai ter que reiniciar a mineração. Normalmente os softwares de mineração já sabem desse comportamento, então se eles começam a ver que a mineradora está mandando muitos invalid share para a rede, eles reiniciam sozinhos, para evitar esse tipo de problema no lado do client. Se uma bifurcação não tem a capacidade de dar o merge de forma automatizada, seria preciso uma intervenção dos desenvolvedores para resolver (isso aconteceu com a rede Solana). Todas as transações desse fork errado vão ser canceladas: transferências de saldo, vendas de ativos, mints, compra e venda de NFT, entre várias outras coisas. Isso é extremamente perigoso e mexe com a confiança de todo o ecossistema, por isso é um sinal de alerta quando a gente vê uma rede criando uma grande ramificação de fork. Recentemente, na rede Beacon do Ethereum, um fork chegou a sete blocos subsequentes.

Vamos falar sobre a rede Beacon e o Ethereum 2.0. Essa é minha opinião sincera, já venho falando sobre isso no blog e no canal do YouTube (vou deixar os links no final), de por que é que eu não acredito nessa tese. A proposta feita pelo Vitalik para o Ethereum 2.0 parte do princípio que a rede se tornou cara demais e lenta demais pro volume que ela precisa suportar, já que ela se tornou a maior rede de DeFi, de NFTs, de Swaps, de jogos “play-to-earn”, entre tantas outras aplicações. Essa quantidade de transações tem causado lentidão na rede, tornando as transações impagáveis em alguns momentos, ou deixando vários blocos enfileirados para serem processados. Então o Vitalik propôs algumas mudanças para o Ethereum 2.0. A primeira alteração é a mudança do PoW para PoS. Em tese, o Stake é mais simples de validar e, consequentemente, mais rápido. Toda a infraestrutura de mineradores, que requer energia, hardwares especializados, placas de vídeos ou ASICs, é descartada e a validação passa a ser feita por nodes em Stake. O que vem a ser isso? Stake é como se fosse uma poupança, onde o dinheiro fica paradinho numa carteira e aleatoriamente essa carteira pode ser escolhida para ser um validador, sendo recompensada com Ethereum por ter validado um bloco, então esse dinheiro vai te rendendo, de certa forma. Se você tem 32 Ethereum na sua carteira, pode se tornar um node de Stake. Seus Ethereum vão ser “queimados” da mainnet e jogados na rede Beacon e você vai se tornar um node validador da rede Ethereum 2.0. Perceba, você precisa ter 32 Ethereum para se tornar um nó validador, que é bastante coisa, então está acontecendo todo um movimento para a criação de pools de liquidez, pools de Stake, sejam em Exchanges ou sistemas DeFi.

O segundo ponto que a gente precisa entender sobre o Ethereum 2.0 é a criação de shards. O que vêm a ser shards?

Quando um sistema precisa de escala e robustez, usa-se o sistema de shards, onde você divide a operação do sistema em várias máquinas. No caso da rede Ethereum, a rede inicialmente começaria com 64 shards, podendo aumentar para até 1024 shards. Qual o problema disso, na prática? Nós teríamos 64 blockchains de camada 0, podendo chegar a 1024 blockchains, rodando em paralelo, fazendo processamentos de várias transações e Smart Contracts. Em seguida, a rede Beacon, que hoje é a rede de testes do ETH2.0, mas se tornaria a rede principal, vai servir como uma camada 1 da rede, para fazer a consolidação de todas essas outras blockchains. A rede Beacon também faria a distribuição de todo o trabalho. Perceba, se já é difícil gerenciar uma blockchain, ter um full node e fazer todo o sync, todo o processo de atualização e consolidação, imagine um cenário futuro de 1024 blockchains transacionando loucamente, 24 horas por dia, 7 dias por semana, e consolidando essas informações dentro da blockchain principal. A possibilidade de acontecer algum problema no meio dessa brincadeira é altíssima, no meu ponto de vista, mas a gente só vai saber disso quando, de fato, a rede Beacon estiver operando em escala, e aí, se acontecer algum problema, os programadores do projeto Ethereum vão ter que “trocar a roda com o carro em movimento”. Se acontecer um problema mais grave ainda, por exemplo, um ataque DDos ou ataque de 51%, que são possíveis falhas de segurança, o Vitalik vai ter que convencer a comunidade a talvez dar um rollback, parar a rede e voltar a um ponto anterior à falha ou ao hacker, para estabelecer uma nova ordenação de blocos. Isso foi feito na rede Ethereum na época do The DAO, um hacker roubou alguns milhões em Ether e o Vitalik resolveu reordenar os blocos, dar um rollback na rede. Uma parte da comunidade foi favorável a permanecer no Ethereum, uma parte da comunidade não gostou e formou o Ethereum Classic. Essa possibilidade volta à tona com esse problema que as shards podem trazer. Eu estou falando que shards é algo ruim? Não, existem várias implementações de shards que são excelentes, por exemplo, o Elasticsearch é uma excelente implementação de shards, mas elas têm problema de latência de atualização e perda de dados. Por isso o Elasticsearch é o tipo de sistema utilizado para fins específicos, não para integralidade de dados. Para manter consistência de informações, você usa outros tipos de bancos, bancos relacionais, por exemplo. É muito difícil dar problema? Sim, só que o Elasticsearch é um projeto que tem anos de mercado, testado, validado, usado por empresas gigantescas, com bilhões e bilhões de dados, não é um processo novo. Não desmerecendo a equipe do Ethereum, eu acredito que ela seja extremamente capacitada, são excelentes profissionais e programadores, mas esse risco obviamente existe e a implementação precisa ser testada a fundo, re-testada, até conseguir passar por essa provação do tempo. Mas vamos supor que a implementação das shards esteja perfeita, a gente tem outra questão que é a implementação de rollups dentro do ecossistema do Ethereum 2.0.

O que são rollups? Imagine o seguinte, mandar uma única transferência hoje na rede pode não valer tanto a pena assim, porque custa caro. Já na rede Beacon do Ethereum 2.0, a gente teria a possibilidade de gerar uma espécie de contrato com várias transações e criar um rollup. Esse rollup é lançado na rede Beacon, certificando que aquelas transações estão dentro da rede X. Então a rede do Ethereum receberia e consolidaria essa informação especifica de uma das shards. Uma Sidechain qualquer poderia chegar e falar “eu quero salvar o registro dessas transações aqui, eu não quero que essa transação seja de fato consolidada dentro da mainnet, porque eu garanto que aqui, internamente na minha sidechain, elas vão estar OK.” O que você está falando é o seguinte, uma Layer2, uma Polygon da vida, poderia informar parcialmente as transferências executadas internamente dentro da rede dela, a Ethereum consolidaria essas informações, mas você precisa confiar que nessa Layer2 todas as informações estão de fato corretas. Existe uma questão de protesto como mecanismo de defesa e de segurança para os rollups, qualquer node validador da rede pode contestar aquele rollup num prazo de até 7 dias. Isso significa que eu posso gerar o rollup, mandar para a rede do Ethereum, um validador vai desprender poder computacional para validar meu rollup, ver se ele está correto e, caso ele não esteja correto, mandar uma solicitação para a rede informando, esse rollup vai ser reprocessado e vai desprender mais poder computacional para poder validar. O ponto que a gente precisa entender sobre uma rede de Stake é que boa parte do poder computacional é jogado fora, porque não tem mais a infinidade de máquinas do PoW para fazer a validação, só uma série de full nodes que somente realizam processos simples. O algoritmo que é utilizado hoje no PoW do Ethereum vai ser jogado no lixo porque, se você precisa que a validação seja simplificada, não dá para ter um algoritmo igual ao Ethash, que é o algoritmo do Ethereum, para fazer o processamento em máquinas que não têm tanto o poder computacional, e quando você coloca tanta coisa pra rede processar, a lentidão volta. Imagine se todo rollup feito por redes de Layer2 começar a conflitar e precisar de N validações e protestos, a gente vai começar a encher a rede com uma série de solicitações que antes não existiam, e a gente não sabe como a rede vai se comportar em médio/longo prazo.

Se a gente para pra analisar uma forma geral, a desculpa utilizada pelo Vitalik para essas mudanças, é que a mineração estava criando uma onda de uso de energia derivada de carvão e, por isso, estaria poluindo o planeta e blábláblá. Eu acho essa tese muito engraçada porque, vamos olhar pelo lado dos fatos, quem são os maiores beneficiários de estar migrando a rede para Stake? Quem vai lucrar mais por estar migrando de uma rede que hoje é feita por mineradores, para uma rede em Stake? É quem tem uma grande quantidade de Ethereum. E quem é, hoje, um dos maiores proprietários de Ethereum do mundo? Adivinha… O senhor Vitalik Buterin! Ele é um dos maiores proprietários de Ethereum do mundo e vai ter uma enorme quantidade de full nodes de validação em Stake e provavelmente será um dos caras que mais vai lucrar com isso. “Um dos”. É um cenário político, em que as grandes baleias vão se beneficiar, tirando a segurança e a descentralização da rede, sob o falso pretexto de “trazer mais agilidade nas transações” e para, talvez, “deixar o mundo melhor”, porque não vai ter gasto energético de usinas de carvão, pelo menos essa é a alegação. Isso, para mim, é uma piada. Uma coisa que aconteceu recente da rede Beacon, saiu uma matéria no Portal do Bitcoin, da uma “falha de segurança”. Como a gente falou, a rede Beacon é, hoje, a rede de testes do Stake, que vai se tornar a rede principal do Ethereum, e ela teria chegado a 7 blocos de fork, se recuperando em 80 segundos. É preocupante que a gente já esteja vendo sinais de fragilidade do ecossistema como um todo, isso, inclusive, tem causado vários atrasos no The Merge (nome dado para essa grande migração em que a mainnet vai ser unificada com a rede Beacon). Essa atualização já deveria ter sido feita no ano passado, e já foi adiada várias vezes, provavelmente porque os desenvolvedores do Ethereum não confiam 100% que não vai dar merda…

A chance de dar merda no The Merge é grande. Se acontecer alguma coisa parecida com o que aconteceu agora na rede Beacon, os investidores vão entrar num frenesi por conta da quebra de confiança, a rede pode colapsar. Isso vai começar a acionar os stop loss da galera que está fazendo trade de Ethereum nas Exchanges e vai começar um efeito cascata, como aconteceu com o Terra LUNA e a quebra da confiança do mercado com relação àquele ativo. Nesse momento, onde eu quero estar? Eu quero estar bem longe da Ethereum durante essa migração. Eu liquidei todos os Ethereum que eu tinha e coloquei em Bitcoin. Outra coisa, hoje as maiores Stablecoins, USDC e USDT, são tokens dentro da rede Ethereum, então se a rede colapsar, ele vão juntos. Você vai mesmo manter as suas aplicações em tokens derivados da rede Ethereum? Essa chance é real, não é click bait, não é teoria da conspiração, é puramente técnico. A gente está falando de mudar uma rede testada para uma rede nova, cujos testes estão sendo feitos só agora e já estão mostrando falhas: Falhas de organização de bloco, possíveis problemas de atualizações de client, entre tantos outros. Parece que essa falha de fork foi criada justamente por causa de uma atualização recente que aconteceu no código do Ethereum que não foi atualizado em todos os clients. Se é verdade, não sei, não me aprofundei muito no assunto, mas, pelo menos na área de desenvolvimento de software, toda vez que vai acontecer uma atualização, a gente tem que prever suporte às versões anteriores, porque senão o software dá bug. Para um projeto do tamanho e da importância do Ethereum, esse tipo de falha é, no mínimo, questionável, é, no mínimo, para se ligar um alerta, para ficar atento. Eu me pergunto o que está acontecendo com os desenvolvedores do Ethereum, será que eles não estão conseguindo prever todas as possibilidades de falha? Se eles não estão conseguindo prever todas as possibilidades de falha, o que garante que essa migração do Ethereum 2.0 vai dar bom? Tem 50% de chances de dar bom e tem 50% de chances de dar merda e eu particularmente não quero estar posicionado nessa moeda ou em qualquer outro token ou qualquer outra NFT dependente dessa rede. Se você tem algum amor ao seu dinheiro e tem medo de ir à falência, honestamente falando, tire seu dinheiro de qualquer coisa que seja vinculado à rede Ethereum antes do The Merge, e só volte caso essa brincadeira fique estável nos próximos meses ou até ano. Onde que eu recomendo deixar os seus ativos? Bitcoin. Para mim não tem outra moeda que seja mais segura nesse momento. Se você tem uma opinião diferente da minha, beleza, talvez eu não esteja considerando alguns fatores, ou talvez você também possa não estar considerando algumas coisas. Quem está certo ou errado, só o tempo irá dizer. Pode ser que dê tudo certo e eu tenha parabéns à equipe do Ethereum, como pode ser uma ruína completa, e quem estiver posicionado em Ethereum vai chorar e vai lembrar-se desse post aqui, falando que ia se fuder. Enfim, galera, como eu sempre falo, eu não sou investidor de cripto, eu não faço trade de cripto, e se você perder o seu dinheiro porque deu merda na rede, o problema é todo seu…

[N.R.: Dei uma pesquisada rapidinha para ver como andam as movimentações, tem gente muito animada com os primeiros passos que já foram dados e tem gente prevendo cenários apocalípticos… Em breve, cenas dos próximos capítulos…]

Vou colocar aqui alguns dos posts mais antigos onde eu falo mais desse assunto:

O conteúdo deste post foi retirado do vídeo [ Web 3.0 ] ETH 2.0 vai da merda?: