Hard Fork do Bitcoin: Você sabia que poderá haver até 5 Bitcoins diferentes?

Muitas pessoas tem me procurado para falar sobre o fork do Bitcoin que acontecerá no final de Julho: SegWit, UASF, Bitcoin Unlimited, SegWit2x, BIP 141, BIP 91, BIP 148, aumento de bloco e etc.

São tantas siglas e é um tema tão complexo que não há uma resposta simples e toda conversa acaba tomando horas. Mesmo assim não dá pra deixar tudo muito claro para um usuário regular ou que não esteja acompanhando toda a discussão das BIP's nos fóruns, comunidades e slacks, por exemplo.

Então me deparei com este ótimo texto do Aaron van Wirdum, da Bitcoin Magazine, onde ele explica o que acontece em cada uma das datas e como os usuários e mineradores devem se comportar (ou se preocupar) em cada momento.

Aproveitei para fazer uma tradução livre do texto, que segue abaixo.


Contagem regressiva para o SegWit: Estas são as datas para ficar de olho

O debate sobre a escala (aumento de bloco) do Bitcoin está entrando em uma fase crucial. As duas mais populares propostas disponíveis hoje — BIP148 e SetWit2x — ambas pretendem acionar o Segregated Witness ("SegWit") em menos de um mês, o que significa que uma (ou mais) atualização de protocolo estará operando em breve.

Ao mesmo tempo, há o risco real de uma divisão (split) no Bitcoin. Ambas BIP148 e SetWit2x poderiam divergir do protocolo atual, o que poderia dar início a mais outros splits.

Segue uma lista de datas para Julho, Agosto e depois, para ficar de olho.

Recapitulando: Ativação do Segregated Witness

Primeiramente um breve resumo sobre o Segregated Witness e seus possíveis métodos de ativação.

SegWit é uma atualização de protocolo retro-compatível, originalmente proposto pelo time de desenvolvimento Bitcoin Core (CoreDevs do Bitcoin). Ele é a peça central do "scaling roadmap" suportado pelo Bitcoin Core desde que a proposta de upgrade foi proposta em Dezembro de 2015, e sua implementação ativada em muitos dos nodes Bitcoin ativos na rede hoje. SegWit é também parte do "Acordo de New York" (New York Agreement): uma alternativa de scaling roadmap forjado entre um significante número de empresas de Bitcoin, incluindo muitos mineradores. E o "Bitcoin Improvement Proposal 148", ou BIP148, um "user activated soft fork (UASF)" (soft fork acionado pelos usuários), programado para 1o (Primeiro) de Agosto, também pretende acionar o SegWit.

A diferença está em como a ativação vai acontecer.

A primeira e original opção foi proposta pelo time de desenvolvimento Bitcoin Core. Seu código SegWit, definido pela BIP141, ativará se sinalizar que 95% do "hash power" (poder computacional) dentro de um período de 15 dias na mesma dificuldade, estiver ativo antes de 15 de Novembro. Assumindo que os mineradores que sinalizarem estarão prontos para suportar o upgrade, os riscos de um split no blockchain do Bitcoin e na moeda são mínimos.

Entretanto, atualmente somente 40 a 45% do hash power está sinalizando pelo BIP141. É por este motivo que um segmento de usuários Bitcoin tem planos de ativar o SegWit através do BIP148 UASF. Iniciando em 1o de Agosto, seus nodes rejeitarão todos os blocos que não sinalizarem pelo BIP141. Se esta proposta for suportada pela maioria dos mineradores (através do hash power), estes mineradores poderão sempre optar pela chain mais longa e válida, o que deveria ativar SegWit em todos os clientes "SegWit-ready" e então evitar o split. Mas se esta proposta for suportada pela minoria dos mineradores, uma nova chain BIP148 poderia surgir além do protocolo atual.

O Acordo New York, também chamado de "Acordo Silbert" (Silbert Accord) ou "SegWit2x", planeja ativar SegWit através da BIP91. Assim como a BIP148, todos os nós BIP91 rejeitarão qualquer bloco que não sinalize pela BIP141. Mas diferentemente da BIP148, os nós BIP91 deverão fazê-lo apenas se 80% do hash power sinalizar que suporta BIP91, dentro de um período de 2 dias. Isso deve minimizar a chance de um split.

Entretando, um segundo passo do Acordo New York é um hard fork para dobrar o tamanho do bloco. Essa alteração, em oposição ao Segregated Witness, não é retro-compatível, e poderia levar a um split forçado.


Agora sobre as datas:

14 de Julho: Deploy do BTC1

O software cliente que resulta do Acordo de New York é um fork no código principal do Bitcoin Core, chamado BTC1. A versão beta do BTC1 foi publicada em 30 de Junho. Mas de acordo com o roadmap do SegWit2x, dia 14 de Julho é a data em que os signatários do Acordo de New York devem instalar a versão beta do BTC1 e testá-lo.

21 de Julho: Início da sinalização BIP91

O time de desenvolvimento do SegWit2x espera que dia 21 de Julho seja a data quando os nodes BIP91 estarão ativos e rodando, e, importante, será o dia em que a sinalização dos mineradores se inicia.

Isto não deve afetar os usuários regulares.

Mas, se você é um minerador, você deve querer ajudar a ativar o SegWit, sinalizando que está pronto para o BIP91. (Isto é feito minerando o "bit 4" em um bloco; por exemplo, minerando com o BIP91 ou o software de mineração bitcoin que contém o patch para o BIP91)

23 de Julho (o quanto antes): Lock-in do BIP91

A data limite para a ativação da BIP91 requer que: dentro de uma série pré-definida de 336 blocos, 269 blocks sinalizem por estarem prontos. Isso significa algo em torno de 80% do hash power, por 2 1/3 dias. Então, assumindo que o SegWit2x foi aceito, a BIP91 poderia, no mínimo, se manter ativo (lock-in) em 23 de Julho.

Novamente, isso realmente não deveria afetar os usuários regulares.

Mas se você é um minerador e a BIP91 for ativada, você então terá 1 ou 2 dias para se atualizar de acordo com o fork BIP91. Se não fizer, você corre o risco de minerar blocos inválidos.

25 de Julho (o quanto antes): Ativação do BIP91

Em 25 de Julho, outros 336 blocos após o "lock-in" do BIP91 devem se seguir para fazer efeito, o quanto antes. Quaisquer blocos que não sinalizem prontos para o Segregated Witness (através da BIP144) serão rejeitados.

Isto ainda não deve afetar os usuários regulares.

Mas se você é um minerador, você deverá minerar apenas os blocos do topo (chain mais longa) prontos para o SegWit (BIP141). Senão você correrá o risco de ter seus blocos rejeitados pela maioria do hash power.

29 de Julho: Deadline para a BIP91

Se os mineradores Bitcoin quiserem evitar um split na moeda e no blockchain do Bitcoin, 29 de Julho é o primeiro deadline para eles.

Para garantir que o BIP91 do BTC1 estará ativado a tempo para ser compatível com BIP148, ele deve estar "locked-in" neste dia no máximo até 08:00 UTC. O quanto antes é melhor: quanto mais próximo do deadline, maior o risco de não estar ativo no horário.

Se a BIP91 não for ativada até este deadline, o Bitcoin está caminhando para uma "chain-split" (divisão de rede, criação de um novo "Bitcoin, p. ex.).

Se isto acontecer, e você é um usuário regular, e você não se preparou para um potencial chain-split do BIP148 UASF, então agora você terá apenas 2 dias para fazê-lo. E você realmente deveria fazê-lo. Este artigo mostra como.

Se o BIP91 não foi ativado até 29 de Julho e você é um minerador, agora você tem dois dias para decidir em qual chain você irá minerar em Primeiro de Agosto: na chain BIP148 ou na chain original ("Legada").

31 de Julho: Deadline da BIP141

Tecnicamente, 31 de Julho é o segundo deadline para os mineradores evitarem um split.

Neste dia (UTC), no máximo, ou a BIP191 será ativada, ou a BIP141 entrará em "lock-in". Em outras palavras, se a BIP91 não entrar a tempo, agora estará no período de 2 duas semanas na mesma dificuldade, onde 95% do hash power sinalizará suporte para o SegWit.

Na realidade, a chance é pequena de 31 de Julho coincidir com a data de fechamento do período de dificuldade. E mesmo que aconteça, é improvável ele entre um dia antes se o limite de 95% tiver acontecido.

E então, ambos usuários e mineradores deverão estar preparados para um potencial split, como explicado para o dia 29 de Julho. Mas 31 de Julho é realmente a sua última chance de estar preparado.

1o de Agosto: Ativação da BIP148

Este é o dia em que a BIP148 será ativada, o que o faz o terceiro e último deadline para os mineradores evitarem um split.

Em Primeiro de Agosto, às 00:00 UTC (note que ainda é 31 de Julho nos EUA), todos os nodes BIP148 começarão a rejeitar quaisquer blocos que não sinalizem pelo Segregated Witness (através da BIP141). Se os BIP141 ou BIP91 do Bitcoin Core estiverem "locked-in" e/ou ativados a tempo, então não deverá acontecer um chain-split.

Se nenhum dos dois aconteceu, a maioria dos mineradores (por hash power) agora tem uma última chance de evitar um split: suportando a BIP148 por conta própria. Isto deverá garantir que eles sempre (re-)optarão pela chain mais longa e válida de acordo com todos os nodes Bitcoin correntes, e irão ativar SegWit através da BIP141.

Se a BIP141, BIP91 e a BIP148 tiverem atraído hash power suficiente até Primeiro de Agosto, mas a BIP148 tiver pouca tração então a chain pode se dividir neste dia. Se isso acontecer, haverá dois tipos de Bitcoin, o que se refere como "148 Bitcoin" ou "148BTC" para o lado BIP148 do split, e o "Bitcoin Legacy"(Bitcoin Legado) ou "LegacyBTC" para o outro lado. (Essa divisão pode se resolver com o tempo, conforme o 148Bitcoin sempre estiver com a chain mais longa, mas esse não é o foco deste artigo)

Se você possuir bitcoins (ou seja: chaves privadas) no momento do split, você deverá ter automaticamente tanto bitcoins 148BTC como bitcoins LegacyBTC. Apesar de que, para acessar ambos os tipos, você provavelmente terá que baixar o novo software. Dito isto, se você é um usuário regular, o melhor seria parar de fazer transações ao menos até a situação ficar mais clara. Isto pode lhe custar dinheiro! Para mais informações leia este artigo.

Se o split acontecer e você é um minerador, você deverá agora decidir em qual chain você vai minerar. (Você ainda poderá trocar a chain a qualquer momento. Você deverá simplesmente escolher minerar na chain mais lucrativa, por exemplo.)

4 de Agosto: Potencial lançamento do Bitcoin ABC

Mesmo que a data exata não esteja escrita em pedra, em 4 de Agosto pode ser que você veja a introdução de um novo "Bitcoin": o Bitcoin ABC.

O maior fabricante de hardware para mineração de Bitcoin, a Bitmain, recentemente anunciou que se o BIP91 não for ativado antes de Primeiro de Agosto e a BIP148 estiver mostrando sinais de vida após essa data, eles vão lançar um "plano de contingência". Mais recentemente, a implementação que contemplará esse plano de contingência — chamado de "Bitcoin ABC"- foi anunciado na conferência Future of Bitcoin.

Bitcoin ABC vai compartilhar a história comum com o Bitcoin até Primeiro de Agosto, mas então, pelos 2 primeiros dias após, provavelmente será minerado de maneira privada pela Bitmain. Isso irá também incluir várias novas e incompatíveis regras no protocolo, e talvez a mais importante seja um aumento no tamanho do bloco.

Se você possuía bitcoin até o momento do split — Primeiro de Agosto 00:00 UTC — você deverá ter automaticamente "Bitcoin ABC" também. Mas você precisará, nesse caso, baixar o software novo para estar habilitado a enviar (e receber) as moedas. Mais informações estarão disponíveis se este evento ocorrer.

Se você é um minerador, você deverá estar apto a minerar Bitcoin ABC em 4 de Agosto (e talvez antes).

15 de Agosto: Alteração potencial no Proof-of-Work pelo BIP148

Enquanto esta data não está escrita em pedra também, 15 de Agosto poderá ser a introdução a outro tipo de Bitcoin, e será chamado de "NewPoW Bitcoin" ou "NewPoWBTC".

Como o UASF, o fork do BIP148 em Primeiro de Agosto é inicialmente feito pelos usuários — não pelos mineradores. Usuários começarão a rejeitar blocos que não sinalizem pelo Segregated Witness (através do BIP141). Isto deveria incentivar os mineradores a seguir a chain BIP148 (idealmente no ponto de que fosse a única chain disponível). Mas é algo para se pagar para ver. Pelo menos, alguns mineradores já indicaram publicamente que irão suportar o UASF.

Se o suporte ao 148Bitcoin for baixo, (alguns dos) seus usuários podem optar por implementar um hard fork para alterar o algorítmo de proof-of-work. Isso vai excluir o grupo atual de mineradores, fazendo seus hardware especializados em mineração (ASIC) se tornarem obsoletos no lado BIP148 do split, e poderia abrir a porta para novos mineradores — possivelmente re-decentralizando o cenário de mineração de volta para os usuários caseiros com seus CPU's e GPU's (ao menos temporariamente).

Um grupo de trabalho aberto do BIP148, em um sub canal do Slack da "Bitcoin Core Community" está atualmente trabalhando nos detalhes para serem propostos. Mas parece que se em 15 de Agosto, menos de 15% do total de hash power minerar o 148 Bitcoin, este hard fork vai ser lançado. Isso fará o split com o "Legacy Bitcoin" definitivo. E isso pode levar a outro split no lado 148 Bitcoin, onde alguns dos seus usuários declinarão se juntarem ao hard fork que altera o algorítmo de proof-of-work.

Se você é um usuário regular e tinha bitcoins no momento da divisão em Primeiro de Agosto, e você não gastou nada até 15 de Agosto, você provavelmente terá NewPoWBTC. Se você comprou ou recebeu 148BTC entre Primeiro de Agosto e 15 de Agosto, você deverá ter (apesar) agora NewPowBTC.

Mas se você gastou bitcoin em qualquer lado da divisão, não dá para saber. De novo: se você quiser ficar do lado seguro, não transacione até a situação se tornar mais clara. (Para mais informações, veja este artigo).

Se você é um dos poucos mineradores que mineram 148Bitcoin com hardware ASIC, você pode querer apontar seu hardware para outro lugar — ou desligá-lo completamente. (Isto depende, lógico, se não for mais lucrativo minerar 148BTC ou outra coisa).

E, obviamente, qualquer um será capaz de minerar NewPoWBTC sem hardware ASIC especializado.

Do meio para o final de Agosto: Segwit Lock-In

Se os mineradores evitaram o chain-split através da BIP141, BIP91 ou BIP148, o Segregated Witness deverá entrar em lock-in entre o meio para o final de Agosto. Isto não deve ser nada demais se acontecer através da BIP91 ou BIP148, como esperado, e não deve trazer muita mudança para todos.

Mas o que o lock-in significa é que todos os clientes prontos para SegWit começarão a reforçar as novas regras no próximo período de dificuldade: após outras duas semanas. Então se você é um usuário regular e quer fazer uso das novas funcionalidades ou deseja manter um alto nível de segurança, você então terá duas semanas para fazer upgrade no software que impõe SegWit.

Se uma divisão na rede não for evitada, a situação pode se tornar mais complexa. Pelo meio de Agosto, potencialmente poderia haver um, dois, três ou talvez mesmo quatro "Bitcoins": "148 Bitcoin", "NewPoWBitcoin", "Bitcoin ABC" e também o "Bitcoin Legacy".

No momento em que escrevo este artigo, é difícil dizer qual a melhor forma de lidar com a situação. Para um usuário regular, o melhor é sempre guardar suas chaves privadas, e provavelmente não transacionar até que toda a situação se resolva de uma forma ou de outra. (Para mais informações, veja este artigo).

Para o minerador, o melhor provavelmente será minerar a chain mais lucrativa.

Final de Agosto até meio de Setembro: Ativação da SegWit

Se a divisão da rede for evitada, SegWit será ativado nesse meio tempo. Se você estiver rodando um cliente compatível, você poderá aproveitar as novas funcionalidades enquanto mantém um alto nível de segurança.

Se a divisão não for evitada, a situação provavelmente será complexa demais para tentar prever.

Final de Outubro até meio de Novembro: Hard Fork SegWit2x

Até o final deste ano (até potencialmente o início de 2018), o hard fork da SegWit2x deverá acontecer. Para ser mais exato, este hard fork será ativado nos cliente BTC1, três meses depois do lock-in do SegWit. Esta ativação significa que um bloco base maior que 1 megabyte deverá ser minerado, o que fará os clientes BTC1 incompatíveis com todos os outros clientes Bitcoin que não tiverem o código do hard fork implementado.

Neste momento, parece certo que ninguém fará alterações no seu software para suportar este hard fork. A comunidade de desenvolvedores do Bitcoin em particular, quase que por unanimidade, rejeitou esta proposta, enquanto muitas empresas tem indicado intenções de não suportar a alteração e nem todos os usuários parecem concordar também. Assim, isso poderia levar a outra divisão na rede. (Teoricamente poderia levar ao quinto "Bitcoin", mas parece altamente improvável que haja 4 Bitcoins em primeiro lugar).

Como lidar com esta situação sendo um usuário regular será anunciado pela Bitcoin Magazine quando estiver mais próximo da data de acontecer.

Se você é um minerador e está apensas rodando BTC1 para ajudar a ativar SegWit, sem intenção de suportar o hard fork, você deve garantir que vai voltar para um cliente não-BTC1 neste ponto.

Este artigo será atualizado conforme as novidades.