No mundo da mineração, nem todo trabalho feito resulta em recompensa. Às vezes, mineradores ou pools resolvem um problema, mas por várias razões, seu trabalho acaba sendo inútil. Nas estatísticas dos pools, você pode encontrar o conceito de “stale shares”, e nas notícias, “orphan blocks”. Vamos entender o que esses termos significam e qual sua diferença fundamental.
Stale Shares (Compartilhamentos Obsoletos): um problema do seu lado
Este é o termo mais comum que um minerador comum encontra. Um compartilhamento obsoleto (Stale Share) é uma solução válida (share) que seu ASIC enviou ao pool, mas que chegou tarde demais. O pool o rejeita porque um novo bloco na rede já foi encontrado por outra pessoa.
Imagine que você está resolvendo um jogo de palavras cruzadas no jornal contra o tempo. Você escreveu a última palavra, mas neste momento, o rádio já anunciou todas as respostas corretas. Sua solução está correta, mas já é inútil.
Causas das Stale Shares:
- Ping alto para o servidor do pool. Quanto mais tempo o sinal leva do seu ASIC para o pool e vice-versa, maior a probabilidade de que, nesse tempo, outra pessoa encontre o bloco.
- Conexão de internet de baixa qualidade. Perda de pacotes e instabilidade da conexão levam a atrasos.
Como combater isso?
- Escolha um servidor de pool geograficamente mais próximo de você. Praticamente todos os grandes pools têm servidores na Europa, Ásia e América do Norte.
- Use uma conexão com fio (Ethernet) em vez de Wi-Fi. É sempre mais estável.
Uma pequena porcentagem de stale shares (até 1-2%) é considerada normal. Mas se esse valor for maior, vale a pena verificar sua conexão de internet e as configurações do pool.
Orphan Blocks (Blocos Órfãos): azar na corrida
Um bloco órfão (Orphan Block) é um bloco totalmente válido e corretamente formado que não foi incluído na cadeia principal do blockchain. Isso acontece devido a atrasos na rede.
A mineração é uma corrida global. Às vezes, dois mineradores em diferentes partes do mundo encontram a solução para um bloco quase simultaneamente, com uma diferença de frações de segundo. Ambos os blocos começam a se propagar pela rede. Mas, no final, a rede aceitará apenas um deles – aquele que chegar mais rápido à maioria dos nós. O segundo bloco se tornará um “órfão”.
Isso não é um erro de ninguém, mas apenas um elemento de aleatoriedade e o resultado de limitações físicas da velocidade de propagação da informação. O minerador ou pool que encontrar um bloco órfão não receberá nenhuma recompensa por ele.
Frequentemente, você pode encontrar o sinônimo “Stale Block” (bloco obsoleto), mas é importante não confundi-lo com “Stale Share” (compartilhamento obsoleto). Stale Block é um problema no nível de toda a rede, enquanto Stale Share é no nível da sua conexão com o pool.
Uncle Blocks (Blocos “Tios”): o conceito do Ethereum
Um bloco “tio” (Uncle Block) é um conceito único que existia na rede Ethereum quando ela operava no algoritmo Proof-of-Work. Essencialmente, é o mesmo bloco órfão, mas com uma diferença importante: o Ethereum recompensava parcialmente os mineradores por encontrá-los.
Por que isso era necessário? No Ethereum, o tempo de descoberta de um bloco era muito menor (cerca de 15 segundos) do que no Bitcoin (10 minutos). Isso levava a um número muito maior de blocos órfãos. Para motivar os mineradores a incluir informações sobre esses “órfãos” na cadeia principal (aumentando assim sua segurança), o protocolo pagava uma pequena parte da recompensa tanto por encontrar o “tio” quanto por incluí-lo no próximo bloco.
Na rede Bitcoin, não há o conceito de blocos “tios”. Qualquer bloco que não seja incluído na cadeia principal é um órfão e não é recompensado.