Delegated Proof of Stake
This "missing white paper" is an analysis of the Commission's proof of entitlement (delegated Proof of Stake, DPOS), which is designed to analyze how DPOS works and the root cause of its robustness (robust). Early descriptions of DPOS can be found in bitshares.org, but the description contains a lot of content that is not relevant to the actual consensus.
Essentially, all blockchain is a deterministic state machine driven by trade. Consensus, however, is the process of agreeing on a deterministic transaction sequence and filtering out invalid transactions. There are a variety of consensus algorithms that can generate equivalent transaction sequencing, but DPOS has proven robust, secure, and effective by running reliably over multiple blockchain chains over the ages.
Like all consensus algorithms, the biggest damage that a block producer (slang is out of the block) can cause is censorship (censorship). The validity of all blocks must be based on deterministic open source state machine logic.
The DPOS algorithm is divided into two parts:
1. Select a group of block producers
2. Scheduling production
The process of selecting a block person ensures that the stakeholders (stakeholder, the popular point can also be said to be the holder) can finally have control, because when the network does not run smoothly, the loss of the most stakeholders. In the actual operation of how to reach a consensus, how to choose a block of people actually have little impact, so this article will focus on the selection of the Block people, how to reach a consensus.
To help explain this algorithm, I will assume 3 block producers, A, B, and C. This simplified model would assume that producer C was the person who broke the deadlock (i.e., the 1 in 2/3+1, the winner) because of the need to reach a 2/3+1 majority consensus to address all cases. In the real world, there will be 21 or more out-of-block people. Like the proof of workload, the general rule is that the longest chain wins. At any time, when an honest node sees an effective longer chain, it will switch from the current chain to the longer one.
I'll give an example of how DPOS works under most of the network conditions that can be imagined. These examples should help you understand why DPOS is robust and hard to break.
Under normal operation, the out-of-block person takes turns every 3 seconds to a block. Assuming no one misses their turn, it will produce the longest chain. It is not valid for a block to be out of block at any time outside of the scheduled turn. In other words, if there is no turn-out block, any block out is invalid.
Normal operation
If a rogue or faulty node does not exceed One-third of the total number of nodes, a small number of forks (minority fork, or small group fork) may be produced. In this case, a small number of forks can produce only one block per 9 seconds, while most forks produce two blocks every 9 seconds. In this way, the honest 2/3 majority will always be longer than the few (chains).
Minority fork
If there are many small groups of "silos", then they can try to produce countless forks, but because a few are destined to be slower than most people at the speed of the block, the forks of all small groups will be shorter than those of the majority.
Double production by disconnected minority
The network is completely possible to fragment, resulting in the absence of any fork with the majority of the number of out-of-block people. In this case, the longest strand will pour toward the largest small group ("The Dwarf is Tall"). When network connectivity is restored, other smaller groups will naturally switch to the longest chain (i.e. the largest small group chain), then restore a clear consensus.
Network fragmentation
It is possible to have such three Forks, of which two longer fork lengths are the same. In this case, when the 3rd (smaller) fork out of the block rejoin the network, a draw is broken. The total number of out-of-block people is odd, so it is not possible to keep a draw long. Later on, we'll talk about the shuffle, which makes the block order randomization, ensuring that even two forks with the same number of blocks will grow at different speeds, resulting in a fork winning.
In this scenario, a minority of node B produces two or more competing blocks (alternative block) within its time period. Next out block (C) you can select any block that is generated based on B to continue moving forward. As a result, this chain of C becomes the longest chain, and all nodes that choose B1 will switch to the longest chain. Even if a few bad people try to broadcast a lot of competing blocks it doesn't matter, because they'll never be more than one round as part of the longest chain (round, all out-of-the-block people going out of the block, turning around in one round).
Double production by connected minority
In the case of network fragmentation, there is a good chance that multiple forks will continue to grow over a long period of time. In the long run, the longest chain will eventually win, but the Observer (Observer) needs an exact means to determine whether a block is on the fastest-growing chain. This can be determined by seeing if there is a 2/3+1 majority of the sender's confirmation.
In, Block B has been confirmed by C and a, which means that there is a 2/3+1 majority acknowledgment, thus we can infer that no other chain will be longer than this chain – if 2/3 of the out-of-block person is honest.
Last inreversible block
Please note that this "rule" is similar to the 6 block acknowledgment of Bitcoin. Some "smart" people may be able to plot a series of events that make the last irreversible block of two nodes different. This extreme example requires the attacker to have complete control over the communication delay and control two times in a few minutes--not just once. Even if this really happens, the long-term rule that the longest chain wins will still apply. We think the likelihood of such an attack is close to 0, and the economic consequences are irrelevant, so anthias.
There is a situation that is unlikely to occur, that is, there is no clear how many out of the block, in this case, a few people can continue to out of the block. In these blocks, stakeholders can include changes to the voting transaction. These polls can pick a new set of out-of-the-block people and restore the chunk participation rate to 100%. Once this is the case, the chain of the small group will eventually exceed the chain of all other out-of-block participation rates below 100%.
In this process, all observers will know that the network is in an unstable state until a chain with a participation rate of more than 67% is present. If someone chooses to trade under this condition, then he will suffer a risk similar to that of accepting less than 6 confirmations. They also know that there is such a small probability event that the final consensus (or the longest chain) appears on another different fork. In practice, this is still more secure than accepting less than 3 bitcoin confirmations.
If most out-of-block people have problems, they may produce infinite forks, each of which appears to advance with a 2/3 majority confirmation. In this case, the last irreversible block algorithm transforms into the longest chain algorithm. The longest chain is the chain of most people, and the chain will actually be determined by the few remaining honest nodes. This behavior does not last for a long time, as stakeholders will eventually vote to replace those who are out of the block.
Corruption of majority of producers
The user's signature for a transaction is based on a hypothesis about the state of the blockchain, which is based on their "knowledge" of the last few blocks (perception). If the consensus of the longest chain changes, it is likely to invalidate the assumptions on which the signer was previously signed.
For Tapos, all transactions contain the hash of the most recent block, and if the block does not exist in the blockchain, the transaction is considered invalid. Any person who signs a transaction on an orphan fork (orphaned fork) will eventually find the transaction invalid and cannot be migrated to the main fork.
This process has a collateral benefit that can withstand long-range attacks (long-range attack) that attempt to generate alternative chains. Each time a transaction is made, the stakeholder confirms the blockchain directly. Over time, all the blocks were confirmed by all stakeholders, and this was not done in a forged chain (forged chain).
In all the cases shown above, the block is dispatched by a loop. In fact, every n block (n is the number of people out of the Block), the collection of the block will be a mixed wash. This randomness ensures that block B does not always ignore the block a, and when there are multiple numbers of identical forks, there will eventually be a fork to win.
In every conceivable natural network destruction, DPOS are robust, even in the face of most of the people cheat, is also safe. Unlike other consensus algorithms, DPOS can still continue to work when most out-of-the-block people are having problems. In this process, the community can vote to replace unqualified out-of-block people until the 100% participation rate is restored. In such a high-intensity and varied fault conditions, I do not know any other algorithms can still remain so robust.
The reason why Dpos has such a high level of security comes from the algorithm that chooses the block and verifies the quality of the node. By endorsing the voting system (approval voting), you can ensure that even if a person has 50% effective voting rights, he or she cannot choose a single person out of the block alone. DPOS is designed to optimize performance with good network connectivity, honest node 100% participation in consensus, which makes DPOS capable of confirming transactions with 99.9% certainty in an average of only 1.5 seconds, while being able to downgrade in an elegant and detectable way – downgrading is no big deal.
Other consensus algorithms are designed to be dishonest and poorly networked. The end result of this design is that the performance of the network is worse, the latency is higher, the update overhead is high, and the 33% node problem will completely stop the normal operation.
We experienced a variety of network conditions and software errors during Bitshares's successful run of three years, steem during the year. For various situations, DPOS has managed to deal with it successfully, and has proven to handle more transactions than any other blockchain while maintaining consensus.
?
DPOS consensus algorithm-missing white paper