Forging Algorithm
Last updated
Last updated
Each block in the chain has a signature generation parameter. To participate in the forging process of a block, the active account cryptologically signs the previous generated block with its own public key. This creates a 64-byte signature that is then hashed using SHA256. The first 8 bytes of the resulting hash give a number called the hit of the account. The hit is compared to the current target value. If the calculated hit is lower than the target, the next block can be generated. As noted in the target value formula, the target value increases with each second. Even if there are only a few active accounts on the network, one of them will eventually generate a block because the target value will become very large. The consequence of this is that you can estimate the time it will take for any account to force the block by comparing the hit value of that account to the target value. The last point is of great importance. Since any node can request an effective balance for any active account, it is possible to go through all active accounts to determine their individual hit value. This means that with reasonable accuracy, you can predict what the following account wins right to block counterfeit. A shuffle attack can be triggered by moving a stake into an account that will generate the next block, which is another reason why PZM bet must be stationary for 1,440 blocks before it can contribute to the forging (through an effective balance value). Interestingly, the new base target for the next block cannot be reasonably predicted, so a virtually deterministic process of determining who will force the next block becomes more and more stochastic as attempts are made to predict future blocks.
This feature of the forging PRIZM algorithm helps to form the basis for the development and implementation of the Transparent Forging algorithm. When an active account is granted the right to create a block, it combines up to 255 available unconfirmed transactions into a new block and populates the block with all its necessary parameters. This block is then transmitted to the network as a Blockchain candidate. The payload that generates the account and all signatures on each block can be checked by all the network nodes that receive it. In a situation where multiple blocks are generated, nodes select the block with the highest accumulated complexity as the authoritative block. Because the block data is distributed among the members (peers), forks (unauthorized chain fragments) are detected and dismantled by examining the cumulative complexity of the chains stored in each fork.