## 4 Nazzfast Consensus Mechanism
### Block Creation Cycle
#### 4.4.1 Block Proposal Phase
If the V-validator has given a prevote to the block during the prevote time and also received 2/3 prevote for the same block from others in the specified time of prevote, then the V-validator may send a pre-commit to all five correctors, the proposer, and the host with the validators list that sent prevotes to them. There is a time bound for the prevote phase, and after this time, the phase automatically gets dissolved. In this specified time, if the V-validator did not receive 2/3 prevotes for that block, it will not send its pre-commit. If the specified time ends and a validator does not respond for any reason, then their pre-commit is considered nil. The wildcard entry validator linked with any of the V-validators receives a block from its peer validator nodes, and if the block is acceptable, it gives its prevote to this block or votes nil and broadcasts it to the proposer, host, and all other V-validators. After receiving 2/3 of the prevotes from others, it sends its pre-commit to the correctors, proposer, and host with the V-validators' list that sent the prevote. Wildcard entry validator vote response is very important, and there is a very low probability of voting as nil due to unavailability, because it has been selected from an active validator pool. Perhaps the wildcard entry validator vote can be nil due to an unacceptable block or any network issue. If there is a nil vote, the wildcard entry validator must submit an explanation to others. We present Algorithm 2 of the check validity phase to observe the phase clearly. ```
1. \(\text{phases}\leftarrow\text{validity}\)
2. upon (PROPOSAL, htc, blockCc, \(\xi\), \(\alpha\)) from proposer while phasec = proposal do /* \(\alpha\) is a proposal value */
3. if valid(\(\alpha\)) then
4. broadcast (PREVOTE, htc, blockCc, \(\xi\), id(sender))
5. upon (PREVOTE, htc, blockCc, \(\xi\), \(*\)), while phasec = validity do /* (*) represent any value */
6. schedule OnPrevotePeriodEnd (htc, blockCc) implemented after prevotePeriodEnd of current BlockCc
7. upon (PROPOSAL, htc, blockCc, \(\xi\), \(\alpha\)) from proposer AND +2/3 (PREVOTE, htc, blockCc, \(\xi\), id(sender)) from \(\xi\) while valid(\(\alpha\)) \(\land\)\(\text{phase}_{\text{c}}\) = validity do
8. If validator\(\_\)send\(\_\)prevote \(\leftarrow\) true
9. broadcast (PRECOMMIT, htc, block, \(\xi\), \(\xi\), id(sender)) /* \(\xi\) it is the list of validators that send prevote*/
10. phase \(\leftarrow\) commit
11. upon (PRECOMMIT, htc, blockCc, \(\xi\), \(\xi\), \(\ast\)) while phasec = validity do
12. schedule OnPreCommitPeriodEnd (htc, blockCc) implemented after precommitPeriodEnd of current BlockCc
```

**Algorithm 2**_\"Phase \(\leftarrow\) Check validity start */ /* represent comments*/

#### 4.4.3 Commit Phase

There are five correctors in the consensus process. Correctors are the final ones who validate the block and its contents and commit the block. All V-validators and wildcard entry validators send their pre-commit to the correctors. To commit the block, the corrector validates and accepts the block and also must receive pre-commit from the wildcard entry validator and 2/3 pre-commit from the V-validators within the specified time. Similarly,it also has a specified time bound like every other phase, and after this time, the phase automatically ends. If the corrector accepts the block and receives all required votes for the block during the specified time, it gives a commit to the block and broadcasts it to other correctors, proposers, and hosts with the validators' list that sent pre-commit and prevote for this block. Else, after the completion of the specified time, the corrector rejects the block, and a new block creation cycle is started after the new height phase. In Algorithm 3, we present a detailed algorithm of the commit phase. Timesheet

All five correctors did a similar procedure for the 10 blocks at every round and maintained a timesheet. There are two sets of correctors for both rounds. The Corrector that commits 10 blocks fastest in any of the rounds becomes the next election starter.