O debate de escalabilidade do Bitcoin parece estar se dirigindo para um clímax ultimamente, com duas propostas ganhando força significativa. Em uma extremidade, existe a Bitcoin Improvement Proposal 148 (BIP148), um soft fork ativado pelos usuários (UASF) originalmente proposto pelo desenvolvedor de pseudônimo “shaolinfry”. Por outro lado, há SegWit2x, um acordo entre um número significativo empresas e mineradores de bitcoin.
A boa notícia é que ambas as propostas têm uma solução de curto prazo em comum: ambos planejam ativar Segregated Witness (SegWit). A má notícia é que o método de ativação dos dois são diferentes, o que poderia levar a uma divisão da moeda.
A partir de hoje, parece que esse cisma será evitado – pelo menos inicialmente. A equipe de desenvolvimento do SegWit2x planeja implementar o BIP91, uma proposta do engenheiro da Bitmain Warranty (Não confundir com a Bitmain) James Hilliard que habilmente torna compatíveis os dois métodos de ativação conflitantes.
Veja como:
BIP141
A implementação atual da SegWit é definida pelo BIP141. Esta versão está incluída no último lançamento do Bitcoin Core e está amplamente implantada na rede Bitcoin. A BIP141 é ativada através do método de ativação definido pelo BIP9. Isso significa que 95 por cento de todos os blocos dentro de um período de duas semanas precisam incluir um dado: “bit 1.” Isso indica que um minerador está pronto para a atualização. Como tal, o SegWit seria ativado se a grande maioria dos mineradores sinalizassem estar prontos para isso.
Ou essa foi a intenção. Até agora, apenas cerca de 30% do poder de hash está sinalizando suporte para a atualização. Há muita especulação quanto ao porque disso, mas quase certamente não tem nada a ver com (falta de) prontidão.
É por isso que outros métodos de ativação estão cada vez mais sendo levados em consideração.
BIP148
BIP148 é um soft fork ativado pelo usuário (UASF), projetado especificamente para acionar a BIP141.
Em 1º de agosto, qualquer pessoa que esteja executando o software Bitcoin que implementou o BIP148 começará a rejeitar todos os blocos que não incluam o bit 1, os dados de sinalização da SegWit.
Isto significa que se uma mera maioria de mineradores (por força de hash) executa este software, eles rejeitarão todos os blocos da minoria de mineradores que não. Como resultado, a maioria dos mineradores sempre terá a cadeia válida mais longa de acordo com todos os nós da Bitcoin na rede. Consequentemente, todos os nós BIP141 implementados verão uma cadeia que inclui mais de 95 por cento dos blocos de bit 1, o que significa que o SegWit seria ativado na rede.
No entanto, se BIP148 não é suportado por uma maioria de mineradores (por força de hash), a blockchain do Bitcoin pode ser dividir em dois. Nesse caso, efetivamente haveria dois tipos de Bitcoin, onde um seria ativado o BIP148 e o outro não. Isso pode ser resolvido ao longo do tempo – ou não.
SegWit2x
O SegWit2x (também conhecido como “SegWit2MB” ou “Acordo de Silbert”) é o acordo de escala alcançado por um número de empresas de Bitcoin e mais de 80% dos mineradores (por força de hash), elaborado antes da Conferência Consensus de 2017.
Por algum tempo, os detalhes em torno do SegWit2x não eram muito específicos. Como o nome sugere, tudo o que era realmente conhecido era que o SegWit estava incluído no acordo, e que incluiu um hard fork de duplicar o “tamanho base dos blocos” do Bitcoin para dois megabytes (2MB).
E, é claro, a SegWit deveria ser implementado usando um método de ativação diferente. Como a proposta BIP141 original, o SegWit2x deveria ser ativado pelos mineradores através da quantidade de hash. Mas onde o BIP141 requer suporte de 95% dos mineradores, o SegWit2x exigiria apenas 80%. Além disso, a prontidão da SegWit2x seria sinalizada usando outro pedaço de dados de ativação: “bit 4” em vez de “bit 1.”
Isso faz com que o SegWit2x seja incompatível com o BIP141 e especialmente com o BIP148: diferentes nós estarão olhando para diferentes bits de ativação, o que significa que eles poderiam ativar o SegWit em diferentes circunstâncias e em momentos diferentes.
BIP 91
Agora, parece que a BIP91 forneceu a solução.
BIP91 é uma proposta do engenheiro da Bitmain Warranty (que não deve ser confundida com a Bitmain), James Hilliard, que foi projetado especificamente para evitar uma divisão da moeda, tornando compatível o SegWit2x e o BIP148.
A proposta se parece com a BIP148 até certo ponto. Após a ativação do BIP91, todos os nós BIP91 rejeitarão quaisquer blocos que não sinalziarem suporte para o SegWit através do bit 1. Como tal, se a maioria dos mineradores (por força de hash) executar BIP91, a cadeia válida mais longa do Bitcoin mais será composta apenas por blocos sinalizando a SegWit e todos os nós comuns do SegWit BIP141 ativarão a atualização do protocolo.
Onde BIP91 difere do BIP148 é que ele não possui uma data de ativação definida, mas que, em vez disso, é desencadeado pelo poder de hash. Os nós BIP91 rejeitarão quaisquer blocos de sinalização não SegWit se, e somente se, 80% dos blocos indicarem primeiro dentro de dois dias, o que eles farão.
Esta indicação é feita com o bit 4. Como tal, o Acordo de Silbert pode ser tecnicamente mantido – 80% de ativação de hash com o bit 4 – enquanto ao mesmo tempo ativar a proposta existente da SegWit. E se isso for feito antes de 1 de agosto, também é compatível com o BIP148, já que os nós BIP148 rejeitariam os blocos não-bit 1 da mesma forma.
Esta proposta dá aos mineradores um pouco mais de seis semanas para evitar uma divisão da moeda, sob seus próprios termos acordados. Com uma data de lançamento do SegWit2x prevista para 21 de julho, isso não deve ser um problema … assumindo que os mineradores realmente irão adiante.
Artigo escrito por Aaron van Wirdum