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?