You are viewing a single comment's thread from:

RE: An Improvement to DPoS

in #blockchain8 years ago

Firstly, IMO the election schema of committee is not ideal. Before any other changes, it's best to change this one.

Secondly, some of your ideas may have performance issue, for example, when generating a block, with your algorithm, it's needed to update all the voters' data, but quantity of voters are unbounded.

Thirdly, DPOS is based on trust. The concept is the most trusted witnesses are likely to serve the network the best. I suspect the coinage destroying/reset mechanism will probably lead to Sybil attacks. It means anyone who was voting in last round (maintenance interval) will have next to no zero weight in next round, thus the active witness list will change much. This doesn't solve the risk that a stakeholder with 600M stake has the ability to take over the list, actually, I guess if she want, she can split stake to several accounts to get around the limitation in the new algo. It perhaps only makes the voting game more complicated, thus harder to explain to an average Joe, thus even worse voting rate.

The risk of "stake is all" is a special issue when centralized exchanges can vote with customers' fund, I think some kind of lock/vesting schema for example the one used in Steem is better. A stakeholder voting with stake of herself should not be an issue. It's natural that big holders want more control. If one big holder did evil, it's due to other stakeholders didn't stop/counteract her in time due to voting apathy or whatever reason, thus is not all her fault but also others, because, with great power comes great responsibility.

Another thing need to consider: there is no mechanism to check if a standby witness is ready for block producing, even don't know if it's running a node, so network participant ratio is not guaranteed. This risk exists with current algo as well, but not as risky because usually the list won't change much. It can be improved by introducing some checking algo for example the one which is going to be implemented in Steem: https://github.com/steemit/steem/issues/278 .

Sort:  

thanks abit, for your valuable comments