Stale Block은 무효한 블록이 아닙니다. 수락될 때는 합의 규칙을 충족했지만 다른 유효한 가지가 더 많은 chainwork를 쌓아 활성화된 것입니다. 그 안의 거래는 다른 곳에서 확인될 수 있지만 해당 블록의 coinbase 보상은 활성 UTXO 집합에 속하지 않습니다. 분산된 채굴과 0이 아닌 전파 시간이 만들어 내는 일반적인 결과입니다.
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.