Suggestion: Proposal of Voting Power Calculation for Steem Power Delegation

in #utopian-io7 years ago

Background

In Steem/Steemit, the reward of each upvote is proportional to the voter's Steem Power (SP) and Voting Power (VP).

One user can delegate its SP to another user. The delegator can take the SP back be un-delegate the SP. The delegator needs to wait for 7 days to get his SP back after the action of un-delegate.

Each time a user votes, its VP decreases by 2% of its current VP. When VP is 100%, after one full vote, its VP will decrease to 98%. When VP is 50%, after one full vote, its VP will decrease to 49% (98% of 50%).

VP increases as times goes by. It increases 20% each 24 hours, or 2% each 2.4 hours. But VP can never be larger than 100%. VP can never be 0% either.

Screen Shot 2017-12-04 at 1.57.05 PM.png
Above screenshot shows my VP is 91.12%. I have 40 SP. Somebody delegated 14.5 SP to me. My total effective SP is 40+14.5 = 54.5SP.

Why wait 7 days to get delegated SP back

Why the delegator needs to wait 7 days to get delegated SP back?

Assume UserA has one million SP and UserB has 0 SP. If they don't need to wait 7 days to get delegated SP back, they can use the following scheme to get more rewards from the reward pool:

  1. UserA casts many votes with its one million SP for 5 days. UserB doesn't vote and let VP to reach 100%.
  2. UserA delegates one million SP to UserB.
  3. For next 5 days, UserA doesn't vote and let VP to reach 100%. UserB vote extensively to use its VP as much as possible
  4. UserA undelete the one million SP
  5. Repeat

Therefore, if the is no 7-day waiting period, the users can vote more than they fair share.

Is 7-day wait period fair?

Is 7-day wait period fair? My answer is: no.

If both UserA and UserB keeps their VP high, they won't get the fair share of the SP.

if UserA and UserB use the scheme described in last section, they can still vote more than their fair share.

A proposal for fair VP

In this section, we propose an algorithm to update VP for fairness.

Assume:

  • VP_a is VP of UserA
  • VP_b is VP of UserB
  • SP_a is original SP of UserA
  • SP_b is original SP of UserB
  • D is amount of SP UserA will delegate to UserB

After UserA delegate D SP to UserB

  • UserA's VP will not change
  • UserB's VP will update to (VP_a * D + VP_b * SP_b)/(D + SP_b)

When UserA un-delegate D SP from UserB

  • UserA get the SP back immediately
  • UserB's VP will not change
  • UserA's VP will update to (VP_a * SP_a + VP_b * D)(SP_a + D)

Using the above algorithm:

  • Delegator will not need to wait 7 days to get SP back
  • It has better fairness



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Thank you

Hey @rmb I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Thanks for information

Welcome