

Um orphan block é um bloco cujo bloco pai é desconhecido ou não existe na rede blockchain. Nos primórdios do desenvolvimento da tecnologia blockchain, especialmente na rede Bitcoin, estes blocos representavam um desafio técnico para os nós da rede. Com versões mais antigas do Bitcoin Core, os nós podiam receber e processar blocos mesmo quando faltavam dados essenciais sobre a sua ancestralidade ou sobre os blocos pai.
Esta situação mudou de forma significativa com o lançamento do Bitcoin Core versão 0.10, no início de 2015. Esta atualização de software introduziu mecanismos mais avançados de validação de blocos e protocolos de rede, eliminando praticamente a ocorrência de orphan blocks no sentido literal. Os processos de validação reforçados passaram a assegurar que blocos sem blocos pai verificáveis deixassem de ser aceites ou propagados na rede. Apesar desta evolução técnica, a expressão "orphan block" manteve-se na comunidade das criptomoedas, embora o seu significado tenha evoluído ao longo do tempo.
No debate atual sobre blockchain, existe bastante confusão entre os termos "orphan block" e "stale block", mesmo tratando-se de conceitos diferentes. O termo orphan block continua a ser amplamente utilizado no universo das criptomoedas, mas é muitas vezes usado de forma incorreta para descrever blocos válidos minerados que foram descartados da cadeia principal. Do ponto de vista técnico, estes blocos deveriam ser designados como "stale blocks" ou "extinct blocks".
A persistência do termo "orphan block" no uso corrente resulta sobretudo da forma como o software cliente de blockchain apresenta as recompensas dos blocos. Quando um bloco minerado não é incluído na cadeia principal, o software indica as recompensas associadas como "orphaned", levando a que a maioria dos participantes do ecossistema de criptomoedas adote este termo. Desta forma, mesmo que estes blocos tenham blocos pai conhecidos e verificáveis, a comunidade tende a referir-se a eles como orphan blocks em vez de utilizar o termo tecnicamente mais correto "stale blocks". Esta convenção linguística está profundamente enraizada na cultura das criptomoedas, apesar de ser um equívoco técnico.
Os stale blocks surgem naturalmente devido à natureza distribuída e descentralizada das redes blockchain. Estes blocos são criados quando dois ou mais mineradores resolvem o enigma criptográfico e enviam os respetivos blocos válidos para a rede quase em simultâneo. Esta transmissão simultânea provoca uma bifurcação temporária na blockchain, levando a rede a dividir-se em duas ou mais versões concorrentes do registo de transações.
Quando ocorre uma divisão deste tipo, diferentes nós da rede podem receber blocos diferentes em primeiro lugar, consoante a sua localização geográfica e a conectividade de rede. Uns nós validam e constroem a partir de um bloco, enquanto outros fazem o mesmo com outro bloco. Ambos são criptograficamente válidos e cumprem os critérios de consenso. No entanto, o protocolo da blockchain determina que apenas uma cadeia seja reconhecida como a principal.
A resolução desta bifurcação temporária segue a regra da cadeia mais longa, um princípio basilar dos mecanismos de consenso em blockchain. À medida que os mineradores continuam a adicionar blocos, uma das cadeias acaba por superar a outra em comprimento. A rede atinge consenso aceitando a cadeia mais longa como a válida, enquanto a cadeia mais curta e os seus blocos são abandonados. Os blocos da cadeia abandonada tornam-se stale blocks e o trabalho computacional investido na sua mineração perde-se.
A natureza distribuída das redes blockchain implica que a transmissão de informação entre nós demora tempo, que pode ir de milissegundos a vários segundos, dependendo das condições da rede e da distância geográfica. Este atraso na propagação cria períodos em que vários blocos válidos podem ser minerados e transmitidos antes de a rede atingir consenso. Por isso, a geração de stale blocks é uma característica intrínseca dos sistemas blockchain baseados em proof-of-work.
A geração de stale blocks é um fenómeno totalmente natural nas redes blockchain e, na esmagadora maioria dos casos, resulta do acaso e não de ação deliberada. A natureza probabilística da mineração, associada à latência da rede e à distribuição global das operações de mineração, faz com que seja estatisticamente inevitável que ocorram descobertas simultâneas de blocos. Este fenómeno natural é geralmente inofensivo e representa apenas uma ligeira ineficiência do sistema, sem constituir ameaça à segurança.
No entanto, também é possível gerar stale blocks de forma intencional, quando agentes maliciosos tentam manipular a blockchain através de vários tipos de ataque. Atacantes sofisticados podem procurar criar cadeias alternativas válidas com o objetivo de executar ataques de double-spending ou reorganizar o histórico recente da blockchain. Estas tentativas exigem normalmente recursos computacionais elevados e são mais prováveis de ter sucesso em blockchains com menor hash rate ou em períodos de instabilidade da rede.
Na prática, os mecanismos de segurança das principais redes blockchain, juntamente com os incentivos económicos que alinham o comportamento dos mineradores com a segurança da rede, tornam extremamente difícil e dispendiosa a ocorrência de reorganizações maliciosas da cadeia. Quanto mais tempo um bloco permanece na cadeia principal, maior é o custo computacional de criação de uma cadeia alternativa capaz de o substituir. Esta característica garante uma certeza cada vez maior, ao longo do tempo, de que as transações registadas em blocos permanecerão permanentes e irreversíveis.
Um orphan block é um bloco sem bloco pai na blockchain. Surge devido a atrasos na rede ou inconsistências de dados nos nós. Estes blocos não são incluídos na cadeia principal e tornam-se inválidos à medida que a rede atinge consenso.
Os orphan blocks surgem quando vários mineradores descobrem soluções em simultâneo devido à latência e atrasos na rede blockchain. Isto acontece quando blocos concorrentes são criados quase ao mesmo tempo e apenas um é confirmado na cadeia principal, tornando os restantes orphaned.
Os orphan blocks provocam bifurcações temporárias na rede, reduzindo as recompensas dos mineradores, já que apenas uma cadeia se torna a principal. Os mineradores perdem as recompensas dos orphaned blocks, mas o consenso da rede estabiliza-se sem danos permanentes.
Os orphan blocks não são incluídos na cadeia principal, enquanto os uncle blocks são blocos válidos produzidos durante a mineração, mas não selecionados como descendentes diretos, permitindo aos mineradores receber recompensas parciais consoante a sua distância da cadeia principal.
Os mineradores normalmente não recebem recompensas pelos orphan blocks. Contudo, algumas blockchains oferecem compensações especiais. A Ethereum recompensava anteriormente os mineradores de orphan blocks a uma taxa reduzida, mas terminou essa prática após a transição para proof-of-stake.
Atualize os mecanismos de consenso e implemente tecnologia de sharding para melhorar a eficiência de sincronização dos nós, reduzindo assim a ocorrência de orphan blocks. Além disso, otimize a latência da rede e melhore a velocidade de propagação dos blocos na infraestrutura da rede.
O Bitcoin e a Ethereum ignoram ambos os orphan blocks e excluem-nos da cadeia principal. A Ethereum utiliza o protocolo Gossipsub para melhorar a eficiência de propagação dos blocos. Os orphan blocks não afetam a cadeia principal de nenhuma das redes.











