Pular para o conteúdo
buybitcoinsmart

Glossário / Mineração e consenso

Reorganização da cadeia

Outros nomes: Reorganização da blockchain, Reorg, Chain reorganization.

O que é uma reorganização da cadeia?
Uma reorganização da cadeia é o que acontece quando seu nó descobre um ramo com mais trabalho acumulado, desconecta os blocos que havia aceitado e reconstrói a ponta da cadeia sobre o novo ramo.

Os nós não seguem a cadeia que viram primeiro. Seguem a que leva mais prova de trabalho, e quando aparece um ramo melhor, voltam ao ponto de bifurcação e refazem o caminho a partir dali. Quase todas as reorganizações na cadeia principal do bitcoin têm um bloco de profundidade e terminam em segundos; a mais profunda registrada, de 24 blocos em março de 2013, foi causada por um erro de software, e não por um atacante.

Como funciona

Uma reorganização de cadeia tem três etapas, e o nó executa todas sozinho, sem consultar ninguém.

Primeiro, ele volta da sua ponta atual até o último bloco que os dois ramos têm em comum, desfazendo cada bloco pelo caminho: as saídas que aquele bloco criou são removidas do conjunto de saídas não gastas, as saídas que ele consumiu são restauradas, e as suas transações voltam para a mempool. Depois, ele conecta os blocos do ramo concorrente em ordem, validando cada um exatamente como se tivesse acabado de chegar. Por fim, recalcula a mempool, descartando tudo o que já foi confirmado e mantendo tudo o que não foi.

É na segunda etapa que está a segurança. Ter mais trabalho é necessário, mas não suficiente. Se qualquer bloco do ramo concorrente falhar em uma única verificação de consenso, o nó para, marca aquele ramo como inválido e mantém a cadeia que já tinha. Um minerador com hashrate ilimitado ainda não consegue fazer um nó aceitar um bloco que paga a si mesmo demais ou que gasta uma saída duas vezes.

A regra é a maior quantidade de trabalho acumulado, não a cadeia mais longa. O trabalho é somado a partir da dificuldade com que cada bloco foi minerado, então um ramo com menos blocos minerados a uma dificuldade maior pode superar um mais longo. No bitcoin, as duas medidas quase sempre coincidem, porque a dificuldade só muda a cada 2.016 blocos.

A profundidade é o que separa a rotina do alarme. Um bloco de profundidade é manutenção normal. O Bitcoin Core trata qualquer coisa substancial como digna de nota e emite um aviso de bifurcação com muito trabalho ao operador quando vê um ramo concorrente se afastar mais de seis blocos da cadeia ativa.

Por que isso importa quando você compra bitcoin

As contagens de confirmações são uma aposta na profundidade de reorganização, e cada plataforma que você usa fez discretamente uma aposta por você.

Uma corretora que credita um depósito após três blocos decidiu que uma reversão de três blocos não é um risco contra o qual valha a pena se proteger. Uma que espera seis precificou o risco mais alto. Nenhum dos dois números vem do protocolo; ambos são política interna, e é por isso que o mesmo depósito é liberado em vinte minutos em uma plataforma e em mais de uma hora em outra. Quando você move bitcoins entre as corretoras que este site analisa, vale a pena verificar essa diferença antes de supor que algo deu errado.

Suas chaves não são afetadas por nada disso. Uma reorganização pode mudar quais transações estão na cadeia e em que ordem, mas não pode produzir uma assinatura, então bitcoins que estão em uma carteira que você controla não fazem parte da exposição. O que fica dentro do raio de impacto é o valor em movimento: um depósito que foi creditado mas ainda não foi enterrado, um pagamento que você aceitou por mercadoria, uma negociação ponto a ponto em que você liberou dinheiro em espécie com uma única confirmação.

A história deixa uma advertência instrutiva. Em 4 de julho de 2015, vários pools de mineração grandes estavam construindo sobre blocos que não tinham validado, uma prática conhecida como mineração SPV, e produziram uma cadeia de seis blocos que se revelou inválida. O Bitcoin.org publicou um alerta aconselhando os usuários a esperar 30 confirmações até que a situação se resolvesse. A lição não foi que o bitcoin é frágil; foi que a profundidade necessária depende do que está dando errado, e que uma confirmação nunca é muito.

Se você também tem criptomoedas menores de prova de trabalho, trate o histórico de reorganizações delas como uma questão totalmente separada. As corretoras exigem muito mais confirmações para cadeias que de fato sofreram reorganização, e essa exigência é um sinal público útil sobre o quão segura uma cadeia realmente é.

A reorganização de 24 blocos de março de 2013

A reorganização mais profunda que a cadeia principal do bitcoin já sofreu foi causada por duas versões do software que discordaram sobre um bloco que ambas deveriam ter aceitado.

O Bitcoin 0.8, lançado em fevereiro de 2013, substituiu o mecanismo de armazenamento Berkeley DB pelo LevelDB. Em 11 de março, chegou o bloco 225.430 com um número incomumente grande de entradas. Os nós que executavam o 0.8 o aceitaram. Os nós que executavam o 0.7 atingiram um limite de bloqueio do Berkeley DB que nunca tinham sido configurados para ultrapassar e o rejeitaram. A rede se dividiu em duas, e cada lado estava absolutamente certo de que o outro estava errado.

Os desenvolvedores se coordenaram pelo IRC em menos de uma hora e tomaram uma decisão incômoda: pedir aos pools que voltassem para o 0.7, abandonando deliberadamente o ramo com mais trabalho, porque era esse o ramo que a maioria dos nós em execução não conseguia seguir. A divisão durou cerca de seis horas. Quando a cadeia do 0.7 assumiu a liderança, o ramo descartado chegou a 24 blocos. Um processador de pagamentos, o OKPay, relatou ter sofrido gasto duplo durante essa janela.

A correção chegou dias depois no 0.8.1, que fez os nós novos imitarem o limite antigo até uma data de transição coordenada. O BIP50 documenta todo o episódio em detalhes e é a melhor coisa para ler sobre como o bitcoin lida com uma emergência real. Também é a razão pela qual a reorganização mais profunda da história do bitcoin é uma história sobre configuração de banco de dados, e não sobre poder de mineração.

Reorganização de cadeia vs hard fork

Uma reorganização de cadeia acontece dentro de um mesmo conjunto de regras e termina com todos de volta na mesma cadeia. Um hard fork muda as regras de modo que os dois ramos nunca possam se reconciliar, e ambas continuam crescendo como ativos separados, que foi o que aconteceu com o Bitcoin Cash em 1º de agosto de 2017. Uma é um desacordo temporário sobre qual cadeia válida é a melhor. A outra é um desacordo permanente sobre o que significa válido.

Reorganização de cadeia vs gasto duplo

Uma reorganização é um mecanismo; um gasto duplo é uma das coisas que se poderia fazer com ela, e raramente é o que de fato acontece. A imensa maioria das reorganizações simplesmente minera novamente as mesmas transações em outro bloco, então o pagamento de ninguém muda. Uma reversão exige que o ramo vencedor contenha uma transação conflitante que o atacante colocou ali de propósito, o que significa ou um poder de hashrate enorme ou uma sorte extraordinária. As tentativas de gasto duplo mais baratas nunca envolvem reorganização alguma, porque visam pagamentos que nunca foram confirmados em primeiro lugar.

Não confundir com

Perguntas frequentes

Qual é a profundidade máxima que uma reorganização da blockchain do bitcoin pode atingir?

Na prática, um bloco. A reorganização mais profunda da cadeia principal do bitcoin foi de 24 blocos em março de 2013, causada por uma incompatibilidade de banco de dados entre duas versões do software, e não pelo poder de mineração, e nada próximo disso aconteceu desde então.

Uma reorganização da blockchain pode tirar bitcoin da minha carteira?

Não. Uma reorganização muda quais transações estão na cadeia e em que ordem, e não pode mover bitcoins sem a sua assinatura. A exposição está nos pagamentos que você recebeu, mas ainda não viu enterrados sob vários blocos.

Por que as corretoras esperam várias confirmações antes de creditar um depósito?

Porque cada bloco adicional torna uma reversão que remova seu depósito muito menos provável. A espera é a plataforma comprando margem de segurança, e é por isso que o número é uma escolha de política interna que varia entre as corretoras, e não uma regra do protocolo.

Leia a seguir

Termos relacionados

Mais em Mineração e consenso

Ler esta página em inglês