How to Modify Steem Curation Such that Voting is Blind
Here I propose a method to make curation voting blind to voters, which will reduce swarm voting (voting where later voters blindly follow early voters) and may also reduce the incentive to vote with a bot.
Bot voting is a potential problem for curation
Recently, it has been observed that a number of users have been using bots to automatically up-vote Steem authors who have a good track record of contribution. Steem developer Dan Larimer (@dan, @dantheman) conducted an experiment requesting users to not up-vote his post describing the experiment. The results revealed that many users up-voted the post, most of these likely were bots that did not evaluate the post beyond determining the author. Voters have a strong incentive to use bots because the Steem reward system weights early votes much more than those that come later.
Bot voting is a curation problem because it removes any incentive for curators to review submissions. Once a bot has voted on behalf of a user, the user has little reason to visit the post and override the bot's decision.
Curation is a Schelling game
Curation voting can be considered a Schelling game where voters try to identify the post's Schelling point, which is the vote most likely to be cast by future voters. Essentially, each voter must decide from available information whether later voters will vote for the post. This information has three primary sources. The first is the subjective quality of the post content. If curation were a perfect game, post content would be the only source of information. If the post content is subjectively good, then the Schelling point is the up-vote. The second source is the body of decisions revealed by curators who have previously voted on the post in question. This source of information leads to swarm voting because the obvious Schelling point is the consensus of previous voters. The third source is the author's track record, where the Schelling point is an up-vote if the track record is positive. This latter source of information leads to bot voting, which will establish a Schelling point that then leads to swarm voting.
A blind voting scheme requires limited cryptography
All sources of information not directly pertaining to the subjective quality of a post cannot be fully eliminated, although this information may be reduced. One way to do this is to use a blind voting scheme, where a voter does not know the votes of other curators. A blind voting scheme may be accomplished using a system with very little cryptographic overhead. The system I describe is inspired by Vitalik Buterin's proposed system for a price feed.
The essence of this blind voting system is to have voting rounds wherein voters commit votes without initially revealing them. After each round is over, the voters reveal their commitments as a requirement to earn rewards.
Commitment C would be:
C = Hash(V + R + Hash(R + W) + K)
Here, V is the vote, encoded as 1 for an up-vote and 0 as a down-vote, R is a 256 bit random number, W is the voting weight, and K is the voter's public key. The term
Hash(R + W) prevents the voter from changing votes by simply changing W, as would be possible with a commitment of the form
C = Hash(V + R + W + K). The large size (256 bit) of random number R prevents other voters from trivially decoding the vote by brute force.
At the end of each voting round, voters must reveal V, R, and W. The reveal step requires no effort from the voter because this step can easily be automated by the voter's client software.
Reputation can attenuate voting power
If this system were coupled with a reputation score that attenuated voting power based on vesting, voters could compete for reputation. The mechanism would be one wherein curators that vote with the consensus take reputation from those who vote against consensus. Additionally, Sybil attack would be prevented in the same way it is currently, where voting power is weighted by vests. Inconsistent or incomplete (not revealed) votes would not be counted and would carry a penalty of approximately the same magnitude as minority voters.
A blind voting system can reduce bot and swarm voting
This system would reduce bot voting because it would give time for curators to review material before being pressured to vote--in contrast to the current system where milliseconds matter. Additionally, later voters would not be able to freeload one the work of early voters because the results of the work would not be visible. Each round of voting could be scored independently, without taking into account earlier rounds, reducing (but not eliminating) the influence of earlier rounds on the Schelling points of later rounds.