ZooBC wiki
Economics and governance

The coinbase lottery

You are looking at an old version of this page: revision #17 by zoobc.how, 2026-10-26 20:39 UTC. See the current version

The coinbase lottery is how ZooBC pays its nodes. Every block's reward pool, made of the newly released coins, the block's fees and a slice of the longevity pool, is cut into equal shares, and each share is drawn among the registered nodes with a chance proportional to their participation score. The node that made the block has no special claim on it: nodes earn by doing the work the score measures.

The reward pool

Each block's reward pool is the sum of:

  • its coinbase, the new ZBC that the emission schedule releases for that block (supply and emission);
  • the fees of its transactions, net of the overpay refunded to their senders (fees);
  • a slice of the longevity pool, which collects rents and penalties and pays them out a little in every block (pools).

Who holds a ticket

A ticket holder is a registered node that is mature, and neither missing nor suspended:

  • Mature. A new node earns nothing until 4 score units after its admission and one block of its own: 2 days while the chain has fewer than 2,880 nodes (maturity and earnings).
  • Not missing. A node that skipped its turn counts as missing until its next own block, and earns nothing meanwhile (missed turns, suspension and expulsion).
  • Not suspended. A node suspended after 4 consecutive missed turns holds no ticket.

Nodes still waiting in the queue have no score and hold no ticket either.

The draws

The pool is shared out by a number of draws:

  • one draw per second of block time, measured as the gap between the two previous blocks, which the producer of the block cannot choose;
  • at most 600 draws, and never more draws than ticket holders;
  • when the pool holds more than 1 ZBC per draw, the count rises to one draw per whole ZBC in the pool, within the same two limits.

A chain with 11 ticket holders therefore has 11 draws per block, not 15. With 1,000 ticket holders, a 15-second gap and a pool of 30 ZBC, the count starts at 15, which would make 2 ZBC per draw, and rises to 30.

Each draw wins an equal share: the pool divided by the number of draws, rounded down to an atomic unit, with the remainder added to the last share. Winnings are paid to the node's owner account, not to the node key (keys of a node).

Chances follow the score

Each draw picks a node with a probability proportional to its participation score. With two ticket holders scoring 80 % and 40 %, the first is twice as likely as the second to win any draw, and the second can still win any of them. The draws are independent and made with replacement, so one node can win several shares of the same block.

Each ticket holder gets a segment as long as its score, A's (80 %) twice B's (40 %); a dart lands on A's segment; one draw is one equal share and the same node may win again.
Each ticket holder gets a segment as long as its score, A's (80 %) twice B's (40 %); a dart lands on A's segment; one draw is one equal share and the same node may win again.

The random numbers come from a generator seeded with the label zbc-coinbase and the previous block's seed (block seed (VRF)), so every node computes the same winners and can check every payout.

Over time, a node's expected income is its share of the total score of all ticket holders. The stake plays no part: it gets a node into the queue, and it earns nothing by itself.

A 15-year schedule drops new ZBC into each block's reward pool together with the fees, and a lottery hands the pool to registered nodes; no mining, no interest.
A 15-year schedule drops new ZBC into each block's reward pool together with the fees, and a lottery hands the pool to registered nodes; no mining, no interest.

Special cases

  • If no ticket holder has a score that can be weighed, the pool is split evenly among the ticket holders.
  • If no node holds a ticket, the pool is carried over to the next block.
  • The market's taker fee is not part of the pool: it goes to the producer of the block, the one charge that does. If that producer is not yet mature, the taker fee goes to the lottery instead (markets and orders).

What it rewards

The score rises when a node's own blocks carry receipts for the data it relayed to its assigned peers, and it falls while the node is missing (participation score). Since the lottery follows the score, and a missing or suspended node holds no ticket at all, income goes to the nodes that keep producing their blocks and relaying data. A node that only holds a stake earns nothing.

See also