EOS whitepaper walk-through: Consensus algorithm-Section One, Delegated Proof of Stake.

in #eos7 years ago (edited)

                                                        

Read the Whitepaper here 

Last time we finished going over the abstract, note and disclaimer, and took a brief overview of the EOS whitepaper.

And we went over the two of the ten parts, Background, and Requirement.

We will be going over the Consensus Algorithm of EOS, but because this is a rather complicated subject, it'll be divided into three articles.

Consensus Algorithm (BFT-DPOS)
EOS.IO software utilizes the only known decentralized consensus algorithm proven capable of meeting the performance requirements of applications on the blockchain, Delegated Proof of Stake (DPOS). Under this algorithm, those who hold tokens on a blockchain adopting the EOS.IO software may select block producers through a continuous approval voting system. Anyone may choose to participate in block production and will be given an opportunity to produce blocks, provided they can persuade token holders to vote for them.

Note: There are different terms for someone who is allowed to publish a valid block update that will be accepted by the blockchain. In Bitcoin, the term is "miner", in Ethereum it is "vaildator" and in EOS it is "block-producer". For simpilcity's sake I will be adopting the EOS' term to describe all three.

A consensus algorithm is the process in which the network come into agreement which set of records is the legitimate one, and thus the one to be accepted by the network.

Bitcoin uses a combination of Proof-of-Work with longest chain rule. In Bitcoin's case, the set of records that took the most work to produce is the one with the claim to legitimacy. 

Because it takes enormous amount of computation power to produce a block, and each block depends on the previous, it is unlikely any person will have this much computational resources. And it is unlikely that many party will collude to attack the network since individually, they will be better served supporting the network rather than attacking it. 

But as we've seen lately, these assumptions have proven to be false. 

Proof-of-Work Flaws

A combination of specialized hardware and concentration of miners gave rise to massive mining pools like GHash.io, who gained 51% of the network's hashing power and had the ability to control the Bitcoin network unilaterally, and comprising the network by performing a double-spent attack.

At the time of writing, top 6 mining pools are holding around 81% of the network's hash rates, and they are all located in China, a country with a centralized government that could at any time intervene in the mining pool's operation.

Promise of Proof-of-Stake.

Proof-of-Stake is an alternative consensus algorithm that has recently been favored by new blockchain technologies.

At it's core, Proof-of-Work systems rely on the assumption that those who have invested a lot of economic resources into equipment will not risk their investment to attack the network.

Proof-of-Stake just takes a simplified step, trusting those who invested the most into the ecosystem to not go against their economic interest.

In Ethereum's model of Proof-of-Stake, an address that holds a threshold amount of tokens will "stake" or lock up their tokens for a chance to become the block-producer. If the Ethereum network detects the address behaving dishonestly, then the address will lose its staked tokens.

Shortfalls of Proof-of-Stake

In a simple Proof-of-Stake system encourages concentration of tokens in a small number of addresses. And encourages a concentration of wealth. This is because for one to qualify as a block-producer, a certain threshold must reached. And once someone becomes a block-producer, he or she is paid for the amount, effectively generating more wealth which then can be further invested into another address to make it into another block-producer.

This eliminates the chance of vast majority of small token holders from ever becoming a block-producer. 

An old idea made new.

The Consensus Algorithm of the EOS blockchain is one of the true innovation of the EOS software and what sets it apart from other blockchains.

But the concept it burrows is 200 year old one: representative democracy.

In a representative democracy, instead of each person voting directly on political issues, they vote for those who they think will be able to make the best decision on specific areas like economics or foreign policy.

There is, however, a difference between representatives chosen by citizens and representative chose by EOS token holders. In a democracy like America, it is one citizen one vote, whereas in EOS, it is one token one vote.

In this sense, it is more like America's best product: The Corporation.

In a corporation, shareholders chooses, through a process of a vote, a Board of Directors that oversees the executive team and hold them accountable to the wishes of the shareholders.

In a corporation, the more shares you hold, the more weight your vote has.

In the EOS network, it is token holders who, through a process of a vote, chooses Block Producers who maintains the operation of the network and hold accountable businesses that operate on the blockchain to ensure that they do not violate the terms of service set forth by the token holders.

This is a variant of the Proof-of-Stake mechanism and is called Delegated Proof-of-Stake.

Delegated-Proof-of-Stake

Each token who stakes his token will have a voting weight proportional to the amount of the tokens he have staked. This is traditional Proof-of-Stake. 

In Delegated-Proof-of-Stake, each stake holder can delegated their influence to other users without giving up the control of their property.

That means 10 individuals each owning just 1% together will have the same amount of influence of 1 individual owning 10%.

Though simple, enables many more people to be able to make meaning impact on the blockchain.

Resolving forks on Delegated-Proof-of-Stake

It follows the longest chain rule for one, meaning that the database that has the most valid data-block updates is the one that is accepted by nodes in the network. 

If there is two competing data-chains, claiming legitimacy, the nodes can make a comparison between the two and disregard the one that is shorter. 

This same concept applies for the EOS blockchain. 

The only difference is that the block-producing nodes are known on the EOS blockchain.

In the case where some elected producers decide to create a fork of the blockchain, they would have to have the super-majority to maintain the fork to be the longest one.

Otherwise the longest chain will always be the one with the most block-producer support.

In the next article, we'll go over what utilization differences is why it allows for faster confirmation times and increased trust in the network.

------------------------------------------------------------------------------------------------------------------

If you would like to know more about me and what I'm doing you can read my introduction post here.

Read my series on the Steem blockchain:

Steem: Welcome to the Matrix. Part One

Steem: Operating in the Matrix. Part Two

Steem: Construction of the Matrix. Part Three

Read my series on the EOS blockchain:

EOS whitepaper walk-through. Abstract

EOS whitepaper walk-through. Note and Disclaimer

EOS whitepaper walk-through. Overview

EOS whitepaper walk-through. Background

EOS whitepaper walk-through. Requirement.

And you can contact me in the following way:

Twitter

@bluabaleno on Steem.chat

[email protected]  

Sort:  

@bluabaleno this post made me think a lot about the way that VeriCoin and VeriumReserve are trying to address the PoW and PoS issues you mentioned. It is interesting that much of your argument rests with the 'economic interest of the miner/holder', because that is ultimately why many of us are in the space.

yeah it is in a sense the lowest denominator that binds us all in this ecosystem. The difference is design of the incentives and the goal of the design.

For Bitcoin, it is maximum security in the form of hashing power.

It is not clear what it is in Ethereum right now. And as for Steem, it seems to be to propagate the Steem message as much as possible.

Great article as always, what i still don't get, specifically with the heavily discussed staking period, will this supply to users who vote, or is that relevant for block producers only? and what if a block producers acts fraudulent, whose token will be taken for possible penalties?

You got upvoted from @adriatik bot! Thank you to you for using our service. We really hope this will hope to promote your quality content!

You got a 16.78% Prime Upvote from @alphaprime courtesy of @bitad!

All Upvoted posts are considered for additional Upvotes and Resteem based on quality content criteria chosen by our moderators in an effort to give something back to the community.

If you have any queries, want to send a feedback or interested in delegating SteemPower to us please join our discord channel.

Please delegate us Steem Power & get daily rewards share!
20 SP, 50, 75, 100, 150, 200, 300, 500, 1000 or Fill in any amount of SP.

You got a 3.71% upvote from @minnowvotes courtesy of @bitad!

You got a 6.67% upvote from @thebot courtesy of @bitad!
Please delegate us Steem Power & get 100% daily rewards share!

You got a 2.54% upvote from @mitsuko courtesy of @bitad! .

Join our team and delegate your SP to earn passive income.
Get part of 90% @mitsuko profit based on your delegated SP
Delegate 10 SP
Delegate 100 SP
Delegate 200 SP
Delegate 300 SP
Delegate 500 SP
Delegate 1000 SP

or custom delegation SP

Beep bop, this is @pushbot.
I just received a signal from the Mother Ship that you may require a push.
You just got a 10.97% upvote courtesy of @bitad!


Message from the Mother Ship:

You can earn daily profit by delegating SP to make @pushbot stronger. Delegators receive a share in 95% of the earnings.

Click one of the links below and start earning :)

10 SP20 SP50 SP
100 SP200 SP500 SP
1000 SP2000 SP5000 SP
Any Other Amount

You have been defended with a 5.15% upvote!
I was summoned by @bitad.

You got a 10.32% upvote from @luckyvotes courtesy of @bitad!