Pular para o conteúdo
buybitcoinsmart

Glossário / Mineração e consenso

Bloco órfão

O que é um bloco órfão?
Um bloco órfão é um bloco cujo bloco pai seu nó ainda não viu, por isso não pode ser validado nem conectado, o que não é o que a maioria das pessoas quer dizer quando usa essa palavra.

A palavra tem duas vidas. No protocolo, ela descreve um bloco que chega fora de ordem, sem nenhum ancestral conhecido ao qual se ligar; no uso cotidiano, e na maioria dos exploradores de blocos, ela designa um bloco válido que simplesmente perdeu uma corrida, o que na verdade se chama bloco obsoleto. O Bitcoin Core deixou de guardar blocos órfãos por completo na versão 0.10, lançada em fevereiro de 2015.

Como funciona

Um bloco órfão existe apenas no intervalo entre receber um bloco e saber onde ele se encaixa.

A validação é sequencial. Para verificar um bloco, é preciso o conjunto de saídas não gastas como estava imediatamente antes dele, e esse conjunto é construído aplicando todos os blocos anteriores em ordem. Entregue a um nó um bloco cujo pai está faltando e ele poderá verificar a prova de trabalho no cabeçalho, mas nada além disso: nem as taxas, nem o subsídio, nem se alguma entrada já havia sido gasta. O bloco é impossível de verificar, e não inválido.

Versões antigas do Bitcoin Core guardavam esses blocos na memória e esperavam o bloco pai que faltava aparecer. Isso era necessário porque os blocos eram solicitados por anúncio, então um par podia facilmente entregá-los fora de ordem. A sincronização que baixa primeiro os cabeçalhos eliminou essa necessidade. Agora um nó baixa e verifica a cadeia de cabeçalhos de 80 bytes antes de pedir o corpo de um único bloco, o que significa que ele sempre sabe onde um bloco que chega se encaixa e pode pedir corpos a vários pares ao mesmo tempo sem confusão. O conjunto de blocos órfãos foi excluído nesse mesmo lançamento, e em um nó moderno um verdadeiro bloco órfão é praticamente impossível de produzir.

Uma coisa manteve o nome. O Bitcoin Core ainda mantém um conjunto de transações órfãs para transações cujas entradas ele não viu, guardando até 100 delas por padrão, na aposta razoável de que a transação pai que falta está apenas alguns segundos atrás. Então, quando a palavra aparece nos próprios registros ou na configuração do Core, ela fala de transações, nunca de blocos.

Onde você vê isso

A palavra órfão sobrevive principalmente em lugares que estão descrevendo outra coisa.

Os exploradores de blocos são a maior fonte de confusão: vários publicam uma página de blocos órfãos que lista blocos válidos descartados quando um bloco concorrente venceu, e a cobertura jornalística copia o rótulo. Os painéis dos pools de mineração fazem o mesmo, informando uma taxa de órfãos que na verdade é uma taxa de blocos obsoletos. A documentação das altcoins, em grande parte copiada da wiki dos primeiros tempos do bitcoin, usa o termo para os dois significados indistintamente.

O Bitcoin Core não. Peça a ele as ramificações concorrentes que conhece e ele reporta cada ponta com um status de active, valid fork, valid headers, headers only ou invalid. Não existe um status de órfão, porque a situação que a palavra descrevia não ocorre mais.

Para o leitor, o teste útil é se o bloco em questão chegou a ser verificado alguma vez. Se alguém puder dizer a você a altura dele, o número de transações e o pool que o minerou, o bloco foi totalmente validado e perdeu uma corrida, então a palavra que você quer é obsoleto.

Bloco órfão vs bloco obsoleto

Um bloco órfão não pode ser verificado porque seu pai é desconhecido. Um bloco obsoleto foi verificado, era completamente válido e foi abandonado apenas porque outro bloco da mesma altura foi construído antes sobre ele. Quase todo mundo que diz órfão quer dizer obsoleto, incluindo vários exploradores, então vale a pena perguntar a qual deles uma fonte se refere antes de tirar conclusões dela. Nenhum dos dois custa nada a você como usuário: pagamentos em um bloco descartado voltam para a mempool e normalmente são minerados de novo em um ou dois blocos.

Não confundir com

Perguntas frequentes

Um bloco órfão é o mesmo que um bloco obsoleto?

Não, embora a maioria das pessoas use as palavras indistintamente. Um bloco órfão não tem um pai conhecido e não pode ser verificado. Um bloco obsoleto é completamente válido e simplesmente perdeu a corrida para fazer parte da cadeia principal, que é o que os exploradores que listam blocos órfãos na verdade mostram a você.

Eu perco dinheiro se minha transação estava em um bloco que foi descartado?

Não. As transações que não entram na cadeia vencedora voltam para a mempool e quase sempre são mineradas no bloco seguinte ou no outro. A única exposição real é tratar um pagamento como definitivo após uma única confirmação.

Leia a seguir

Termos relacionados

Mais em Mineração e consenso

Ler esta página em inglês