Block Production Protocol
This page provides a detailed step-by-step process of our protocol for block production
Block Production
Züs protocol is patterned after Dfinity[5]; reviewing their design may offer insight into our own.Every miner has a secret public/private keypair given to it through the distributed key generation (DKG) process, as detailed in Onboarding a New Miner or Sharder. In every round, a miner takes the following steps:
When a new round begins, the miner calculate the precedence of generators for this round using a verifiable random function (VRF).
If selected as a generator, the miner produces a block of transactions and sends it to all other miners.
The miner then waits to collect block proposals from the generators.
After waiting for block proposals, the miner selects the highest priority block received, as determined by the ordering of generators.
The miner sends out a signed verification ticket for the highest priority block. This verification ticket contains:
Round number.
Block id (block hash).
Verifier id.
Signature.
The miner then waits to collect verification tickets.
When the miner receives sufficient tickets for a block, it broadcasts a notarization message to both the miners and sharders. The notarization message contains:
Verification tickets.
Block id.
Round number.
The miner begins a new round to work on the next block in the blockchain. Generators are ordered by the priority of their blocks for the round. If the highest priority miner fails to produce a block, the block produced by the second highest priority is used, and so on until the lowest priority generator. In the unlikely event that no generator is able to produce a block (or that a miner has not received blocks from any generators), the round is said to timeout and the round is restarted, beginning a new subround. A new set of generators are selected, and the process repeats as per normal. If a miner receives a notarized block from a different subround, it changes its own subround to match the subround of the notarized block. At this point, the miner can proceed to the next round to make the next block in the blockchain.
Last updated