# Block Production Protocol

## Block Production

Züs protocol is patterned after[ Dfinity\[5\];](https://docs-old.zus.network/concepts/architecture/resources) 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](https://docs-old.zus.network/concepts/architecture/mining-on-the-zues-blockchain/onboarding-a-new-miner-or-sharder).\
In every round, a miner takes the following steps:

1. When a new round begins, the miner calculate the precedence of generators for this round using a verifiable random function (VRF).
2. If selected as a generator, the miner produces a block of transactions and sends it to all other miners.
3. The miner then waits to collect block proposals from the generators.
4. After waiting for block proposals, the miner selects the highest priority block received, as determined by the ordering of generators.
5. 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.
6. The miner then waits to collect verification tickets.&#x20;
7. 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.
8. 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.

<figure><img src="https://979598987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNrAZJ0KGiwEbKkbVRYPu%2Fuploads%2FEepW18hdwwjAICMkBF1Q%2F128001961-e0e99cd9-c574-4356-a31b-623edd458130.jpg?alt=media&#x26;token=64363cf0-17bd-40e9-9123-b1f9cfb5de16" alt=""><figcaption><p>Figure 1:Block Notarization and Finalisation</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-old.zus.network/concepts/architecture/mining-on-the-zues-blockchain/block-production-protocol.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
