Consensus

Network Proof-Of-Stake

The Munhumutapa Alphablockchain Munhumutapa blockchain makes use of a network-Proof-of-Stake (nPoS) protocol to reach consensus. The network proof-of-stake protocol is an iteration of the common pure Proof-of-stake consensus but with an add element of dependence on a node's connectivity. The protocol depends on a forgers' active peer connections in relation to their stake balance. The nPoS protocol significantly enhances the security of the alphablockchain while reducing fork occurrences in the blockchain progression.

Base Target

The Base Target of a block on the Munhumutapa Alphablockchain is

Calculating The Base Target of A Block

Base Target
=
(Base Target of the previous block)
x
(64)
x
(Average Block Time)/100
Cumulative Difficulty

Cumulative difficulty is a value used to determine an authoritative block in an instance when two or more blocks are forged and proposed to the blockchain simultaneously. It is also used to determine the authoritative chain in fork resolutions.

Calculating The Cumulative Difficulty of A Block

Cumulative Difficulty
=
(Cumulative Difficulty of the previous block)
+
(2^64)
/
(Current Base Target)
Network-Proof of Stake Algorithm
Munhumutapa uses a Target and Hit random selection algorithm to select a forger. To qualify to forge a block, a active forging account's calculated Hit value has to be greater than the next block's Target value.
Hit Value

Each block on the Munhumutapa blockchain has a generation signature parameter. During the block forging process, a forger cryptographically signs the block with its public key to create a 64-byte signature, which is then hashed using SHA256. The first 8 bytes of the resulting hash is the target hit value for the next block. This computation means that the hit value for each forging account is the same.

Target Value

The target value of each forging account is different and is determined by the following parameters:

Base Target

The base target is a value of the the time period between the forging of the previous two blocks. This parameter is the same for every forging eligible account.

Time Since Last Block

Is the time elapsed since the last forged block.

Effective balance of account

The Effective balance of an account is the MUNHU an account holds which has been static at least 1440 blocks.

Number of Connected Peers.

Other up-to-date network nodes connected to the host node.

Calculating The Target Value

The target value of each forging account is different and is determined by the following parameters:

Target
=
(Base Target)
x
(Time Since Last Block)
x
(Effective balance)
x
(Number of Connected Peers)
Hit And Target Values Comparison

The hit and target values for each account are subsequently compared and if the condition;

Target Value > Hit Value

the account qualifies to forge the next block.