Authors: Marcin Pawlowski [email protected], Thomas Lavaur [email protected]
| Version | Changes | Date |
|---|---|---|
| 1.0.0 | Initial revision. | 2025-12-03 |
| 1.1.0 | Removed service_rewards due to updated ‣. |
|
| Extended the ‣ logic with rewards distribution due to updated ‣. | ||
| Removed Block Samples subsection of the ‣ from the ‣. | ||
| Reordered the ‣ steps to enable immediate use of reward notes as inputs for transactions included in the proposal. | 2026-03-27 |
In this document, we present the specification defining the construction of the block proposal, its validation, and execution. We define the block proposal construction that contains references to transactions (from the mempool) instead of a complete transaction to limit its length. The raw block size increases with the size of transactions it contains up to 1 MB, and the proposal compresses its size down to 33 kB, which saves the bandwidth necessary to broadcast new blocks.
For the consensus protocol to make progress, a new leader is elected through the leader lottery. The new leader is in possession of a proof of leadership (PoL) that confirms that it is indeed the leader. The main objective of the leader is to construct a new block, hence becoming a block builder, and share it with other members of the network as a block proposer. The block must be correctly constructed; otherwise, it will be rejected by the consensus nodes who are validating every block. Only validated blocks are executed, which means that the transactions included in the block are interpreted by all nodes, and the state of the chain is modified according to the instructions embedded in the transactions.
Below, we present a high-level description of the block lifecycle. The main focus of this section is to build an intuition on the block construction, validation, and execution.
We are using two hashing algorithms that have the same output length of 256 bits (32 bytes) that are [Poseidon2 (ZK Friendly Hash Function)](https://nomos-tech.notion.site/Poseidon2-ZK-Friendly-Hash-Function-1fd261aa09df81f48afcd5bbe86c4a18) and [**BLAKE2b (General-Purpose Hashing)**](https://nomos-tech.notion.site/BLAKE2b-General-Purpose-Hashing-1fd261aa09df81b3890fcc4f9606ee9e).
A block proposal, instead of containing complete Mantle Transactions of an unlimited size, contains references of fixed size to the transactions. Therefore, the size of the proposal is constant and it is 33129 bytes.