Null blocks
A block exists for every 30-second slot since genesis, whether or not anyone produced one. When a slot closes with no candidate that can be committed, it is a quiet slot, and every node builds the same null block for it. The chain never stalls.
What a null block is
The null block for a height and parent is fixed: version 1, all-zero miner key, signature and slot fields, zero merkle root, no transactions and no coinbase. Its election seed is derived by the normal rule with a fixed null identity and an all-zero slot secret, so the beacon chain continues unbroken. Each node constructs it rather than receiving it, so nothing crosses the network. Null blocks mint nothing and are stored and served like ordinary blocks.
Why a quiet slot is not a failure
A slot can be quiet because no eligible miner happened to be online, because none of the top candidates' bodies arrived and validated in time, or because a round's tickets came up blank. The protocol expects this: rather than wait, every node settles the slot the same way and moves on. In the first 36 hours only holders of genesis ticket records can mine, so quiet slots then are normal.
Quiet slots are silent and deterministic, so a chain whose height and hashes agree across nodes says little about how well the nodes underneath are connected; that has to be read from each node's own telemetry. For the same reason, silence is never treated as evidence that a peer misbehaved.
Why a late real block outranks it
A null block's score is defined as 0, strictly below the lowest real score, 1. Any real block for that height therefore outranks it, and if a late winner surfaces, fork choice replaces the null in a reorg of depth 1, with no ban and no penalty for anyone.