How to Maximize Steem Voting Rewards

in #utopian-io7 years ago (edited)

Background

Steem uses voting system to reward the authors. For each post, the amount of the rewards for each voter depends on voter's Steem Power (SP), Voting Power (VP), and some other factors.

Utopian.io uses Steem rewarding system to reward the contributors of open source projects.

Relation to utopian.io

This post shows the bot of utopian tries to wait until Voting Power (VP) reaches 100%.

Mis-concept to maximize voting rewards

Many users want to maximize total voting rewards with given Steem Power (SP).

Many users (including me a few months ago) believe they can maximize their total voting rewards by keeping VP close to 100%. My analysis shows, this is wrong.

Steem Voting Power

Screen Shot 2017-11-13 at 1.48.00 PM.png

Each account of Steem has a variable of Voting Power (VP). The maximum value of VP is 100%. For each full vote, VP decrease 2% of its current VP.

For example, if the initial VP=100%, after a full vote, the VP will become 98%; If the initial VP=10%, after a full vote, the VP will become 10%*0.98 = 9.8% (not 8%).

Therefore, if a user cast many votes during a short time, VP can be very close to 0%, but can never reach 0%.

VP also repletes gradually as time goes. It can increase 20% each day, or 0.833% each hours. VP can never be more than 100%

User of Steem can vote with less power. For example, user can cast a 15% vote. In this case, VP will decrease 2%*15% of it current VP.

Assumptions

The rewards of a vote depends on voter's SP, VP, and other factor such as total rewarding pool and Steem price.

Because rewarding pool and Steem price are always changing and cannot be predicted, we just assume these are constants to simplify our analysis.

Also, the voter's SP can change at any time. We assume voter's SP doesn't change.

Voter can also delegate SP to other people and other people can delegate SP to the voter. To simply, we don't consider this. Just assume voter's Effective SP is a given number.

Based on the above assumptions, the reward of each vote is only related to voter's current VP and the weight of the vote.

Reward_of_vote = C*VP(t)*Weight
  • C is a constant
  • VP(t) is Voting Power of the user at time t
  • Weight is the weight of voting in %. The maximum weight can be 100%

Analysis of rewards

We know

R(i) = C*VP(t_i)*W(i)
  • R(i) is the reward of the i-th vote
  • t_i is the time of the i-th vote
  • VP(t_i) is the Voting Power just before the i-th vote
  • W(i) is the voting weight for the i-th vote
    After the i-th vote, the VP will decrease 2%.
VP(t'_i) = VP(t_i) *(1-W(i)* 0.02)

In which, VP(t'_i) is the Voting Power just after the i-th vote.
The different of the VP is

Delta(i) = VP(t_i) - VP(t'_i) = 0.02*W(i)*VP(t_i)

Therefore,

R(i) = 50C * Delta(i)

The above formula shows, the reward of a vote is only proportional to the absolute decrease of the VP, no matter how much values of VP and Weight are .

If we do not consider the VP replete, after a serial of votes, the total reward only depends on the starting VP and the end VP:

Total Reward of a serial of Votes = 50C * (VP(start) - VP(end))
  • VP(start): VP before the first vote
  • VP(end): VP after the last vote

If we consider the VP recovered with time,

Total Reward of a serial of Votes = 50C * (VP(start) - VP(end) + VP_Recover)
  • VP_Recover is the VP recovered during the whole period.

If VP never reaches 100%, VP_Recover is always equal to RecoverRate * Time, in which RecoverRate is always a constant.
If VP reached 100% during a period, VP_Recover will be less than above.

Conclusions

For giving start VP/start time and end VP/end time:

  1. As long as VP doesn't reach 100% during the period, the total voting reward will be the same no matter how you vote
  2. If VP reaches 100% for a period of time, VP will be wasted and the total reward will be less than the above

So the only strategy to maximize total voting reward is never let VP to reach 100%.

Discussion

Please note, we only discussed total rewards. For each individual vote, the reward is related to VP. If the voter want to keep certain level of reward for a single vote, the voter needs to increase voting weight when VP is low. For @utopian-io, most of the time, this is not an issue, because it has more than 3 million SP.



Open Source Contribution posted via Utopian.io

Sort:  

This is Factual

For giving start VP/start time and end VP/end time:

As long as VP doesn't reach 100% during the period, the total voting reward will be the same no matter how you vote
If VP reaches 100% for a period of time, VP will be wasted and the total reward will be less than the above
So the only strategy to maximize total voting reward is never let VP to reach 100%.

Hello @nationalpark please change the category to Suggestions. You can edit your post here: https://utopian.io/utopian-io/@nationalpark/how-to-maximize-steem-voting-rewards. Let me know once done. Data analysis category is only for analysing data and showing the results in charts or tables.

edit screen

[utopian-moderator]

Edited the post:

  1. changed category to Suggestions
  2. Fixed some typos and other minor changes

Thanks for the review

Accepted in Utopian. Thanks @nationalpark.

[utopian-moderator]

Hey @nationalpark I am @utopian-io. I have just super-voted you at 0.4% Power!

Suggestions https://utopian.io/rules

  • Utopian has detected 1 bot votes. I am the only bot you should love!!

Achievements

  • Much more informative than others in this category. Good job!
  • Votes on this contribution are going well. Nice!
    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

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63209.62
ETH 2570.91
USDT 1.00
SBD 2.76