The pools
ZooBC collects the money it charges for keeping things on the chain in two system accounts, the longevity pool and the storage pool. Nobody holds a key to them: their coins move only under the protocol's rules, and those rules pay them out to the registered nodes. A third system account, the apps pool, is the house for on-chain bets and is described in apps pool.
Accounts without a key
Each pool's address is an ASCII name padded with zeros to 32 bytes: ZBCLONGV for the longevity pool, ZBCSTORE for the storage pool and ZBCAPPS for the apps pool. No private key matches these addresses, so no signature can spend from them (accounts and addresses). The longevity and storage pools are exempt from account rent.
The longevity pool
The longevity pool gathers what ZooBC charges for keeping things on the chain, together with its penalties. From version 0.5.8 it receives:
- account rent (account rent and pruning), dataset rent (datasets), market rent (markets and orders) and escrow rent (escrow);
- the rent drawn from longevity deposits, which keep chosen transactions stored beyond ordinary history, and what is left when such a deposit is closed (paying to keep data (longevity));
- deposits swept from data that stopped paying, such as the remainder of a stored file's deposit when the file is pruned;
- the upkeep paid to keep tokens alive (token upkeep (persistence));
- because ZBC is never burned, the 10 % stake share that a node loses in the cases listed in ZBC is never burned, the attendance fees of queued nodes (queue), and the dust left in every pruned account and dissolved account group.
The coinbase and ordinary transaction fees take a shorter road. They go straight into the reward pool of their own block and are shared by that block's lottery, without passing through the longevity pool.
A slice in every block
The longevity pool pays out in every block above height 1. Each block takes a slice of its balance:
slice = floor(balance ÷ (period − height mod period))
The period is the billing period, one snapshot cycle: 172,800 blocks, or 30 days, on mainnet. The slice leaves the pool and joins that block's reward pool with the coinbase and the fees, and the coinbase lottery shares it out.
Because the divisor counts down to 1, the pool is empty at each period boundary, and money that arrives in the middle of a period is spread over the blocks that remain. For example, 17.28 ZBC in the pool at the start of a period, with nothing more arriving and nothing else paid out, pays 10,000 atomic units (0.0001 ZBC) in each of the 172,800 blocks. A pool smaller than the number of blocks left pays nothing until it grows, because the division is in whole atomic units.
Paying per block lets the lottery's rules decide who earns: only mature nodes that are neither missing nor suspended hold tickets, and the shares follow the ticket holders of every block, not whoever happens to be eligible at one single moment. The pool is not a reserve for emergencies, and it refunds nobody: it exists to pay the nodes that keep the chain's data.
A share for the archive
The longevity pool also pays for the archive, in which the decentralised storage keeps every snapshot of the chain from block zero. Each storage epoch, 10 % of the longevity pool is paid in equal parts to the nodes that prove the sampled chunks of those snapshots.
The storage pool
The storage pool receives the rent of the files kept in the decentralised storage, and pays the nodes that hold them (decentralised storage pool). Each epoch, 240 blocks or about an hour, the nodes assigned to a file's pieces submit storage proofs. For each piece whose proof is confirmed, the owner of every holder that agreed is paid from the pool: the rent of the active files for the epoch, divided by the number of proofs expected, and never more than the pool holds. A holder that is outvoted, or that is immature, forgoes that epoch's reward, which stays in the pool.
The prices that feed both pools, from account rent to the storage price per MiB, are voted by the registry's seats within fixed bounds (price votes).