46 / 691STALE

Stale Block

Bloco válido fora da cadeia ativa

Um Stale Block é um bloco Bitcoin válido que perde uma corrida temporária entre ramos concorrentes e não permanece na cadeia ativa selecionada segundo o Proof of Work acumulado.

Um Stale Block não é um bloco inválido. Quando foi aceite, cumpria as regras de consenso, mas outro ramo válido obteve maior chainwork e tornou-se ativo. As suas transações podem ser confirmadas noutro ramo, enquanto a recompensa coinbase desse bloco não faz parte do UTXO set ativo. É uma consequência comum da mineração descentralizada e de um tempo de propagação diferente de zero.

Um Stale Block pode passar pelas verificações de Proof of Work, estrutura, transações e scripts e, mesmo assim, desaparecer da cadeia ativa. A validade determina se um bloco pode competir; a seleção da cadeia determina qual das histórias válidas o nó segue. [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

Durante a janela de propagação, dois mineradores podem encontrar quase ao mesmo tempo um bloco cada um, ambos com o mesmo bloco pai. Diferentes partes da rede veem pontas diferentes durante um breve período, até um dos ramos obter mais trabalho acumulado. [Bitcoin Developer Guide — Block Chain]

O Bitcoin só compara o chainwork entre ramos que o nó considera válidos. O ramo com maior trabalho acumulado torna-se ativo e os blocos do ramo que perdeu são stale do ponto de vista do nó. [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

Na linguagem corrente, Orphan Block é frequentemente usado como sinónimo de Stale Block, mas essa terminologia é imprecisa. Orphan também pode designar um bloco ou uma transação para o qual ainda falta o bloco pai ou faltam entradas; isso não é o mesmo que um bloco válido que perdeu uma corrida entre ramos. [Bitcoin Developer Guide — Block Chain]

As transações de um Stale Block que não sejam coinbase não são automaticamente anuladas. Podem também estar no ramo vencedor ou regressar ao mempool após uma reorganização, desde que continuem válidas, não entrem em conflito com a nova história e cumpram as condições de admissão ao mempool. [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

A transação coinbase de um Stale Block não está no chainstate ativo; por isso, nem o subsídio do bloco nem as suas taxas constituem uma recompensa que possa ser gasta na história vencedora. O minerador beneficia, assim, economicamente de uma propagação rápida e da escolha correta da ponta da cadeia. [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

A stale rate representa a proporção dos blocos válidos encontrados que não permanecem na cadeia ativa. É influenciada pela velocidade de propagação, pela topologia da rede e pela relação entre o tempo de propagação e o intervalo entre blocos; não é uma constante fixa do protocolo. [Bitcoin Developer Guide — Block Chain] [BIP 152 — Compact Block Relay]

O mecanismo Compact Block Relay do BIP152 permite transmitir um bloco de forma mais eficiente quando os pares já têm a maioria das transações no mempool. Uma reconstrução mais rápida pode reduzir o tempo durante o qual parte da rede desconhece a nova ponta e, assim, limitar corridas acidentais entre ramos. O destinatário tem de pedir as transações em falta; uma transmissão mais rápida não garante que não surjam blocos concorrentes. [BIP 152 — Compact Block Relay]

Uma reorganização curta é uma alteração do chainstate que pode transformar um bloco anteriormente ativo num Stale Block. Um ataque de gasto duplo pode explorar o mesmo mecanismo, mas um Stale Block, por si só, não prova a existência de um ataque; é necessário distinguir a causa do resultado da seleção da cadeia. [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — chain activation and mempool reconciliation]

O operador pode comparar o hash do bloco com a cadeia ativa e verificar o bloco pai, a altura, o chainwork, o número de confirmações e o destino das suas transações. O estado do seu próprio nó de validação é decisivo para o seu modelo de segurança. [Bitcoin Core v29.0 — getblock]

Para ter uma visão mais completa, leia este verbete junto com Reorg, Confirmação, Bloco, Cabeçalho de bloco, Proof of Work, Mineração. Também há referências a este verbete em Reorg, Mining Pool, Hashrate, Selfish mining.

DOC · 001Bitcoin Developer Guide — Block ChainDocumentação ↗DOC · 002Bitcoin Core v29.0 — chain activation and mempool reconciliationFonte primária ↗DOC · 003BIP 152 — Compact Block RelayEspecificação ↗DOC · 004Bitcoin Core v29.0 — getblockDocumentação ↗
Fontes em primeiro lugar · Não é recomendação de investimento