Stale Block は無効なブロックではありません。受け入れ時にはコンセンサスルールを満たしていましたが、別の有効な分岐がより多くの chainwork を蓄積してアクティブになりました。トランザクションは別の場所で確認される可能性がある一方、このブロックの coinbase 報酬はアクティブな UTXO 集合に含まれません。分散したマイニングと、伝播に時間がかかることの通常の帰結です。
Stale Block は proof of work、構造、トランザクション、スクリプトの検証を通過しても、アクティブチェーンから外れる場合があります。有効性は競争に参加できるかを決め、チェーン選択はノードがどの有効な履歴をたどるかを決めます。 [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — chain activation and mempool reconciliation]
二つのマイナーが伝播にかかる時間内に、同じ親ブロックに続くブロックをほぼ同時に見つける場合があります。一方の分岐がより多くの作業量を蓄積するまで、ネットワークの異なる部分が一時的に別々の末端を認識します。 [Bitcoin Developer Guide — Block Chain]
Bitcoin はノードが有効だと考える分岐の間でのみ chainwork を比較します。累積作業量が大きい分岐がアクティブとなり、負けた分岐のブロックはそのノードから見て stale になります。 [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — chain activation and mempool reconciliation]
日常的には Orphan Block を Stale Block の同義語として使うことがありますが、厳密ではありません。Orphan は親がまだ不明なブロックや、入力がまだ不足しているトランザクションも指します。分岐の競争に負けた有効なブロックとは別の意味です。 [Bitcoin Developer Guide — Block Chain]
Stale Block 内の coinbase 以外のトランザクションは、自動的に取り消されるわけではありません。勝った分岐にも含まれている場合や、Reorg 後に mempool へ戻る場合があります。戻るには有効なままで、新しい履歴と競合せず、mempool の受け入れ条件を満たす必要があります。 [Bitcoin Core v29.0 — chain activation and mempool reconciliation]
Stale Block の coinbase はアクティブな chainstate に含まれないため、その補助金と手数料は勝った履歴上で使用できる報酬にはなりません。そのため、素早い伝播と正しい末端の選択はマイナーに経済的な利益をもたらします。 [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — chain activation and mempool reconciliation]
Stale Rate は、発見された有効なブロックのうちアクティブチェーンに残らないものの割合です。伝播速度、ネットワーク構成、ブロック間隔に対する伝播時間の比率が影響します。プロトコルの固定定数ではありません。 [Bitcoin Developer Guide — Block Chain] [BIP 152 — Compact Block Relay]
BIP152 compact block relay は、ピアが大半のトランザクションをすでに mempool に持つ場合、少ないデータでブロックを伝送できます。再構築が速ければ、ネットワークの一部が新しい末端を知らない時間を短縮し、偶発的な分岐競争を減らせる可能性があります。不足するトランザクションは受信側が要求する必要があります。伝送が速くても、競合ブロックが発生しない保証にはなりません。 [BIP 152 — Compact Block Relay]
短い Reorg は、以前アクティブだったブロックを Stale Block に変えることがある chainstate の変更です。Double Spend 攻撃も同じ仕組みを利用できますが、Stale Block だけでは攻撃の証拠になりません。原因とチェーン選択の結果を区別する必要があります。 [Bitcoin Developer Guide — Block Chain] [Bitcoin Core v29.0 — chain activation and mempool reconciliation]
運用者はブロックハッシュをアクティブチェーンと照合し、親ブロック、高さ、chainwork、確認数、トランザクションのその後を調べられます。自身のセキュリティモデルにとって決定的なのは、自分の検証ノードの状態です。 [Bitcoin Core v29.0 — getblock]
理解を深めるには、この項目とあわせて次もお読みください Reorg, 承認, ブロック, ブロックヘッダー, Proof of Work, ビットコイン・マイニング. 次の項目からも参照されています Reorg, Mining Pool, Hashrate, Selfish mining.