there're 20 top witnesses and users can vote for 30 witnesses.
a)
why for 30? what is the history/reason for this number?
are there better options for the blockchain protection?
b)
why are there 20 top witnesses? what is the history/reason for this number?
are there better options for the blockchain protection?
a) Having more votes than the number of witnesses was originally by intent. In fact the original number of votes was unlimited. It had to be limited due to an expoit having to do with backup witnesses (but having no effect on top 20), so in order to avoid making it smaller than 20, it was set at 30. The idea of having more votes than top slots is that you want a top 20 that is "hard" to get into, for exactly the reason stated in the post:
If there are 20 "good" candidates, you want all (or at least most) of the responsible stakeholders voting for all 20 so that it becomes that much harder for a "bad" candidate to work their way. in fact, if there are 30 or even 50 "good" candidates, you still want them all getting voted by responsible stakeholders, to serve as firewall that keeps bad candidates from rising higher than 31 or 51. (In fact all of the responsible stakeholders can't vote for all 50, due to the 30 limit discussed above, so this is actually a bad think about the current limit.)
b) I believe the main reason considerations are: 1) decentralization (preventing a "small" number of parties from taking control of the network; 2) difficulty of coordinating updates, including emergency updates; 3) burden placed on stakeholders to evaluate "good" candidates (recall from above that we want responsible stakeholders to vote for at least 20 "good" candidates and if 20 were higher than it would be even more effort to do this); 4) time taken for irreversible blocks (IMO this is relatively unimportant, but I'm including it because @timcliff mentioned it, and it is correct); 5) amount of rewards received by each top witness.
Now with regard to a), we obviously recently had a situation where the network was "taken over" by a single actor with a lot of votes. It is often claimed that by reducing the number of votes, such a takeover would be harder to do. This is only partially true (a large actor could split their votes into two accounts, and since everyone else would be splitting their votes too, the vote totals on the top 20 would be quite a bit lower, likely close to half), but it also isn't the only security concern. Maximizing the height of the "firewall" to keep hostile actors from voting in any witnesses is also a good thing.
The large actor having a massive (more than 2x everyone else voting, at least prior to takeover when there were fewer votes) stake is something that is supposed to be an exceptional circumstance that is very hard to pull off, and in fact it was an exceptional circumstance, so I remain unconvinced that reducing the vote total is a good idea overall. I'm a little bit more favorably inclined toward the "1 SP, 1 vote" idea where you can split your vote but the strength of each vote is then reduced by 1/N. In that case: a) it doesn't reward splitting your account to be able to vote for more witnesses, and b) all responsible stakeholders would still be able to vote for all "good" witness candidates and keep up that firewall (good), though the vote totals aka "firewall" would still decline a lot (mostly bad).
thank you so much for taking time to provide all this explanation/info.
!ENGAGE 10
a: I can't answer the reason for 30 votes, it seems to predate Steem back to BitShares. It would seem that a number less than consensus witness slots would be a better option, given what happened on Steem.
b: The number of witnesses was explained by Dan Larimer a long time ago as a trade-off between blockchain security and decentralization and being able to properly compensate those witnesses. The more witnesses there are, the smaller the slices of the witness rewards are.
thanks for clarifications
!ENGAGE 5
I don't know the reasons behind the original decisions.
In terms of why there aren't more than 20, the more "consensus" witnesses there are, the longer it takes to form an irreversible block.
True, but in order for Hive to reach Instagram/Facebook volume sharding might be necessary anyway, right?
I'd like to see 63 consensus witnesses via a "beacon chain" (rip from Ethereum) and two shards. In my opinion, DPoS is outdated and we should look at other projects to improve upon it. Validators being required to stake the coin at risk of being slashed is an improvement upon DPoS. That's how Loom works now, with their DPoS chain.
Do you know if the Steemit Inc. devs still plan to develop a new social blockchain or did Hive kill that project?
Sorry for the late reply. Sorry, I have no idea what Steemit, Inc's plans are.
thanks for clarifications
!ENGAGE 5