Nossas
Publicações

Bitcoin Blockchain – Hard Fork

Blockchainfork 3

Hard Fork se traduz como uma bifurcação, em outras palavras, em algum momento Bitcoin pode se dividir em duas, uma denominada Bitcoin Unlimited – BTU e a a conhecida Bitcoin Core – BTC. Qual sobrevive como Bitcoin? e qual se torna uma Altcoin (moeda alternativa) ou simplesmente desaparece?

Trata-se de um assunto complexo e muito técnico, mas nosso objetivo é lhe mostrar, com certa simplicidade, qual a discussão e o que está em jogo, com a colaboração de Rafael Câmera Santos.

Há algum tempo, players ligados a Bitcoin estão discutindo sobre a capacidade de processamento de transações com Bitcoins. Todos concordam que a eficiência deve ser melhorada, mas discordam na forma. De que eficiência estamos falando?

Cabe ao minerados registrar no blockchain as novas transações de compra e venda de Bitcoins, isto é feito cada vez que ele consegue resolver uma questão matemática e gera um novo bloco (mineração). A cada bloco gerado o minerador recebe 12,5 Bitcoins como prêmio. Um novo bloco é gerado a cada 10 minutos, em média.

A cada novo bloco minerado se adiciona o registro das transações com Bitcoins (transferência de um endereço para outro), entretanto o tamanho do bloco é limitado a 1 megabyte, como resultado, cerca de 14 transações são registradas por segundo. Com o aumento do volume de transações com Bitcoin, há hoje um grande backlog de transações para serem registradas no blockchain.

Isto gerou uma concorrência para o registro de transações, resultando em pagamento de fees para ganhar prioridade. Esses fees chegam até US$2,00 por transação, o que inviabilizaria registros de transações de pequena monta.

Na criação do Bitcoin, Satoshi Nakamoto explica que a limitação de 1MB no tamanho do bloco tinha por objetivo proteger a blockchain contra spam. Afinal, sem um limite, alguém pode usar a blockchain para armazenar e transmitir outras informações ou dados fora bitcoin, como Satoshi fez no primeiro bloco gerado, ele escreveu “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks” (https://en.bitcoin.it/wiki/Genesis_block).

Um grupo de desenvolvedores do software Bitcoin (software padrão da tecnologia) desenhou uma proposta para aumentar a capacidade do bloco, chamada Bitcoin Unlimited. Entretanto, grande parte dos desenvolvedores que suportam Bitcoin Core, embora aceitem a ideia de aumentar a capacidade de processamento, não aceitam a alternativa que gera um “Hard Fork”, eles defendem uma solução chamada “Segregated Witness” (Testemunha segregada, em tradução livre), também conhecida como SegWit.

Esta atualização redesenha o processo de verificação das transações no blockchain, tornando-o mais eficiente. A mudança no protocolo remove a assinatura digital contida em cada transação de bitcoin e a coloca ao lado da blockchain. Ao diminuir o tamanho da transação, mais transações caberão em cada bloco, aumentando o número de transações processadas por segundo na rede Bitcoin. As estimativas de quanto espaço será economizado em cada bloco após a entrada do SegWit variam de 75% a 400%. Com isso, espera-se que o problema de escalabilidade da tecnologia seja aliviado.

Os arquivos de assinatura que forem separados das transações poderão, no final do processo, ser descartados, liberando espaço de armazenamento no disco rígido. A importância das assinaturas se dá exclusivamente na verificação do bloco. Quanto mais antigo é o bloco, menor a chance de ele precisar ser verificado novamente.

A implementação do SegWit não será feita de forma instantânea, embora existe um forte consenso por trás da proposta. O problema para implantação do SegWit é o fato de que para ser adotada, essa versão precisará da adesão de 95% da rede de mineradores. Somente quando esse percentual fizer a atualização é que poderemos ver os ganhos de eficiência se propagarem através de toda rede.

Os que defendem SigWit acreditam não existir uma razão para a maioria dos mineradores se opor à atualização, uma vez que ele não apresenta qualquer risco ao Bitcoin e à possibilidade de alguém perder dinheiro com a sua implementação.

O código do Bitcoin é público para qualquer pessoa ler ou copiar (‘fork’) para seu próprio projeto. Como tal, é possível para diferentes versões do Bitcoin para executar lado a lado na rede.

O Bitcoin Unlimited difere do Bitcoin Core porque o parâmetro de tamanho do bloco não é codificado de forma rígida – os nodes e os mineradores suportam o tamanho desejado. Então, ele depende de uma idéia chamada “consenso emergente”, definida pelos defensores de Bitcoin Unlimited assim:

“Um consenso emergente surgirá com base na economia de livre mercado, à medida que os nodes e mineradores convergem em pontos focais de consenso, criando no processo uma entidade viva e respiratória que responde de modo livre e descentralizado às condições do mundo real”.

No caso do tamanho do bloco, a idéia é que através do mercado livre, os mineradores chegarão a um acordo sobre um tamanho de bloco. No entanto, os usuários podem “votar” em outros parâmetros também.

Dependendo de quem você perguntar, Bitcoin Unlimited é o futuro do Bitcoin ou uma implementação quebrada do software.

Para resumir um debate reconhecidamente complexo, cada lado quer aumentar a capacidade da rede, mas querem fazê-lo por métodos diferentes. Hoje, executar ou suportar o Bitcoin Unlimited é basicamente sinônimo de desejar um ajuste ao parâmetro de tamanho de bloco do Bitcoin, definido em 1MB hoje.

Entre a comunidade técnica, há muitos que sentem que o Bitcoin Unlimited pode não ser um substituto seguro para o Bitcoin Core. Alguns desenvolvedores argumentam que a abordagem não funciona em nível técnico. Uma das razões é que o software entrega aos mineradores muito controle sobre as decisões do protocolo. Outro, é que muitos desenvolvedores pensam que ‘consenso emergente’, na prática, levaria a “hard fork” da blockchain (a criação de versões diferentes e concorrentes da rede).

O “Hard Fork” (bifurcação) acontece quando mineradores geram blocos com tamanho superior a 1MB, que não podem ser reconhecidos na blockchain Biticoin Core, criando assim uma outra blockchain, neste caso Bitcoin Unlimited. Essa bifurcação, significa que depois que ela ocorrer, os usuários de Bitcoin teriam duas carteiras, uma em cada blockchain, com os mesmos endereços. Logo, se um usuário fizer uma transferência em uma blockchain, algum atacante malicioso poderia copiar a informação da transação e realizar a mesma na outra blockchain, pois a assinatura e outros detalhes seriam o mesmo. Isso chama-se de Replay Attack

Na semana passada, um bug no código do sotware pôs em cheque a capacidade técnica dos desenvolvedores da Bitcoin Unlimeted, quando quase 70% dos nodes que executam o Bitcoin Unlimited ficaram fora do ar.

O bug abriu uma vulnerabilidade através da qual um determinado tipo de mensagem enviada para os nodes poderia fazer com que eles fossem colocados off-line. Os nodes são responsáveis por validar as transações em uma cadeia de blocos, mantendo uma cópia do registro inteiro do histórico de transações e, essencialmente, aplicando as regras da rede através do código.

O problema foi inicialmente marcado no site GitHub. Os detalhes espalharam-se então nas mídias sociais, provocando um amplo comentário de apoiadores e críticos do projeto. Durante o ataque, a contagem de node de BU caiu para 252, de acordo com o site de dados de criptografia Coin.Dance.

Houve ao menos um outro problema com o software. Um mês atrás, um bug no Bitcoin Unlimited upgrade levou o pool de mineração Bitcoin.com a perder 13,2 Bitcoins quando criou um bloco que não foi aceito pela rede.

Como já dissemos, esta discussão é altamente técnica e complexa, entretanto, não há dúvida que estamos assistindo uma batalha política, de um lado, sem citar nomes, alguns players parecem querer obter mais poder na rede e investem tempo e dinheiro para convencer mineradores e outros player a suportar Bitcoin Unlimited. Do outro lado, player defendendo Bitcoin Core e contra o risco de terminarmos com duas Bitcoins, sem saber ao certo o destina de cada uma.

O preço de Bitcoin sofreu perdas de mais de 7% em valor na sexta-feira e mais de US $ 2 bilhões no valor de mercado nas últimas 48 horas. O preço da Bitcoin caiu abaixo de US $ 1100 pela primeira vez em quase um mês.

Um grupo de quase 20 exchanges lançou planos de contingência no caso de a rede Bitcoin se dividir em dois, criando duas moedas concorrentes. Aparentemente, as empresas mais poderosas na comunidade Bitcoin estão reconhecendo que um “Hard Fork” pode ser inevitável. Sua declaração certamente atordoou o mercado de investimento. Muitas das principais exchanges Bitcoin do mundo, incluindo Bitfinex, Shapeshift, BTCC, Kraken, Bitstamp e dez outros lançaram uma declaração detalhando seus planos de contingência se o Bitcoin Unlimited fork contra o Bitcoin for lançado. Aqui está um trecho da declaração (você pode ver em sua totalidade aqui):

“Se uma “Hard Fork” (bifurcação) contenciosa ocorrer, a implementação do Bitcoin Core continuará a ser listada como BTC (ou XBT) e a nova como BTU (ou XBU), mas não sem proteção de repetição adequada (“Replay Attack”). Fazemos isso não por julgamento ou por razões filosóficas, mas sim por considerações práticas e operacionais”

Em resposta, nesta segunda-feira, a equipe de desenvolvimento de software Bitcoin Unlimited declarou à CoinDesk que está encorajando trocas Bitcoin para listar qualquer blockchain é apoiado pela maior prova de trabalho como ‘BTC’ Designação comum para Bitcoin.

“Nós, da Bitcoin Unlimited, estamos promovendo … as melhorias nas qualidades anti-fragilidade da Bitcoin através de uma maior descentralização, um aspecto disso é a remoção do planejamento central da economia de tamanho de bloco”, diz a declaração. E continua:

“No caso improvável de uma divisão blockchain, não estamos muito preocupados com o que as exchanges decidem listar os dois tickers como em termos de nome, no entanto, aconselhamos fortemente que as trocas observem o Consenso de Nakamoto: a cadeia com mais prova de trabalho é a Bitcoin unidade monetária (atualmente conhecida como BTC ou XBT) .Estamos encorajados que os exchanges estejam bem preparadas para o evento de uma divisão blockchain e que isso irá resultar no mercado decidir qual Bitcoin será o mais útil e, portanto, valioso no longo prazo .”

Não sabemos como será o fim dessa história, mas até lá, pode-se imaginar que os reflexos dessa “batalha” se traduza, entre outras coisas, em uma maior volatilidade dos preços de Bitcoin. Aos interessados, vale a pena acompanhar o site Coin Dance, que alem de mostrar como se dividem os apoiadores das duas alternativas, mantém atualizados diversos dados e estatísticas sobre Bitcoin.