A more thorough consideration of the Early Voting Penalty issue

in #steemit6 years ago (edited)

So after a long discussion with @eonwarped in the last post, I thought it would be good to write up a clearer post about how the change in hardfork 20 from early vote curation rewards increasing the author's share to early vote curation rewards being returned to the pool came about, why it's a bad idea, and what we should do about it instead.

This started, as I understand it, because some authors were using the way early voting works to gain a significant advantage in post rewards. A large early vote changes the percentages that a post pays out to the author and the curators, sometimes drastically. This can be a significant exploit, especially when combined with bot votes.

One way to think about it is that an early vote takes money away from the curators. By manipulating the timing of self-votes and bot-votes, authors have been able to take money from the curation pool and move it into the author pool, essentially directing that money from curators to themselves. The hardfork 20 change is to take that reward away from the author and destroy it instead, giving it to no one. Its proponents like to call this "returning it to the rewards pool" because it essentially functions the same as voting on a declined-rewards post - the rshares are used but don't go to anyone, so they aren't used to determine where the rewards pool is distributed.

I'm intimately familiar with this exploit; I use it both for my own benefit and to make my outgoing votes more powerful. On my own posts I chain bot votes in this fashion to increase my rewards. And 2/3 of my voting power is in @themesopotamians project which votes at minute-zero specifically to give the authors I support more value under this system.

I agree that this is a bug. However, I believe that the bug has been mischaracterized.

The solution proposed in hardfork 20 is to remove the bonus author rewards and destroy them instead. I already wrote a lot about why that has ridiculous side effects, but I want to look at how @eonwarped described the bug early in the discussion on that post:

this weird quirk where currently the author themselves can assign value to their own posts without any feedback from others.

This is true, but it's secondary. It's an exploit of the bug, but it's not the bug itself, and part of the problem with the hf20 approach is that we're treating it as the bug.

The bug is that early votes reduce the curation pool.

When I put it that simply, it's really self-evidently kind of stupid, isn't it? If you vote early enough to not get a curation reward, then the other curators don't get it either. Currently the author gets it, which is strange. In HF20 nobody will get it at all, which is stranger.

How about if we just stop that from happening? Conveniently, we wouldn't even have to change the FAQ:

Of the 25% that goes to the curator, that portion will be split between the author and the curator if the curator votes within the first 30 minutes. The split of the 25% between the author and curator during the first 30 minutes is calculated linearly based on the time the vote is cast.

If a post is upvoted the moment of posting, 100% of the curation reward goes to the author.
At 3 minutes, 90% goes to the author and 10% to the curator.
At 15 minutes it's a 50/50 split.
At 27 minutes, 10% goes to the author and 90% to the curator.
If a post is upvoted 30 min after posting, 100% of the curation reward goes to the curator.

The way that I read this when I first arrived here is that if you vote at minute zero 100% of your vote goes to the author, and you generate no curation at all. That's not what happens - in fact you generate just as much curation reward as you would have if there was no early voting penalty, it just goes to the author instead of to you. The other way makes a lot more intuitive sense, and it solves the bug without a lot of the silly side effects of the HF20 plan.

So here's my proposal:

  • A vote at minute zero goes 100% to the author, 0% to the curation pool, and generates zero curation for the voter.
  • A post at minute fifteen goes 75% to the author, 25% to the curation pool, and generates 100% curation for the voter.
  • All three scale linearly in between.

This keeps the amount of the vote that goes to curation in line with the amount of curation reward that goes to the vote. It still allows voters to give a little bonus to the author by voting early, but it's only a portion of their own vote, not anyone else's. 25% of any vote after fifteen minutes goes to curation on that post, period. We don't have to worry about giving away any portion of the curation to the author, or the pool, or Aunt Betty, because it all goes to the post's curators, where it ought to have been going in the first place. No matter when you vote on a post you don't take value away from anyone else. No matter when you vote on a post, all the value of your vote goes to someone involved with that post.

This may be a little harder to code but it shouldn't be at all difficult. And it makes the system work in a way that we can explain to other people without a tl;dr post like this one.

Steem.png

Sort:  

I've enjoyed reading your explorations on this aspect of the upcoming fork. I will admit that until you asserted voting on a post before 15 minutes would actually decrease curation for everyone in your demonstration post I would never have considered that the mechanic would work that way, at all.

I also have to admit I'm not fully convinced by your conclusion regarding the way it would work. (Do you code, by chance? I'm curious if you gleaned your understanding from reading actual programming because of how confident you seemed.)

Assuming you are correct about how it would work presently (unless they adopt a scheme where the "extra" rewards go to all curators as you recommended) the main thing I found unconvincing was your assertion that if rewards are returned to the pool, it would line the pockets of whales.

In fact, it would increase everything else in a diffuse manner: why single out "whale post rewards?" It would increase all Author and Curation rewards across the blockchain evenly.

Am I missing something here? As it stands, the conclusion gets people agitated, pessimistic, conspiratorial for no reason. I've recently seen several "gloom and doom" posts about the hardfork based off this idea that Steemit will become even "better for the big guy," but as far as I can tell that makes no sense.

I do agree that the solution you proposed would be much better than the one currently slated for release by Steemit, Inc. Since there as such frequent changes, it's entirely possible that they will adopt different mechanics for how it actually works, so posts like this are important.

Thanks again for the in-depth conversations you have, as well as your posts @tcpolymath! They've been thought-provoking to read, for sure.

I also have to admit I'm not fully convinced by your conclusion regarding the way it would work. Do you code, by chance? I'm curious if you gleaned your understanding from reading actual programming because of how confident you seemed.

I haven't read the new code in specific yet. But I've done a bunch of experiments to determine how it currently works, I've spent a lot of time reading post details in steemd, and I can show you some posts like this one where the effect is huge.

It would increase all Author and Curation rewards across the blockchain evenly.

It depends on what you mean by "evenly." It increases the value of everyone's vote by the same proportion, which in the end leads to the additional value being concentrated on the posts which have been upvoted the highest. If everyone gets a 10% bonus to their vote, you get 50c, I get 1.5c, and the redfish get dust. That's very much moving the economics further in favor of higher stakes.

That makes sense. Thanks for the link to the "Where does the profit come from?" article, it was really informative! I haven't been so active in thinking about the details of Steemit's operation for a while and it's nice to get back into it.

I see everyone getting an equal percentage back as being a neutral thing. While large stakeholders could use it to line their pockets, they could also use that extra to give more back to others. I do see now the validity of the conclusion I previously questioned, but it seems to me the repercussions would be more complex.

I see everyone getting an equal percentage back as being a neutral thing.

No offense, but it's really easy to think that when you have 66000 SP. The people who are having their author rewards taken away and replaced by vote increases of 0.001 are not going to feel that way.

Right, I understand that. (By the way, my native SP is only around 11K.) However, I see it as neutral because it would encourage investors with a larger amount of capital to power up STEEM (because it is more profitable to do so) while somewhat discouraging smaller investors.

Larger investors benefit STEEM more financially, while more average investors (less than $1000 or so) primarily benefit STEEM socially leading to a potential "network effect."

There are pros and cons of both, which is why concluding that "the rich will get richer" seems to an oversimplified conclusion.

Besides, there's no logical difference in looking at the present operation as

"We take profit from whales" ==> "More balanced" after hardfork 20

versus

"Rewards are balanced"==> "Whales take profit from us" after fork.

Also, as you mentioned in another post, currently many whales are taking a loss in VESTs by selling their votes. Some do things like this to intentionally give more to minnows. It's part of the reason I like having 50,000 SP borrowed even though it costs me several thousand dollars over a few months and yields a negative ROI since I don't exclusively self-vote.

Wouldn't that mean delegations, and SP vested after HF 20, were generally more powerful in their ability to give? In this case, again, I could see it as potentially beneficial. (though if that were the case, I'm sure the price of renting SP would rise, so I'm not sure.)

I see it as neutral because it would encourage investors with a larger amount of capital to power up STEEM

You really think we aren't stake-weighted enough for that already, and we need to add to it? That strikes me as a little bit ridiculous. Steem in its default state is a mechanism for exponential SP growth. It's already being boosted a lot by @steemit not voting their stake. We need to dial that down, not up.

Larger investors benefit STEEM more financially, while more average investors (less than $1000 or so) primarily benefit STEEM socially leading to a potential "network effect."

This isn't how it works anywhere else. Smaller investors/depositors have smaller individual contribution but they make that up by existing in far greater quantity. For Steem to be successful in the long term we can't just throw them out in search of people willing to put in a million.

Wouldn't that mean delegations, and SP vested after HF 20, were generally more powerful in their ability to give?

Yes, although probably not a lot. This isn't going to be a huge effect, relative to your stake, for you. People will change their voting behavior and there won't be a ton of money flowing up, but some is already too much for the people on the bottom.

It depends on what you mean by "evenly." It increases the value of everyone's vote by the same proportion, which in the end leads to the additional value being concentrated on the posts which have been upvoted the highest. If everyone gets a 10% bonus to their vote, you get 50c, I get 1.5c, and the redfish get dust. That's very much moving the economics further in favor of higher stakes.

This is the main issue here for me. I don't think it really makes the voting system more convoluted than it is already, in fact I feel it simplifies it in some ways (it does reduce an immediate effect of self voting). However, because steem is so lopsided as it is in terms of distribution and the system design is stacked to favor selfish voting, so ultimately this drives more power to the largest selfish actors in the system.

This is the thing that needs to be emphasized, but it's a bit difficult to quantify with real numbers. The thing is that a bigger reward pool is a good thing, but as you've pointed out other places, this is just faking it, it's shifting numbers around. The question are the reduced payout from self up votes in proposed HF20, offset by the possible increase of reward pool size? Which way do selfish voters get the most? This is the hard part, since it depends drastically on how selfish, and what is the tipping point for diminished rewards for "unselfish" voters; which lies in inflation and overall distribution proportions more than anything else.

It also depends a lot on predicting how the selfish, the unselfish, and the unsophisticated will adjust their behaviors with the new rules, which is imprecise at best.

Are you a witness?

Seems like you should be.

Thanks for the vote of confidence. That might be in the future plans, but I haven't run a server in over twenty years at this point and would probably have to find someone to partner with.

You seem to have the right mentality to be a good witness, but it's also a responsibility I wouldn't wish on anyone. I'd imagine there could be a great deal of frustration in having clear ideas on how things ought to function, yet being unable to reach a consensus to roll it out. You also couldn't really test things fully without releasing them, and then if they functioned poorly you'd have to create an entire new version or revert back. Sounds like a lot of work!

I'm interested but not immediately. Maybe in another month or 2 we can talk.

Well written post, well explained everything... But i still dont see how this makes any big of a difference in any regard.

It's not going to kill Steemit or anything, but it makes the voting system dumber and more confusing than it would otherwise be, and that's already a problem.

Since you have significant votes, I can look at your past payouts and see that if voting patterns don't change you'll lose $2-$3 per post to the pool. Even if you're ok with losing that, wouldn't you rather it went to your curators?

Making the upvote system more convoluted is a bad move, but large curators almost always upvote at 20-30 minute mark. Why do you think id be loosing 2-3 dollars? Helpie, drakos, kpine, vortac that are my biggest supporters all upvote me at 20+.. Dtube from 1-3 hours and dlive, even after a day.

The problem is that the change is unintuitive so those that dont educate themselves on the changes wont know, probably ever, about them.

Why do you think id be loosing 2-3 dollars?

You can check this by looking at posts that have already paid out and multiplying the total value by 75%. Anything the author got more than that will be removed under the hf20 system.

Even 20-minute votes can have a significant effect at the moment, though that will also change as they're reducing the penalty period to 15.

Hmm. Yeah, seems i was getting 1$ more per post over the 75% author rewards. Interesting.

Still trying to learn. Curation reward, and Author rewards are two distinct pools?...So when I vote on a post part of my vote gives an Author reward, and part a Curation reward?
So my vote is worth, lets say 0.060. At one minute 0.060 value is going to the author. How much of my vote value is going to the Author at the 31 minute mark? Also if a bot votes at the two minute mark what percentage of the curation reward would that vote garner?

Curation reward, and Author rewards are two distinct pools?

This is a useful way to think about it. Really right now it's one pool and the curation rewards are individually taken out of it before the rest is given to the author. But in a design sense, we can think of it as a chunk of money that goes to the curators and a different chunk to the author, that add up to the post payout.

So my vote is worth, lets say 0.060. At one minute 0.060 value is going to the author. How much of my vote value is going to the Author at the 31 minute mark?

Neither of these is an easy question to answer. The way it works now, at one minute the author might actually be getting 0.10 out of your 0.06 vote, depending on how many votes they get later. At 31 minutes the author gets at least 0.045 but it could be larger based on whether anyone has voted earlier. (But in that case it will always be less than the total value of your vote.)

You can even see this effect on some of your own posts because @m-sargon is autovoting you early. Looking at this post's payout, of $1.59, $1.34 went to you and only $0.25 to your curators. Essentially fifteen cents of curation were wiped out by the early vote, and you earned 84% of the value of the post rather than the normal 75%.

If you vote at 31 minutes and you're the first voter, the author gets 0.045 and 0.015 goes into the curation pool. (If you're the only voter you'll then get 0.015 worth of SP when the post pays out.)

But every vote before 30 minutes changes the calculation. You can see why I want to make this simpler. In my proposal the author would always get 0.06 on an immediate vote and 0.045 on a late vote.

Okay, that makes a bit more sense. You would think they would be able to just say and give the author 75% of all votes, who cares about time, and the curators. 25% to split among themselves. I guess they feel it needs to be complicated, to hide all the work arounds behind the code. Like the guy who figured out how to take all the partial pennies from banks and lending institutions and deposit them in a savings account and get rich.

I think I’m more confused about this now, when I thought I understood it. However this works, shouldn’t the interface be clear: if you vote now, the author will get x and you will get y? I realize this depends in some way on other votes on the post and other votes on other posts, such that it can change the value over 7 days, but this all really needs to be much more obvious if Steem is ever to go mainstream.

However this works, shouldn’t the interface be clear: if you vote now, the author will get x and you will get y?

Conveniently this is one of my core principles.

You are trying to apply common sense to something that the big fish want to be complicated so the sheep don't realize they are giving even more money to the larger members. With the current plan it's a tax on the poor to give to the rich.

You are trying to apply common sense to something that the big fish want to be complicated

That's certainly a possible explanation. If so, relentlessly applying common sense to it in public may have a long-term effect.

I still have some hope that they just didn't think this one through, though.

"I still have some hope that they just didn't think this one through, though."

You must be an eternal optimist then!

Holy moly.... I just realized what your proposal describes was how I thought it worked, and I misread the code. The situation is a lot worse than I thought....

I don't even like this proposal but I will definitely agree that it is a significant improvement.

That would explain a lot of why I felt like we were talking past each other.

I haven't checked recently but when SBD was high immediate self-votes on posts with bot votes or other large votes later were returning something like 600% of their nominal value. It's probably a lot less now but still well above 100%.

I'm not sure how the proposed system would look come to think of it. It's easy enough to separate the pools, but how to compute what the first early voter gets?

The ideal algorithm will still want to penalize early voters on curation.

You'd have to figure out how to modify the weighted stake in a sensible way... Maybe take the leftovers of the current algorithm and divide it evenly amongst the curators?

Once we get into the actual curation algorithm I still get a little bit lost, but I think that weighting the vote by the percentage that it's early and just pretending that the rest of the vote doesn't exist would end up with acceptable results.

So a $3 vote cast at five minutes would earn curation as if it were a $1 vote.

(This is with intentionally not getting into any of the ways you and I dislike the existing curation algorithm, because that's a much larger discussion/change.)

Thank you for this explanation. I've been upvoting as soon as I have seen something on my feed I like purely for the social aspect. It can be awfully lonely posting into the void. From now on I will just comment and leave the upvote for later. Unless votes at zero don't influence anything?

Hardfork 20 hasn't happened yet, so right now early votes give more money to the author. After it happens - and we don't have a solid date for it but they seem pretty close - it will be better to only vote on things after they're fifteen minutes old.

Thankyou for the clarification :)

"A vote at minute zero goes 100% to the author, 0% to the curation pool, and generates zero curation for the voter."
This... still incentivizes self voting right? A self-voter will receive 100% of the reward from the vote when voting early under your system (since they are in fact the post author as well as the voter), while all other voters would be penalizing themselves through reduced curation return when voting early. What am I missing. How is this a solution to anything?

It reduces the value of a self-vote (or a bot vote or a sockpuppet) to 100% from the current up-to-800%. If 100% is too high for you than you can still do something else about it, like exempt self-votes or prevent them entirely. Personally I think it's fine.

Edit: it's worth noting that it's still easy to get to 100% under hf20 by voting on your own comments after fifteen minutes.

This is all so mind-boggling, so confusing for a simpleton like me. Surely, things don't have to be so complicated? Never mind, I will just do my thing, and learn as I go along.
Thank for writing the post. I don't know if it has enlightened me or confused me more. :-)

Coin Marketplace

STEEM 0.21
TRX 0.25
JST 0.038
BTC 96057.07
ETH 3334.98
USDT 1.00
SBD 3.06