EOS whitepaper walk-through: Consensus algorithm-Section Two, Block-Producers.

in #eos6 years ago (edited)

This is Section Two of Part Three of the EOS whitepaper.

Last time we talked a little about how the Delegated-Proof-of-Stake consensus algorithm works in EOS, today we are going to take a look at how it impacts the network as a whole.

Delegated Representatives 
The EOS.IO software enables blocks to be produced exactly every 0.5 second and exactly one producer is authorized to produce a block at any given point in time. If the block is not produced at the scheduled time, then the block for that time slot is skipped. When one or more blocks are skipped, there is a 0.5 or more second gap in the blockchain.

Delegated Representatives are special nodes that have selected by token holders to maintain the network. 

Blocks are produced every 0.5 seconds, meaning the time interval between each block interval is just half a second.This was changed from have a block producers produce one block every 1.5 second from the previous whitepaper.

Using the EOS.IO software, blocks are produced in rounds of 126 (6 blocks each, times 21 producers). At the start of each round 21 unique block producers are chosen by preference of votes cast by token holders. The selected producers are scheduled in an order agreed upon by 15 or more producers.

In Bitcoin and Ethereum, there is no agreement on which nodes gets to produce blocks, much less the order of nodes to produce blocks. This unpredictability makes updating the blockchain much slower.However, EOS is sacrificing some decentralization for faster latency. The benefit of this, however, is that block producers can be coordinate by token holders to be located in geographic regions that are close to one another, making the network more responsive. 

If a block-producer does not produce a block in his or her scheduled slot, that slot is skipped.

If a producer misses a block and has not produced any block within the last 24 hours they are removed from consideration until they notify the blockchain of their intention to start producing blocks again. This ensures the network operates smoothly by minimizing the number of blocks missed by not scheduling producers who are proven to be unreliable.

EOS aims to power blockchain applications that are reliable for daily use. Therefore block-producers must also be reliable. If a block producer does not provide reliable service, he or she must be replaced until he or she proves to be reliable again.

Under normal conditions a DPOS blockchain does not experience any forks because, rather than compete, the block producers cooperate to produce blocks. In the event there is a fork, consensus will automatically switch to the longest chain. This method works because the rate at which blocks are added to a blockchain fork is directly correlated to the percentage of block producers that share the same consensus. In other words, a blockchain fork with more producers on it will grow in length faster than one with fewer producers, because the fork with more producers will experience fewer missed blocks.

Currently, 21 block-producers are voted in and their digital signatures on data blocks are recognized as the legitimate block to be added on the blockchain. 

Furthermore, no block producer should be producing blocks on two forks at the same time. A block producer caught doing this will likely be voted out. Cryptographic evidence of such double-production may also be used to automatically remove abusers. Byzantine Fault Tolerance is added to traditional DPOS by allowing all producers to sign all blocks so long as no producer signs two blocks with the same timestamp or the same block height. Once 15 producers have signed a block the block is deemed irreversible. Any byzantine producer would have to generate cryptographic evidence of their treason by signing two blocks with the same timestamp or blockheight. Under this model a irreversible consensus should be reachable within 1 second.

If a block-producer signs off on two different blocks at the same time, it means he is trying to create a fork secretly. This is a major violation of the work he was voted in to do and thus can constitute as evidence of corruption and thus be voted out. 

Transaction Confirmation

Typical DPOS blockchains have 100% block producer participation. A transaction can be considered confirmed with 99.9% certainty after an average of 0.25 seconds from time of broadcast.In addition to DPOS, EOS.IO adds asynchronous Byzantine Fault Tolerance (aBFT) for faster achievement of irreversibility. The aBFT algorithm provides 100% confirmation of irreversibility within 1 second. 

In EOS, each block update produced will be signed off by the rest of the elected block-producers. Once a block gathers 15 signatures out of the 21 available, it is deem irreversible.

EOS also have asynchronous Byzantine Fault Tolerance, which allows for delays in communication between users and nodes. 

In the next article we'll go over the newer concepts introduced in the EOS consensus algorithm.


Coin Marketplace

STEEM 0.35
TRX 0.12
JST 0.040
BTC 70351.33
ETH 3563.43
USDT 1.00
SBD 4.72