## 4 Nazzfast Consensus Mechanism
### Block Creation Cycle
#### 4.4.1 Block Proposal Phase  
When a block proposer does not produce a block between specified time bounds in its respective block creation cycle, swapping occurs. For example, the swapping mechanism for the block proposer with the V-validator in the block creation cycle 3. The block proposer's place has been taken by the first validator in the V-validator list as the block proposer for this block creation cycle. The validator should be an active validator. The V-validator list is ordered in ascending or descending order as per that round. Once a V-validator becomes the block proposer, it cannot validate its own block. The place of the V-validator for this block creation cycle has become empty. Therefore, from the proposer list, the first proposer validator would take the place of the V-validator to complete the  
Figure 6: Overview of the block creation cycle. V-validator total count for that block creation cycle. The proposer validator should be an active validator. If the block is not produced in block creation cycle 1 by the block proposer or after one swapping mechanism if the swapping situation is repeated in the same round for another block creation cycle that the proposer validator of that round did not produce a block in the specified time, then the second active validator from the V-validator list would take place as a block producer, and the second active validator from the proposer list would become a V-validator, and so on, such as in Figure 7. For every swapping mechanism in a round, the opportunity is given to the new V-validator to become a swapping proposer or for the proposer to become a V-validator. Although the proposers and V-validators are already aware of this swapping rule and ready to take the positions of others, correctors keep an eye on the situation and can interrupt if needed. So that delay wouldn't come during the block creation process, and the system remains in stable mode. We present Algorithm 1 for a better understanding of the proposal phase. ```
1. \(\text{phasec}\leftarrow\text{proposal}\)
2. \(\text{proposal}\leftarrow\text{Function}\) CreateBlock()
3. \(\text{broadcast}\) (PROPOSAL, htc, blockCc, 6, proposal)
4. \(\text{upon}\) (PROPOSAL, htc, blockCc, 6, \(\alpha\)) from proposer while phasec = proposal do
5. \(\text{proposal\_receive}\leftarrow\text{true}\)
6. \(\text{Value}\leftarrow\text{$\alpha$}\)
7. \(\text{upon}\) (PROPOSAL, htc, blockCc, 6, *) while phasec = proposal do
8. \(\text{schedule}\) OnProposalPeriodEnd(htc, blockCc) implemented after proposalPeriodEnd of current BlockCc
9. \(\text{Function}\) OnProposalPeriodEnd (height, blockc):
10. \(\text{If proposal = null then}\) /* proposal not received */
11. \(\text{If blockCc}=1\) then
12. \(\text{swappingNumber}\leftarrow\text{swappingNumber}+1\)
13. \(\text{Function}\) SwappingMechanism (activeValidatorList[], activeProposerList[], swappingNumber, proposer)
14. \(\text{proposal}\leftarrow\text{getValue}\) (\(0\) /* getValue() by proposer*/
15. \(\text{If proposal }\
eq\text{null then}\)
16. \(\text{broadcast}\) (PROPOSAL, htc, blockCc, proposal)

Figure 7: Swapping mechanism for the block proposer in many block creation cycles in a round. #### 4.4.2 Check Validity Phase

After the block proposal, V-validators and wildcard entry validators will validate the authenticity of a block. Every block creation cycle has 15 V-validators. It will remain the same for round 1 to create 10 blocks. The first 15 composite numbers in the top 30 selected validator list in ascending order will be the V-validator for round 1, and the first 15 composite numbers in the top 30 selected validator list in descending order will be the V-validator for round 2. Each V-validator receives a block and checks its validity. If the block is acceptable, it will give its prevote to that block and broadcast it to the proposer, host, wildcard entry validator, and all other V-validators.