SegWit2xO SegWit2x é um hard fork da criptomoeda Bitcoin. Resumidamente, hard fork é quando uma blockchain divide-se em dois caminhos distintos que coexistem de modo paralelo.[1] A proposta desta mudança é de duplicar o tamanho dos blocos de transações. Este aumento tem como intenção melhorar a escalabilidade da rede e tornar as transações mais rápidas. A integração do SegWit2x à rede Bitcoin estava prevista para acontecer no dia 16 de novembro de 2017 mas foi suspensa segundo um dos autores Mike Belshe, por não haver o total consenso da comunidade em relação a mudança.[2] O código do programa da implementação do SegWit2x foi criado no repositório do BTC1 e liderado pelo programador Jeff Garzik. De acordo com o acordo de Nova York, o SegWit2x viria a acontecer 144*90 (centro e quarenta e quatro vezes noventa) blocos após a ativação do SegWit2x. Esse número foi escolhido baseado na criação de blocos a cada 10 minutos, sendo 144 blocos por dia vezes 90 dias. ContextoDurante três anos houve muitos debates em relação às preocupações futuras da rede Bitcoin e a maior delas é em relação a sua escalabilidade. O número de usuários do Bitcoin têm aumentado muito, com o número de usuários dobrando a cada 12 meses[3] mas em relação a sua infraestrutura não houve muitas mudanças. Fazendo uma analogia, é como uma cidade onde cresce muito o número de carros na rua mas não há nenhuma melhoria ou aumento das pistas. Apesar de algumas mudanças terem sido aplicadas, a preocupação em relação ao crescimento da rede ainda é contínua, uma vez que para que um novo fork seja aplicado é necessário haver um consenso dos membros da comunidade do Bitcoin tornando a implementação de novos forks um pouco mais demorado e muitas vezes até suspenso como foi o caso do SegWit2x. Tamanho do blocoEm meados de 2015 Gavin Andresen, ex-desenvolvedor do Bitcoin Core, e o desenvolvedor principal do Bitcoin, Mike Hearn, acreditavam que o limite de tamanho de bloco de 1 megabyte do Bitcoin deveria ser aumentado com um hard fork.[4] A partir disso o debate sobre o tamanho dos blocos se intensificou ainda mais e em 2017 o fundador e CEO da DCG, Barry Silbert, também preocupado com um possível fork organizou uma reunião antes da Consensus Conference 2017 em Nova York. O acordo de Nova IorqueEsta reunião organizada por Barry Silbert envolveu empreendedores de Bitcoin e outros membros proeminentes da indústria (um pedaço significativo da indústria Bitcoin). Este encontro ficou conhecido como o Acordo de Nova York e ficou decidido que, com base em uma ideia originalmente proposta pelo fundador da RSK Sergio Demian Lerner, a SegWit seria ativado em condições específicas, enquanto também haveria um hard fork para duplicar o limite de tamanho dos blocos do Bitcoin (mudança futuramente conhecido como SegWit2x). Pontos positivosMenores taxas de transação e/ou confirmações mais rápidasCom o aumento dos blocos de Bitcoin, mais transações poderão ser feitas na rede e isso deve aumentar a velocidade das transações e reduzir as taxas médias. Também acredita-se que o aumento do tamanho do bloco trará mais usuários de forma mais rapidamente. Esse aumento do número de usuários pode aumentar a taxa de câmbio de Bitcoin ocasionando o aumento da receita de mineração, o que deveria se traduzir em mais poder de hash para proteger a rede. Manter a rede unidaO protocolo alternativo Bitcoin Unlimited, um dos impulsionadores da criação do acordo de Nova Irque, era considerado uma ameaça iminente para a rede Bitcoin. Esse movimento foi liderado por empresas que apoiavam o aumento do limite do tamanho dos blocos da blockchain e opositores da atualização do protocolo SegWit. Essas empresas alavancaram o poder de hash de seus pools de mineração para atrasar a ativação do SegWit, enquanto planejava aumentar o limite do tamanho do bloco com um hard fork. Isso poderia ter “dividido” a rede Bitcoin em duas blockchains e moedas incompatíveis. O SegWit2x foi apresentado como um compromisso intermediário entre os dois campos de guerra do debate em escala. “Um lado” obteria o SegWit, enquanto o “outro lado” receberia um hard fork de aumento de capacidade. A maioria dos signatários acreditava, pelo menos no momento do acordo, que esta seria uma solução que deveria manter a rede Bitcoin junta. Pontos negativosAumento dos custosEm contrapartida às menores taxas e confirmações mais rápidas, o aumento dos blocos também aumentam os requisitos de recursos para operar um nó completo, como maior uso de banda e maior tempo de sincronização. Isso aumenta o custo para os usuários individuais participarem da rede. Efeito centralizadorBlocos maiores tornariam mais devagar a propagação do bloco através da rede peer-to-peer, o que potencialmente beneficia os mineradores maiores e as pools de mineração e isso é visto como mais um efeito centralizador que vai contra toda a filosofia do Bitcoin. Posicionamento da ComunidadeA mudança para duplicar o tamanho do bloco pareceu ser controvérsia e isso traz bastante tensão e incerteza para a comunidade. De acordo com o site Coin Dance, os mineradores do Bitcoin foram maioria em relação ao apoio do hard fork para o SegWit2x. O número de mineradores que apoiam a mudança chegou a 84% em meados de Julho/Agosto e atingiu 95% em setembro e em 06 de dezembro este número ficou em 9%.[5] O principal argumento dos mineradores é que o aumento do tamanho dos blocos é necessário para o crescimento da rede e que também irá reduzir o aumento das taxas de transação que acompanham esse crescimento.[6] Entre os apoiadores estavam também empresas como casas de câmbios de bitcoin, wallet providers, market makers e donos de Cofre de Bitcoin (o posicionamento dessas empresas mudam muito de acordo com o sentimento da comunidade). Embora uma grande fração da comunidade de mineradores apoiem a mudança, muitas pessoas concordam que o aumento do tamanho do bloco Bitcoin vem com uma série de poréns. A maioria da comunidade de desenvolvedores do Bitcoin, algumas empresas e algumas pools de mineração e (se as pesquisas públicas e os mercados de futuros são representativos) a maioria dos usuários e o mercado não estão à vontade com este hard fork. Alguns deles estão envolvidos em uma espécie de protesto, sob a bandeira “NO2X”.[7] O site Bitcoin Magazine publicou alguns dos principais pontos levantados pelos que levantas a bandeira "NO2X" que são:
Em contrapartida, também há os pontos dos que apoiam o SegWit2x:
Suspensão do SegWit2xEm 08 de novembro de 2017, em uma postagem, um dos responsáveis pelo SegWit2x anunciou a suspensão do hard fork. Na postagem, ele explicou os principais motivos da suspensão e declarou que a mudança poderia dividir a comunidade e prejudicar o crescimento do Bitcoin, já que não conseguiu o consenso total para a mudança. Reação à suspensãoA Reação do mercado à suspensão foi quase imediata, aumentando seu preço a quase 400 dólares, pois diminui a tensão e incerteza dos que eram contra o aumento da capacidade dos blocos e dos que achavam que o fork era de alto risco. Mesmo com a notícia da suspensão, alguns programadores e empresas continuaram insistindo de que a mudança deveria ser feita de qualquer forma e aguardaram ansiosamente pelo bloco 494784 para verificar se o fork 2x seria minerado ou não. A reviravolta foi que havia algum erro no código do SegWit2x e o fez com que parasse no bloco 494782.[8] A falha na ativaçãoA diferença de linhas do código no repositório do BTC1 para o do Bitcoin Core era de aproximadamente 500 linhas onde a maioria não era consensus-critical. Mas mesmo assim, haviam bugs em pelo menos 100 linhas de código no suporte para a realização do fork no bloco 494784. A falha mais crítica envolve a principal verificação, que é a condição de verificar se o tamanho possuía 2MB ou mais (anteriormente, a verificação era feita para 1MB). Esta é a parte crítica do código de consenso que rejeita blocos muito grandes e, portanto, requer um hard fork.[9] A falha encontrada foi na verificação que era foi feita quando o bloco 144 * 90 após a ativação do SegWit foi alcançado. Deveria verificado se o bloco 144 * 90 antes do atual é o que possui o SegWit ativado mas acontece que a verificação foi feita no bloco (144 * 90) - 1 onde o SegWit não havia sido ativado. O pull request realizado possui cerca de 220 comentários mas a maioria é sobre o aumento do tamanho do bloco para 2mb. Outros fatores que podem ter ocasionado o não percebimento dos bugs, é que apenas uma pessoa aprovou a mudança no repositório e também há algumas reclamações de que o código não foi bem testado pelos desenvolvedores. Este bug fez com que os mineradores de Bitcoin não pudessem minerar a criptomoeda com os blocos maiores quando necessário. E mesmo que eles procedessem com o fork, eles não iriam conseguir, não de forma automática.Os mineradores teriam, ao invés disso, que configurar manualmente o tamanho dos blocos mas dificilmente saberiam como fazê-lo. Jeff Garzik que defendeu que não havia problemas com o código submeteu um patch no repositório que resolve este problema.[10] Outros bugsO bug encontrado na lógica da ativação dos blocos com 2MB não era o único, outro bug foi encontrado no código do BlockAssembler que é o responsável pela criação de novos blocos.Essa parte é mais voltadas para os mineradores que são os responsáveis pela criação de novos blocos. O erro era basicamente uma variável que estava sendo usada mas nunca havia sido declarada e a importância dela é que essa variável é a responsável por definir qual o tamanho e peso que o bloco produzido terá. Se a variável booleana tiver o valor como false, os blocos maiores nunca serão ativados. Esse pull havia sido revisado por apenas um usuário (que provavelmente não percebeu a falha). Próximos passosAs discussões sobre o futuro da escalabilidade do Bitcoin ainda é algo que vai continuar pelos próximos meses ou até anos. Ainda não se sabe o futuro do SegWit2x, talvez o aumento do tamanho dos blocos das transações seja algo necessário no futuro e talvez ela tenha o tão esperado consenso que não foi obtido na primeira tentativa. Espera-se também que estes acontecimentos sirvam de aprendizado para os próximos forks, pois uma mudança traz muito mais confiança para os usuários de algum software quando ela é feita com calma e bem testada. Ligações externasReferências
|
Portal di Ensiklopedia Dunia