2x ou Core?

Otavio Bonder
5 min readOct 4, 2017

--

Se você não sabe o que é o SegWit2x ou está na dúvida se é bom ou não para o Bitcoin, leia essa história, talvez ela lhe ajude a tomar uma decisão e começar a ajudar a rede.

Começamos pelo começo. Todos sabem que o Bitcoin tem um problema de escalabilidade. A rede suporta poucas transações por minuto, aproximadamente 2000 por bloco, que equivale a aproximadamente 200 por minuto ou 3,3 por segundo. Se quisermos que o Bitcoin seja largamente adotado, esse é um dos problemas que precisamos urgentemente corrigir. Por efeito de comparação, a Visa processa atualmente 2000 por segundo.

A comunidade estava debatendo soluções para a escalabilidade, para fazer o Bitcoin conseguir suportar um número suficiente de transações ao mesmo tempo sem fazer com que as taxas da rede aumentassem muito. Porém, para uma solução ser adotada no Bitcoin necessita-se do consenso da rede.

Uma parte da comunidade discutia sobre aumentar o tamanho do bloco (atualmente de 1mb) para 8mb ou variável. Essa solução faria com que mais transações coubessem num único bloco, e o limite de 2000 transações seria aumentado. Essa solução parecia ser muito boa, mas possuía um defeito. O aumento do tamanho do bloco faria o tamanho da blockchain aumentar na mesma proporção que o número de transações. Atualmente a blockchain do Bitcoin possui aproximadamente 135gb. Logo, qualquer HD com uma capacidade de 200gb (algo bem normal hoje) ou mais conseguem armazenar a blockchain. Entretanto, com o aumento da blockchain de forma exponencial, sendo proporcional ao número de transações, o armazenamento começa a ficar mais complicado. Dispositivos de armazenamento maiores necessitam entrar em cena.

Crescimento linear da blockchain (limite de 1mb por bloco)

Mas qual é o problema disso? Hoje a rede possui aproximadamente 9500 nodes que armazenam a blockchain em seus computadores, verificam e auditam os blocos e as transações. Esses nodes não recebem nenhum incentivo por emprestarem seus computadores à rede, diferentemente dos mineradores, mas são extremamente necessários. Sem eles a blockchain e consequentemente o Bitcoin não existiriam, eles são a memória da rede. É importante que existam cada vez mais nodes garantindo a segurança da rede e armazenando a blockchain em cada parte do mundo, evitando assim que um governo, por exemplo, confisque a blockchain, altere os dados ou destrua a rede. Nodes descentralizam a rede.

Número atual de nodes e localização deles

Mas imaginemos que a blockchain cresça de tamanho ao ponto que essas pessoas não consigam mais guardar a blockchain em seus computadores, sendo que só datacenters tenham a capacidade de faze-lo. Isso gera uma centralização perigosa, pondo em risco o Bitcoin. Além disso, cada pessoa nova que deseja rodar um node teria que verificar todos os blocos da rede, necessitando um alto poder computacional e tempo.

Outra solução de escalabilidade era o SegWit. O SegWit não resolvia imediatamente o problema de escalabilidade, mas criava um alívio temporário na rede que estava congestionada, mantendo o tamanho do bloco inalterado. Além disso, o SegWit abria a oportunidade de serem criados mecanismos de transações seguras fora da blockchain (off-chain), a Lightning Network por exemplo.

Nenhuma das propostas conseguia o consenso da rede. Jihan Wu (CEO da Bitmain, maior mineradora do mundo) começou a atacar a rede fazendo milhares de micro transações, congestionando a rede, com o objetivo de passar a sua agenda política.

Número de transações durante o spam attack e depois de aprovado o NYA

Até que em meados de maio de 2017, a portas fechadas, algumas corporações importantes do meio Bitcoin fecharam um acordo, chamado de New York Agreement (NYA). O acordo sugeria que o SegWit fosse ativado até agosto de 2017 e após três meses o tamanho do bloco fosse aumentado para até 8mb. Seria uma junção das duas propostas anteriores.

De fato o SegWit foi ativado em agosto de 2017, porém as pessoas que não concordavam com a ativação do SegWit fizeram um fork na rede e criaram o BCH (Bitcoin Cash), quebrando uma das propostas do NYA: evitar um split na rede (divisão da rede em duas).

Agora a rede se prepara para o novo fork para aumentar o tamanho do bloco. Mas há controvérsias. Uma grande parte da comunidade e empresas de Bitcoin não apoiam a ativação do SegWit2x (movimento NO2X), incluindo os desenvolvedores atuais do Bitcoin (Core), as maiores exchanges e alguns mineradores.

O programa do SegWit2x (btc1) está sendo desenvolvido por Jeff Garzik (antigo desenvolvedor do Core) e é apoiado por Jihan Wu e a maioria dos mineradores. A comunidade está vendo isso como um golpe dos mineradores para tirar os desenvolvedores atuais do Bitcoin e passar o controle a desenvolvedores próximos dos mineradores. Além disso, pelo aumento do tamanho do bloco, caímos na questão da centralização exposta nesse artigo.

A equipe do Core desenvolveu um mecanismo de desligar os nodes que rodarem o programa do btc1, tentando evitar que eles interfiram na blockchain e protocolo atuais, visto que o número total de nodes apoiando o btc1 é ínfimo comparado ao Core.

6958 nodes do Core vs 1634 nodes rodando btc1, btc abc e btc unlimited

Porém, Jeff Garzik camuflou o programa para quem rodar o Core não ver quem são os nodes que estão rodando o btc1. Além disso, Jeff Garzik se recusa a implementar replay protection (código de proteção para que não haja conflito entre as duas moedas depois do fork). Ou seja, há a clara intenção de prejudicar a rede para tirar o controle dos usuários e passar aos mineradores.

Assim, parece óbvio que o SegWit2x não é necessário, e pior, é prejudicial para o Bitcoin. A escalabilidade será feita através do SegWit original e a Lightning Network, que processará milhões de transações por segundo, quase de graça.

Caso o SegWit2x seja largamente adotado e passe a ser considerado o Bitcoin, essa seria a prova que uma moeda descentralizada nunca funcionaria.

Se você chegou até aqui e gostaria de contribuir para que o SegWit2x não seja uma ameaça, baixe o programa do Bitcoin Core e rode um full node, nem que seja por algumas horas do dia.

Farei um post em breve sobre como instalar e rodar um node.

Endereço BTC: 1JMLLNnMJu9v1t6ygG697KsBTFguayA1P

--

--

Otavio Bonder

Forensic Accountant, future Software Engineer, bitcoin maximalist, libertarian. Have any doubts? Follow me! @otaviobonder