Block Header Format
NetZero blocks are standard Ethereum headers. Consensus data is carried in extraData, so any Ethereum tool can parse a block, and a NetZero node can verify one offline.
extraData layout
vanity 32 bytes free-form (proposer identification)
seat 1 byte index (0–9) of the proposing validator
validators 10 × 20 only on checkpoint blocks (number % epoch == 0): the seat list for the next epoch
voteCount 1 byte number of votes carried for the PARENT block
votes count × 66 each: seat (1 byte) + secp256k1 signature (65 bytes)
seal 65 bytes proposer signature
The genesis block uses the shorter layout vanity | validators | seal.
Signatures
- Proposer seal: signs
keccak256(RLP(header with extraData minus the seal)). Everything, including the votes, is covered. - Vote: each validator signs
keccak256("NZC-VOTE-v1" || chainId(32 bytes) || number(8 bytes) || blockHash)over the block it votes for. Votes for blockNappear in the header ofN+1. The chain ID prevents replay across networks.
Other header fields
| Field | NetZero value |
|---|---|
coinbase | Fee sink 0x…1006 on every block |
difficulty | 2 if the seat was in turn, 1 if out of turn |
nonce, mixHash | zero |
uncleHash | empty list hash; uncles are not allowed |
baseFeePerGas | EIP-1559 value with the 1,000 gwei floor |
withdrawalsRoot | root of the block's mining shares, carried as amount-0 withdrawals; the empty-list root before block 29,400 or when a block has no shares |
Verification order
A node verifies, in this order: extra-data layout, coinbase, difficulty, gas limit and gas used, base fee, parent linkage and timestamp, conflict with the local finalized block, validator set for the height, checkpoint list (if any), proposer signature and turn, recent-seal rule, then each vote's signature against the parent's validator set. If the votes reach quorum, the parent is marked final.
RPC
nzc_votes(blockHash) returns the votes a node has collected for a block; nzc_finalized the highest final block; nzc_validators(number) the seat list that governed a height.
