Then what is the BP consensus algorithm PPBFT.
Okay. At the previous session, we talked about DPoSS.
That is about the KOK Platform governance. In other words, that is a block producer selection algorithm.
PPBFT is about consensus. Governance and consensus are a little bit different. Sometimes those are considered as the same thing.
How different are they?
PPBFT stands for Parallel Practical Byzantine Fault Tolerance, a well-known consensus algorithm.
PBFT is about getting a consensus out of different nodes. For example, how can we achieve a consensus?
PBFT says 51% of approval concede the conclusion. So 51 percent, not necessarily 100 percent, is required, because 100 percent is vulnerable for consensus.
If a malicious node is opposing on purpose, the nodes cannot achieve consensus. So 51 percent consensus is practical. It is PBFT.
So why is it parallel then?
It is like a PBFT done in parallel, currently. That is our consensus algorithm. Let me explain with a picture.
Before I explain PPBFT more in detail let me explain how our BPs are organized.
Our BPs, at the beginning, we will have 21 BPs including some dummy BPs and some real BPs.
Those 21 BPs are organized in 7 regions. Region is more like a continent. BP index is a zero-based number, so BP 0,1,2,3,4,5,6. Regions are also numbered from 0 to 6. And then, 7,8,9,10,11,12,13 are in the same way. Region 2, for example, has BPs 2, 9, and 16. Region 6, which is the 7th region, has BPs, 6, 13 and 20.
This way our BPs are organized in 7 regions.
When generating a block, there will be a primary BP, which is responsible to make the initial block for other regions. First block propagates to other regions.
If BP 7 is the primary BP, then it is responsible to generate the candidate block. Then it propagates to its neighbor BPs, which are 8,9,10,11,12,13. Those six BPs are neighbor BPs of the primary BP.
Another example, if 16 is a primary BP. Then its neighbor BPs are 17,18,19,20,0,1. Primary BP’s neighbor is the lead BP of each region.
For instance, if 16 is the primary BP, then 17 is the lead BP of this region 3. BP 20 is the lead BP of region 6.
PBFT is the way, as I said, to get conclusion, so called consensus.Two out of three makes the consensus in a region.
Like a primary BP 16, it propagates its candidate block to neighbor BP, so called lead BPs such as 17, 14, 20, 19, 18 at the same time.
Lead BP is responsible to get the conclusion or consensus within the region.
Each region gets conclusion by PBFT algorithm. Therefore, whole regions get result by following the same PBFT algorithm, too. 4 out of 7 regions can reach conclusion.
This is the reason it is called Parallel PBFT.
Let me explain how we choose primary node, the primary BP.
In our consensus algorithm, we use the block interval. Block interval of half second and confirmation time of 1 second.
We have a 12 second period concept, which means we generate 24 blocks within a period.
One primary BP is responsible to make 24 blocks at the beginning then it propagates to other 6 BPs.
How we choose primary BP? It depends on the previous intervals of blockchain. Within a one period, there are 24 blocks.
For example, primary BP 16 is responsible to generate a candidate block in this period. How this was chosen? That is the key of our algorithm.
Last four bytes of 21st block hash is used to choose the next primary BP. We use MOD function.
Four byte of hash value converted to integer and then MOD 21 function.
The number result will be from 0 to 20. MOD function is such thing. This number becomes the next period’s primary BP index.
Actually, all nodes know who will become the primary BP. That node prepares the next interval.
This is the way we choose the primary BP. And then the primary BPs neighbors, which becomes lead BPs of each region.
Interview Part.6 to be continued.
Please watch the next part of the interview