Gaming the Steemit Voting System?
Let me preface this by saying that I haven't read the code, so I could be way off-base. This is just based on my best understanding after my own observations of voting in practice.
Curation Rewards
As I understand it, there are four components to the curation payout of a steemit post:
- Time after posting - payout starts at 0%, then goes up gradually from 0 to 100% at 30 minutes, then stays at that peak until payout.
- Order in the voting queue - Earlier voters receive higher payouts (bounded by item #1).
- Voting power / voting percentage - Payout is proportional to the voting power that's used.
- Steem power - Votes with high steem power raise the curation reward more than votes with low steem power.
[]
[Image source: pixabay.com, licensed under CC0, Public Domain]
Sybil Attacks
One very clever feature about steemit's design is that it's designed to be resistant to sybil attacks. If I vote with one account or 20 shouldn't matter, because it's the steempower that determines the size of the reward, not the number of votes.
But, let's think about a sybil attack in terms of factors (2.) and (4.). If I want to maximize my reward, I need to be an early voter with a lot of steem power... Or do I?
What if I divide my steem power unevenly in two accounts - voter_1 and voter_2? Is steemit really resistant to a sybil attack? Let's say, for the sake of argument that voter_1 has a small amount of steem power and voter_2 has a large amount.
Now, I run around steemit-land with voter_1, haphazardly early-voting on as many low-value posts as I can that still might take off. Some of those posts will gain large curation rewards, others won't, but I don't care 'cause my footprint is small anyway.
Now, with voter_2, I watch and wait to see which ones actually do take off, and I vote later for the ones that do, adding my large steem power to the curation payout. Now, (if I understand correctly) voter_1 is going to benefit from its early positioning (item 2.) and from the high steem power (item 4.). It's as if I'm transmitting my steempower from voter_2 to voter_1 after I know that a post has performed well.
Of course, under this strategy, voter_2 is going to have a lot of idle time (type II voting errors), so what I really need are: {voter_1, voter_2, ... voter_N} as small steempower accounts to place enough early votes to keep voter_(N+1) busy with the high steem power votes.
Solution?
I don't know. Maybe let individual users vote multiple times on a single post at different times in the payout cycle until they've used up their entire 100% voting allocation?
I think you are missing something. It is true that voter 1 would benefit from voter 2 in terms of curation rewards however voter 2 will miss out on rewards. The reason for this is that if you use voter 2 only on the posts that are doing well it means that other users in front of you are taking a bigger piece of the pie because the order of the votes matter.
You also have to consider that the impact of the vote is non-linear. I think the factor is n squared relative to your stake (your Steem Power or vests). If you split up your vests into different accounts the net impact of your votes is less than what it would be if you only use one account with a larger stake.
Good points, and I don't know the internals, but I wonder if those factors would be outweighed by the fact that voter_2 only ever votes on winners?