Proof of Participation
Proof of Participation (PoP) is how ZooBC agrees on its blocks. The blocks are made by the nodes of an on-chain node registry, drawn by lot from the previous block's seed, with the same chance for every seat. Each node is measured on the work a network needs, passing blocks and transactions on to the peers the protocol assigns it, and that measurement decides its share of the new coins. A block is valid because the right key signed it, and every node checks that for itself.
Four design goals
- Uniform block-producing power. Balance, stake, hardware and score do not change a seat's chance.
- Open but paced membership. Anyone can queue for a seat by locking a stake; the protocol admits one newcomer per cycle.
- Measured, rewarded participation. Relaying is proven by receipts that the receiving peers sign, and the receipts decide each node's income.
- No wasted work. Security comes from signatures, hashes and a verifiable random function, not from puzzles.
Proof of Participation compared with PoW and PoS sets these goals against Proof of Work, Proof of Stake and their delegated and federated variants.
One block, step by step
- The draw. The previous block's seed starts a random generator that every node runs alike. It names a producer for round 1, another for round 2, and so on (draw).
- The rounds. The round-1 producer aims to stamp its block 15 seconds after the previous one. If it is silent, the round-2 producer takes over 15 seconds later (rounds, timing and windows). Only the first ten rounds may carry transactions, and the previous block's producer is demoted (priority rounds, empty blocks and the previous producer).
- The block. The producer signs the block with its node key and proves the new seed with a verifiable random function, so it cannot choose that seed (block seed (VRF)).
- The checks. Every node checks that the producer was drawn for the round its timestamp falls in or for the round before, the signature, the seed proof, every transaction and every receipt. An empty block is valid.
- The work. Nodes relay blocks and transactions to their priority peers and collect signed receipts (receipts and the network topology). The receipts a node shows in its own blocks move its participation score, which weights the coinbase lottery.
- The cost of absence. A skipped turn makes a node "missing": no income and a falling score. Four misses in a row suspend it, and a score of zero expels it (missed turns, suspension and expulsion).
Power and income, kept apart
The producer draw ignores the score, and the lottery ignores the stake. A high-scoring node earns more, but it makes no more blocks and chooses no more seeds: power stays the same for every seat, while income follows the work each node does. More power means more seats, and seats come only through the queue, one admission at a time (admission pace).
When branches compete
Nodes follow the branch with the greatest cumulative difficulty, in which on-time blocks weigh more than late ones; an exact tie goes to the lower tip hash (fork choice and cumulative difficulty). No node rolls back more than 720 blocks (3 hours) or below the last checkpoint co-signed on the spine chain (finality and rollback). A producer that signs two blocks on the same parent can be reported and charged (double-signing (equivocation)).
Key numbers
| Item | Value (mainnet) |
|---|---|
| block interval, and length of a round | 15 seconds |
| genesis seats per chain | 11 |
| rounds that may carry transactions | 1 to 10 |
| starting participation score | 20 % |
| missed turns in a row before suspension | 4 |
| priority peers per node, reshuffled every | 12, every 40 blocks |
| rollback limit | 720 blocks (3 hours) |
See also
Articles in this topic
- Double-signing (equivocation)
What happens when a producer signs two different blocks on the same parent: how honest nodes avoid it, how any registered node proves it with an EquivocationReport, and what it costs. - Fork choice and cumulative difficulty
How ZooBC nodes pick between competing branches: the heaviest cumulative difficulty wins, on-time blocks weigh more than late ones, and exact ties go to the lower tip hash. - Missed turns, suspension and expulsion
What happens to a node that skips its turn: a missed turn, the "missing" state that stops its income and lowers its score, suspension after four misses, and expulsion at zero. - Priority rounds, empty blocks and the previous producer
Why only the first ten rounds may carry transactions, why an empty block is still a full block, and why the previous block's producer is demoted, never excluded. - Proof of Participation compared with PoW and PoS
How ZooBC's Proof of Participation differs from Proof of Work, Proof of Stake, delegated and federated designs: who makes blocks, how power is gained, and what a block's security rests on. - Receipts and the network topology
How ZooBC proves that a node relayed blocks and transactions: the priority peers drawn every 40 blocks, the 232-byte signed receipt, and the checks every validator makes. - Rounds, timing and windows
How ZooBC cuts the time after each block into 15-second rounds, which round a timestamp falls in, and why no single absent producer can stop the chain. - The block seed (VRF)
The 64-byte seed in every block drives the chain's random choices. It is the output of a verifiable random function, so its producer cannot choose it and anyone can check it. - The draw: who makes the next block
How every node computes, from the previous block's seed, the same ordered list of producers for the next block, and why every active seat has the same chance. - The participation score
The score from 0 to 100 % that measures how well a node does its work: how it rises and falls, what it decides (lottery income, expulsion) and what it never touches (block production).