Proof-Of-Capacity Consensus Algorithm
The simplest blockchain projects are heavily dependent on member interaction. By the word ‘simplest’ we mean the most basic proposals like Bitcoin, Ethereum, and similar. They all use blockchain and some simple algorithms to operate. In contradiction, in such projects as IoTa transactions are not united in a block structure. Other complex examples are Ripple or Stellar that interact with the real banking system, thus performing complex synchronization functions.
So when it comes to member interaction, there are several activities performed by participants, including consensus achievement, data exchange, data storage, neighbor support, and other specific activities. Consensus achievement is the most important point here — and it's understandable, because if the global agreement isn’t reached all other actions make no sense. Consensus is such a state of the blockchain network when the same data is stored by all participants and no longer disputed.
There are many different consensus mechanisms in the blockchain environment. Bitcoin uses the original algorithm Proof-of-Work. So does Ethereum, although it is going to switch to Proof-of-Stake very soon. Besides these most common mechanisms, there is one called Proof-of-Capacity.
Before explaining a particular solution, let’s recollect what the term of consensus means and how it is realized in blockchain projects. By default, consensus is such a state of blockchain that satisfies all network participants. In Bitcoin and Ethereum, it is achieved through common rules to follow by all members, which guarantees the same result when verifying a new state of the whole blockchain. Even if wrong changes are spread through the network, all nodes will never accept them. This prevents nodes from changing their local internal consensus parameters since it will never bring them profit.
The original consensus PoW is based on the performance of a single node. In fact, it may be a mining pool or a mining rig behind an address. Each node calculates a mathematical hash function trying to find the correct result. Once the result is found, the node transfers it to others, and they must include the new correct block to their blockchains.
Other consensus mechanisms are based on different components of the crypto environment. Proof-of-Stake, for instance, relies on an asset value temporary locked by a participant. The more assets are locked, the bigger the probability of getting privilege to propose a new block to the network.
This consensus approach is also called Proof-of-Retrievability or Proof-of-Space. It operates with a property of a node — memory space used for calculations. This brings some complexities. For example, there should be a mechanism to prove that the result was received by the participant. There are two projects known for their attempt to implement PoC: Permacoin and Burstcoin.
In its basic form, the concept of using free space to reach consensus works as follows:
- All participants allocate a part of free space;
- A special function generates data in the dedicated memory area;
- Special sequences are searched for in the resultant data;
- A participant, who receives more results, wins.
Some steps might be substituted though. For instance, there may be a trusted party to send an initial data unit for calculations to all participants. Finally, after the successful member introduces a new block to the network, the whole process is repeated.
The proposed type of consensus shows that there is a good alternative to the PoW and PoS algorithms. PoC is considered good since no stake or performance is used to achieve success. Still, memory space can be boosted by a participant. In our next articles, we will talk about other possible consensus methods.