ZooBC wiki
Security and architecture

Security and architecture

ZooBC's security rests on signatures and hashes, not on energy spent. Every block, transaction, receipt and seed proof is signed, and every node checks everything it accepts, so no node has to take another's word for anything. Around that core, the architecture adds a few firm limits: settled history cannot be rewritten, a new node can find the genuine chain on its own, and a signature counts on one chain only.

The attacker ZooBC plans for

The design assumes an attacker who can run any number of nodes and accounts, sees every message, exploits any logic flaw and is wealthy, but who cannot forge signatures, find hash collisions or buy every token. Its goals would be to steal, censor, rewrite history or disrupt the chain. What Proof of Participation defends against goes through each attack and its answer.

Two chains in every node

Every node keeps two chains. The main chain makes a block every 15 seconds and carries the transactions; its blocks are made by registered nodes drawn by lot (see Proof of Participation). The spine chain makes one block a day on mainnet and carries no transactions: each block is a checkpoint of the main chain, a record of the node keys that joined or left, and the manifests of the latest state snapshots, co-signed by two thirds of the seats.

Layers of defence

LayerWhat it guaranteesArticle
validation by every nodea block counts only if its drawn producer signed it and its seed proof, transactions and receipts check outProof of Participation
equal, paced seatspower cannot be bought quickly: one equal chance per seat, one admission per cycleWhat Proof of Participation defends against
bounded rollbackno node rolls back more than 720 blocks (3 hours)Finality and rollback
spine checkpointsno node reorganises below a checkpoint that two thirds of the seats co-signedThe spine chain
checked fast synca new node loads the state the spine names, checks every hash and samples its peersSnapshots and fast sync
release pina new installation refuses a spine history that contradicts its releaseThe release pin
chain-bound signaturesa transaction signed for one chain is refused on every otherChain-bound signatures
two-thirds decisionscheckpoints, bridge transfers, oracle facts and release vetoes need two thirds of the seatsThe two-thirds rules
unpredictable seedsno producer can choose the randomness that picks the next producerThe block seed (VRF)
double-signing reportsa producer that signs two blocks on one parent is proven and chargedDouble-signing (equivocation)

The layers overlap. A rewrite of history from a year back, for example, fails at each of several layers on its own: the rollback limit, the checkpoint floor, the spine's co-signatures and the release pin.

A fake branch from far back meets three shields: the 720-block rollback limit, the spine checkpoint floor and the spine pin in the release, under a spine whose blocks each carry two thirds of the signatures. Running nodes and new nodes refuse it.
A fake branch from far back meets three shields: the 720-block rollback limit, the spine checkpoint floor and the spine pin in the release, under a spine whose blocks each carry two thirds of the signatures. Running nodes and new nodes refuse it.

What a majority could and could not do

Even an attacker holding more than half of the seats could only delay or censor transactions and replace recent blocks within the 3-hour limit. It could not forge signatures, spend others' coins, mint more than the coinbase schedule or go below the spine checkpoint, because every node checks every block for itself.

What ZooBC's security does not rely on

  • Secrecy. Peer traffic is plain gRPC; protection comes from signatures and verification.
  • Energy or hardware. No puzzle is solved and no machine gives an advantage.
  • A trusted party. No foundation countersigns blocks, no website vouches for snapshots, and a single honest peer is enough to learn of the heaviest chain.

See also

Articles in this topic