Enhancing Steem's 'Proof of Stake' Model Through Expiry/Renewal Of Witness Votes Based On Account Activity Levels (Revised Based on Community Feedback)steemCreated with Sketch.

in #utopian-io7 years ago (edited)

The witness voting process is of fundamental importance for the continued success of Steem and its successful evolution into the future. Witnesses provide the hardware to keep Steem running and need to have relevant knowledge to maintain stability and also to ensure Steem evolves in healthy directions in the future through their influence over which changes to the Steem architecture are accepted or rejected.

Principles of holistic balance can be applied to social software systems to optimise their performance and productivity - plus increase user satisfaction. Implementation of these principles may possibly increase the value of Steem too. I previously posted on the topic of increasing balance in the witness voting process for Steem and this new post includes the same background info as the previous post and also presents an improved model for witness voting that includes suggestions and feedback from Steem witnesses and the community in general.

vote

Background - Proof of Stake


Witnesses are intended to be chosen based on 'Proof of Stake', which is the equivalent of Bitcoin's 'Proof of Work' model - whereby payouts are given to Witnesses based on them receiving community support in the form of votes (as opposed to payouts being given to miners of Bitcoin based on proof of them having 'mined' the Bitcoin).

The community is intended to vote for witnesses on the basis of evidence being provided that witnesses have a 'stake' in the success of Steem. 'Proof of Stake' could be financial, in that the witnesses might have invested large amounts of money in Steem, it could be more social - as evidenced by a strong community presence - or it could be through the provision of supporting apps and services that enhance the value of Steem and the value of Steem Services in general.

Since 'money' is a token used in exchange for time and energy (work) it is fair to say that the concepts that tie together all these forms of 'stake' in the community are 'value' and 'energy' - so the proof of the 'stake' is that in some way a demonstration is being made that value and/or energy are being given to the community by the witnesses.

'Proof of stake' is not just about financial input, but it is about community engagement too.

Background - Benefits & Obligations


The top witnesses receive significant percentages of the entire Steem payout pool and so it follows that it is right that the community sees some benefit in return for that. Part of the purpose of the community voting for witnesses is to ensure that the community is happy with the services provided by the witnesses. While witnesses have a responsibility to the community to perform their witness duties well, so too does the community have a responsibility to itself to ensure that care is taken when voting for witnesses.

Challenge: Problems with 'Stale Votes'


The Witness voting system is weighted so that those voters with the most Steem Power have the most capacity to influence the vote results. It is possible for people to invest large amounts of money into Steem Power, vote for a witness and then never again interact with the community. This is a problem in that while the witnesses who receive the votes may have been the best option at the time the vote was made, over time they may neglect their position and yet maintain their top position in the ranks anyway. If the heavy weight voter never returns to Steemit (perhaps even because they are deceased) - then their vote weight will continue to effect the future of Steemit, even in the face of consistently poor decisions being made by the witnesses they voted for.

Not only does this scenario lower the value of Steem and the potential success of Steem services, but it makes the barrier to entry for new witnesses unacceptably high and many will think they are wasting their time by becoming witnesses and gaining support through the voting mechanism.

In short, just as witnesses are intended to be chosen based on 'proof of stake' and as they will be deactivated by the Steem systems if their witness servers fail to process blocks for a specific time period; it also follows that the 'proof of stake' of each voter needs to be tested in some way and the votes removed if the test for the 'proof of stake' of the voter is failed.

Solution: Expiry of Witness Votes Based on User Account & Witness Account/Server Activity Levels


To ensure the relevancy of witness votes, votes can expire when either the activity levels of the voters or of the witnesses drops below predefined thresholds. Voters whose votes have expired can be subtly reminded that they need to renew their vote for their chosen witnesses through the Steemit UI and via the Steem Notification channels.

This will have the effect of ensuring that the witness 'marketplace' remains competitive and agile in a way that responds to the needs of the fast changing world of blockchain technology, the internet and Steem itself. The new notifications will inspire a greater interest in the roll of witnesses and the increased need to keep voter's interests will ensure a higher level of creativity and input from witnesses in general.

Suggested Triggers For Vote Deactivation


The following conditions will result in witness votes associated with the entity that trigger the condition being nullified.

  • Witness server misses significant amounts of blocks and is marked as inactive. In such cases, all votes for the witness will expire.
  • Witness account has no significant activity for an extended period. If a witness does not show any engagement with he community by receiving upvotes for comments/posts made in the previous 3 months, then their account will be considered inactive and their social 'proof of stake' is shown to be minimal. In such cases, all votes for the witness will expire.
  • Voter's account is has no significant activity for an extended period. If an account does not receive more than a minimum threshold of upvotes for it's comments/posts made in the previous 6 months then it is to be considered inactive for the purposes of witness voting. It will always be possible for account holders to set vote bots to try to circumvent the tests for account activity, but by calculating the value of votes made for the account's posts/comments (not including self-votes) the problem is mitigated to some extent. In such cases, all votes made by the user account will expire.

In the unlikely event that all votes expire, then witness ranks will be calculated based on performance only - rather than voter acceptance. This means that those witnesses with the least missed blocks and best performance in other metrics will be placed at the top until votes are re-established.

Redesign of Witness Voting UI


The witness voting interface is currently overly basic and confusing for users. It is common for them to attempt to vote for witnesses outside of the top 50 by entering the username and for them to then think that they need to click the round button that appears next to the name of the user - which actually then unvotes the user they had just unknowingly successfully voted for.

To support the suggested changes for vote expiry and also to resolve the existing nags with the UI, the following changes are suggested:

  • Ensure that all witnesses are presented in a list, instead of only the top 50 - this ensures equal treatment to all witnesses.
  • Allow the list to be filtered by a search field to only display witnesses that the user searches for.
  • Display performance metrics that are useful when considering which witness to votes for - such as numbers of missed blocks, user reputation and regularity of price feed update etc. The table from Steemian.info is a good example of a table that works.
  • Ensure voters can easily see where their votes have been made to expire and provide easy ways for them to reactivate them if it is possible (e.g. if the witness is currently active).
  • Provide a single UI button to allow voters to quickly re-vote for all witnesses they had previously voted for, where there votes have expired for some reason - provided the witness is currently active.

New Notifications


For maximum community engagement in the witness voting process, a new menu option could be added to the dropdown menu in Steemit for Witness votes which also displays a count of the number of active witness votes that the user has cast.

Notifications can be issued by the system to inform users when their votes have expired, which will be visible in whichever notification reader they are using - whether that be steemwatch, steemstats or some other application. Notifications can inform of vote expiry, plus show a count of the number of active and expired votes for the user to ensure they know their current situation.

I have previously written in more depth about the witness process in my witness application, which is here - votes for me as a witness are welcome!


Open Source Contribution posted via Utopian.io

Sort:  

Thanks for the amazing contribution. Approved

[utopian-moderator]

Great, thanks! fyi, the steem repo states that 'ideas' should be submitted via email to sneak, so i have to go into github and close the issue that utopian creates in these cases. Maybe it would be helpful to make posting to github optional.

@ura-soul mhhh quite an interesting catch here. Would be great if you could submit this as an idea for utopian. It will help me keep track of it.

Yeah, sure - ok, I'll do that in a while - no problem. :)

I just created the issue, it's here

btw, @elear - i noticed that the utopian bot asked me not to use any other vote bots on my utopian posts, so i didn't - but now the utopian bot isn't voting... is that because the bot needs to recharge? is there a queue that the bot works through or does it just skip out voting for posts if it can't vote due to lack of vote power?

Yes @ura-soul. The bot only starts when it is over 60% Power and only after 2 hours the post has been posted and reviewed :)

Ok, thanks for the quick reply. Is there any way to make sure all of the posts get voted on? Will you just lower the percentage of the vote power that gets used for each vote as more and more people use utopian?

@ura-soul so the bot has some params. The easy way to explain this is the more you contribute the more likely you will get voted. Some posts may get no vote at all if they have no traction from the community. We are working on a way to better manage the voting power so that can be used to vote more contributions as more are coming in.

I see, ok - I understand, it's all a learning process!

inb4: Account-keepalive and Witness-Vote-Refresh service.
The activity proposals dillute what vesting steem power means in terms of a proof of stake and tries to replace it with proof of activity. A proof that is easy to fake. If recentness is important in our economic model then why not either erode away vests for inactivity or 10x the reward pool to inflate away the vests of the inactive. These would have the same effect.
I do like the proposed improvements to the witness page though.

Thanks for your comment. The suggestion here does not dilute the value of steem power in the context of witness ranking, but rather it introduces a counter balance to ensure that community engagement is given due consideration when assessing proof of stake. 'Stake' is not purely financial and, indeed, economically speaking it is time and energy that are the primary investments humans can make - with finance being a secondary parameter. The vests will still have the same effect, provided that the social aspect of the 'proof of stake' is also present.

While it is possible to circumvent the suggested tests for activity given enough intention to do so, it is likely that the suggested changes will have enough of an impact to be worthwhile regardless.

'Recentness' does not need to apply to upvotes for posts since upvotes do not have a persistent life span in a continuum and they only effect posts for 7 days - so I take it that your idea of eroding vests in relation to recentness would apply to the witness votes.

I'm not clear why eroding the vests would be preferable given that that approach also relies on measuring activity which is open to the same potential manipulation that you highlighted here already. While having an 'eroding' effect on vests in general might cause a desirable outcome on witness votes there isn't really a need to provide such an elaborate equation when simply deactivating votes according to activity levels serves the same purpose.

If I understand your suggestion correctly, the only practical difference between your model and the one I suggested would be the nature of the velocity of devaluation of the votes, where yours would be a curved reduction to zero and mine would be an immediate jump to zero.

Thanks for taking the time to respond. The proof-of-stake is the financials. I'm not too sure how we'd measure the proof of "social aspects" in a way that's computationally efficient or is not gameable. It is a dillution of the power of vests - in your proposal in favour of proof of "social softy stuff". It's not a dillution of the numbers but a dillution of the effect of the VEST in the proof of stake. That might be desireable, but it is a dillution.To be fair you are saying somthing like your idea is gameable but many VESTs would not game.

My example about eroding vests instead is not meant to show my preference, but to hold up another example to show the why dilluting the power of VESTs is maybe not so awesome. Side issue though.

While it is possible to circumvent the suggested tests for activity given enough intention to do so, it is likely that the suggested changes will have enough of an impact to be worthwhile regardless.

(Emphasis mine)

That's a massive set of assumptions. On what do you base these?
tests for activity -> please define. I will show how they can be circumvented easily.
it is likely -> evidence please? I know it's crystal ball gazing, but there's got to be somthing to justify placing a likely probability on it.
enough of an impact -> really? And things could also be exactly the same, or not much different*
worthwhile -> I think this is the crux of the matter. Would it be any different? How do you know the whale voters aren't happy with where their witness votes are placed, even if they aren't regularly posting.

My evidence, that people will circumvent/game, is that people are already using tools to manage their time on steemit - so my two proposed bots to beat the "social aspects" and to reset witness votes are easily predicatable behaviour. More specifically, to support my claim, their is a quite large use of auto voting things already being used on steemit; trails, SteemVoter, FOSSBot, MB-SYV.

What say I grant that 10% of the top fifty inactive whales let their votes expire. What difference does that make to the make up of the witnesses?

Loading...

This wonderful post has received a bellyrub 2.75 % upvote from @bellyrub thanks to this cool cat: @ura-soul.

Hey @ura-soul I am @utopian-io. I have just super-voted you at 43% Power!

Suggestions https://utopian.io/rules

-Utopian has detected 2 bot votes. I am the only bot you should love!!

Achievements

-Good amount of information. Thank you!
-A very informative contribution. Good job!
-Votes on this contribution are going well. Nice!
-You are having more votes than average for this category. Nice!
-You are generating more rewards than average for this category. Super!
Up-vote this comment to grow my power and help Open Source contributions like this one.

Coin Marketplace

STEEM 0.19
TRX 0.12
JST 0.029
BTC 60808.77
ETH 3368.54
USDT 1.00
SBD 2.47