As an alternative to PoW, the proof-of-stake mechanism (PoS) drastically reduces power consumption and is the preferred choice for many blockchain networks. However, PoS cannot be considered as a perfect consensus mechanism, and it may even be lacking in some aspects. This is because PoS lacks the hash power of PoW, and it is much cheaper for malicious nodes to launch an attack on the network. Two well-known examples include: long-range attacks and nothing at stake attacks.
- Long-Range Attack
A long-range attack means that an attacker can fork the network from any previous block. Once the deposit required for PoS is returned, the incentive to add new blocks from the current block is gone. When two-third of the verifiers jointly go back to the past block and maliciously recreate a chain, the original and longest chain becomes invalid.
- Nothing at Stake Attack
Validators betting on multiple blocks simultaneously within the same network can effectively compromise the security of the main chain without paying any price.
Genaro addresses the security concerns of PoS through the implementation of SPoR. Genaro Network’s hybrid consensus mechanism screens trusted nodes by using SPoR, which requires nodes to pay a certain price (in terms of storage and hash power) that will directly address the issue of nothing at stake attacks.
In addition, if an attacker participates in the PoS consensus mechanism previously, it will return to the past block and will not have the subsequent storage information from the network to add new blocks to the chain even if their staked tokens have been returned to them. The network will judge that the malicious chain is not the longest chain currently, and will penalize the malicious nodes directly.
Proof of Retrievability (PoR) helps to prove to the client that the target file exists and is not damaged. Sentinel Proof of Retrievability (SPoR) is an improved form of PoR. This algorithm improves data retrievability by setting up “sentinels”. When a file is split into pieces, each fragment generates a hash value called “sentinel”, and the sentinel is sent to random nodes, which are called “challengers”. Whenever a client reads a file, the sentinel in the challenger performs computation for the proof of data retrievability, and the randomly selected challenger avoids malicious computation according to game theory. Such a mechanism can greatly improve the computation speed for proof of data retrievability when the file is read, thus improving the file reading speed.
For example, if a file is cut into six copies, with the excess storage distributed on different nodes, then the function of SPoR is equivalent to numbering each of these six files and their backups (1–6), and generating a hash (1x-6x) together with the files to be stored on the nodes. When a file needs to be retrieved, a randomly selected challenger first verifies the hash (1x-6x) provided by the node, which can prove that the file is secure and has not been maliciously corrupted; the retrieved file has a ‘serial code’ and can be put back together as a complete file, just like the code on the back of a puzzle that indicates the location of the puzzle pieces.
Thus, SPoR is equivalent to performing a meaningful mini-PoW calculation, which ensures network stability by maintaining the amount of information input into the system. In practice, when the data is being retrieved, the nodes will first undergo PoS, after which the challenger will prove that the data is intact. Once the transaction records have been added to a block, the network will elect a node that will add the block to the existing chain.