The participation score
You are looking at an old version of this page: revision #55 by zoobc.how, 2026-10-26 20:39 UTC. See the current version
The participation score is ZooBC's measure of how well a registered node does its work. It runs from 0 to 100 %, and every node starts at 20 %. It rises when the node's own blocks carry the receipts it earned for relaying data, and it falls while the node is missing after a skipped turn. The score decides the node's chance in the coinbase lottery that shares out new ZBC, and a node whose score reaches zero loses its seat. It does not change who makes blocks.
The scale
Internally the score is an integer from 0 to 10^13, shown as 0 to 100 %. Every node starts at the default of 2 × 10^12, that is 20 %, the genesis seats included. A node in the queue has no score; admission writes the default. The score is computed by every node from the chain itself. It is not a rating given by users, and it is not the stake.
How it rises: receipts in the node's own blocks
Relaying earns receipts and the network topology, not score. The score moves when the node gets its turn: in the block it makes, it publishes a sample of the receipts it earned, and every validator checks them. The number of receipts shown is compared with a pivot:
pivot = floor(min(|S| − 1, P) / 2)
where S is the draw set (the active nodes that are not suspended) and P is the number of priority peers, 12 on mainnet. With 11 selectable nodes the pivot is 5; from 13 selectable nodes on, it is 6. In other words, the pivot is about half of what the producer could have shown.
Showing more receipts than the pivot raises the producer's score; showing fewer lowers it. The size of the move is scaled by the number of active nodes, because a node's turn comes round only about once in that many blocks. The result is always kept between 0 and 100 %. A node whose blocks carry few receipts therefore drifts down, even if it never misses a turn.
The climb is slow on purpose: below 2,880 nodes, a node that makes all its blocks with their receipts needs 30 days to go from 0 to 100 %, about 1.67 points per 12-hour unit on average.
How it falls: missing
From any skipped turn until its next own block, a node is missing and loses 5 points per unit (12 hours below 2,880 nodes), three times faster than a perfect node climbs. Below 2,880 nodes a silent node falls from 20 % to zero in 2 days, from 100 % in 10. See missed turns, suspension and expulsion.
Some things do not move the score at all. A failed storage proof costs no score: an outvoted storage holder only loses that epoch's storage reward (see decentralised storage pool). No score changes before height 40, while the chain warms up. And there is no hourly check-in and no vote: the score comes only from what blocks carry and from the turns nodes skip.
What the score decides
Income. The new coins and fees of every block are shared out by the coinbase lottery. The block's reward pool (its coinbase, its fees and a slice of the longevity pool) is cut into equal shares, one per draw. Each draw picks a node with a probability proportional to its score, from a generator seeded with the previous block's seed and the tag zbc-coinbase, so every node computes the same winners. A node may win several draws of one block, and a low-scoring node can win too. There is one draw per second of the gap between the two previous blocks, at most 600, and never more draws than ticket holders (a large pool can raise the count, within the same limits). Ticket holders are the registered nodes that are mature and are neither missing nor suspended. If none of them has any score, the pool is split evenly.
The seat. A node whose score reaches zero is expelled, unless fewer than three active nodes would remain.
That is all. The score is not an input of the producer draw, and it does not enter the weight of blocks in fork choice and cumulative difficulty.
Why power and income are kept apart
Keeping the score out of the draw is deliberate. A high-scoring node gets no extra power over the chain: it makes no more blocks, chooses no more seeds and has no more chances to leave transactions out. Power over block production stays uniform per seat, while income follows measured work. The stake plays no part in either: it only gets a node into the queue.
Every number of the score (its scale, the starting 20 %, the rates of rise and fall) is a genesis parameter of the chain.