Proposal for New Rules Regarding Self-Votes and Voting-Rings

in steemit •  last year

There has been much discussion of these issues recently. It can become very heated, especially when behaviours are given a moral interpretation. What I seek to do here is to clarify a few things and then concentrate on encoding rules that encourage behaviour that is beneficial to the whole reward pool and that reward people who have different strategies.

The Steemit Game

Steemit is a game; it has rules that reward certain types of behaviour. Because there is real money at the end, the game can become very serious. But it is still a game and therefore can be analysed using game theory. And recent game theory is quite clear on three important matters: that absolute self-interest from all players does not achieve the best outcome for everybody, that cooperation can lead to higher growth than self-interest; secondly, that there is no way to guarantee that everybody follows a path of cooperation, that there is no way to eradicate behaviour that may appear anti-social; and lastly, that the best that can be done to achieve an optimal ecosystem is to limit behaviour that is considered sub-optimal. This must be achieved through the rules of the game and by changing those rules if it is deemed necessary.

Now, in the language of Steemit, we are talking about rampant self-voting and voting within a small clique, what I will call here voting-circles. These are all currently allowed within the rules of the game. However, a very simple thought experiment is all that is required to see if this is optimal behaviour or not: what would happen if everybody, absolutely everybody, did exactly the same thing? It is important to think about this; if these strategies are so profitable why doesn't everybody use them?

The calls for banning things such as self-voting are understandable but ultimately futile. Anybody can open two accounts and cross-vote between the two; a ban on self-voting is so easy to circumvent that the system would then need an array of security-bots to analyse voting patterns and discover voting-rings. All of which can be done, but it is wasteful energy; indeed, even any punishment would add to the waste. I think it is better to grow together but with a new-found balance.

Some New Voting Rules

The tables below show the effects of some new rules that target both self-voting and voting-circles. Because of the way self-voting bans can be got around, the two classes of voting behaviour are put together under the same rules. I think these are easy to encode if there is the will to implement them. I present a range of options just to show how the mathematics works; sometimes what appear to be large changes are not so large in the long term, and compounding is a very powerful multiplier that must be taken into account.

These proposed rules are in addition to the standard voting power depletion at 2% per vote. I have not, in this article, factored the two together. This is, firstly, not to confuse two issues and, secondly, it is a simple matter of multiplying together the numbers in the Rewards column with any of the numbers in the same row that correspond to each new rule. I can write a further article if this level of analysis is required.

Vote Reward Sum Rewards Reduce 10% Sum R-10% Reduce 20% Sum R-20% Inv V Sum Inv-V
1 1.00 1.00 1.00
1.00 1.00 1.00 1.0000 1.0000
2 0.98 1.98 0.90 1.90 0.80 1.80 0.5000 1.5000
3 0.96 2.94 0.81 2.71 0.64 2.44 0.3333 1.8333
4 0.94 3.88 0.73 3.44 0.51 2.95 0.2500 2.0833
5 0.92 4.80 0.66 4.10 0.41 3.36 0.2000 2.2833
6 0.90 5.71 0.59 4.69 0.33 3.69 0.1667 2.4500
7 0.89 6.59 0.53 5.22 0.26 3.95 0.1429 2.5929
8 0.87 7.46 0.48 5.70 0.21 4.16 0.1250 2.7179
9 0.85 8.31 0.43 6.13 0.17 4.33 0.1111 2.8290
10 0.83 9.15 0.39 6.51 0.13 4.46 0.1000 2.9290
11 0.82 9.96 0.35 6.86 0.11 4.57 0.0909 3.0199
daily % 0.1993 0.1372 0.0914 0.0604
year % 72.73 50.09 33.37 22.05
CAR % 206.8 165.0 139.6 124.7

Reading the Table

The first column shows the number of votes. At a depletion rate of 2% per vote and a replenishing rate of 20% per 24 hours, one can cast 11 votes per day. The "10 votes per day" meme is merely an approximation; the exact number is 11.

The next two columns labelled "Rewards" amd "Sum Rewards" shows the current algorithm and the effect of casting 11 self-votes starting at 100% voting power. I have set the first vote as yielding a reward of $1.00 purely to make the numbers easy to read. At the moment, using 100% voting power and 100% voting effectiveness, a vote is worth approximately 0.02%. This can change and does change, but at the moment it is a valid approximation for the purposes of making comparisons.

But what this means is that a $1.00 reward on a single vote requires approximately 5,000 SP. Bear this in mind when scaling up or down to your own Steem Power. Note that 11 self-votes yields almost exactly 0.2% per day. If all such rewards are cashed out this yields almost 73% per annum; however, if all rewards are powered up (and thereby compounded) the compounded annual return (CAR) is 207%.

New Algorithms

The next columns show three other algorithms that could be implemented to reduce the effects of self-voting and voting-rings. The first one shows a decrease of 10% per self-vote ("Reduce 10" or "R-10") and the next one shows a decrease of 20% per self-vote ("Reduce 20" or "R-20"). Notice how the mathematics works; changing from the current R-2% to R-20% does not drop the daily reward by a factor of 10 but only by a factor of about 2 - dropping from 0.2% daily to 0.09%, with an annual compounded return of 140%.

This is still not a bad return on investment and precisely the aim of adding such a rule to the current algorithm so that those who wish to use Steem as a resource for mining can do so without jeopardising the whole pool for those who wish to be rewarded for their social content.

The last column deviates from a percentage-drop algorithm and is an inverse-proportion algorithm so that the Rth self-vote is worth 100%/R. Notice that the rewards seem to drop much more steeply, but the power of compounding means that the daily rate for 11 votes is still 0.06%, which is 22% annualised and with a CAR of 125%.

As I already said, one thing I haven't done, which I could do in another article, is to combine the current R-2% rule with one or more of the above rules. I don't think we should change the current rule as that works globally. One of the above rules should be an additional change in voting effectiveness.

How Would a New Algorithm be Triggered

Any new rule should be as simple and efficient as possible to achieve its aims. Turning mathematical formulas into computer codes requires looking at the speed of such codes. This is just a proposal, but I have thought through the various ways that other triggers could be circumvented. Remember that the overall aim is to treat self-votes and voting-rings as essentially the same phenomenon - it is the voting for the same person repeatedly, whether it is oneself or a sock-puppet or another ring-member. We do not need different rules for each of these scenarios - one should be enough.

So, imagine you are Alice and click on an upvote to a post or comment by Bob. The code scans all the votes you have cast in the previous 24 hours and counts how many times you have vote for Bob. It then uses that number to calculate your voting power for that vote. For example, if this is Alice's 4th vote for Bob within 24 hours, and we are using the R-20% algorithm, the vote is now worth 51% of whatever it would have been had it been the first vote. Exactly the same calculation would be made if this was Alice's 4th vote for herself.

Yes, this takes a few more steps, but we are talking about a system designed to be scalable to thousands of times what it is now. This simple counting algorithm also resolves one strategy whereby Alice votes for herself at 100%, then votes for 20 other people at 1% each, then votes for herself again at 100%. Only bots can vote many hundreds of times a day - a human will rarely go beyond 60 or so.


I welcome all discussions about these proposals. These have more details than when I first mentioned them in paragraph 13 of Ideas for Future Rule Changes - Voting, Earnings, Maximum Social Benefits - a Discussion Document. That document is still worth reading as it sets out some ideas as to how I have arrived at these new rules, especially what game theory tells us is and isn't possible to achieve. To reiterate, it is not possible to completely eradicate those who see Steemit as a mining operation; what we can do is ensure that their mining activities do not suck out all the resources.

Mining towns were traditionally boom towns. The wealth generated from mining meant that new jobs were created, new businesses were born servicing the workers, who then gave rise to families and an enlarged community. Some of the wealth was sold outside the community, but there was enough left to make many others either wealthy themselves or at least comfortable. When a mine runs dry, we are left with a ghost-town.

Some other projects currently running:

Minnows Accelerator Project [Reward Share and 200 SP Delegated][July 2017 Signups]

Minnows Accelerator Project - Six of the Best MAP1 [Reward Share and 200 SP Delegated][Vote Now!]

Minnows Accelerator Project - Six of the Best MAP2 [Reward Share and 200 SP Delegated][Vote Now - Join In]

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

There should be a counter, or something that alerts the user how much self-voting they've done during the current pay period that warns them, the more they do it.. So they can visually see when they are beginning to overdo it.

Example: I've self-voted this comment of mine, because I believe my suggestion is important and don't want it hidden way down at the bottom. But if you look at my blog, under my comments section, you'll see I don't upvote the majority of my comments. I save that ability for when I have something important to contribute.

BTW.. Good post, and good suggestion. We need more suggestions to fix this problem before it gets worse.


i think that is a great idea

You have put some great thought into this. I'm not entirely sure how I feel about self voting yet. Sometimes it has great use and other times it is pretty clearly greed motivated.

What do you think about self voting a comment above other comments if personally deemed more relevant or important?


Thanks. The philosophy behind the proposed algorithms is not about stopping anybody doing what they want, but about limiting their effect on the whole ecosystem when that becomes excessive. Now, "excessive" is not defined by a fixed demarcation, but you can see that the rewards can drop off fairly sharply. I think that the "income" even with N-20% is still very good. Also, these would be on top of the current N-2% rule for each upvote.

Your point about self-voting on comments: there is also a good argument that as such voting is to achieve a benefit - to bump up the comment - then it should incur a small fee rather than a reward! But that is not in the current model.

Also, as a coder, you may wish to comment on the speed and efficiency of the algorithms, so as not to slow down the creation of blocks. This is one aspect that some people do not consider when they come up with a lot of different conditionals trying to cover every possible angle.

The overall aim is to shift the balance away from sub-optimal self-voting (in all its forms) and towards the more social behaviour that is more efficient for the whole ecosystem.

I strongly agree. If a user wants to be completely selfish, the system/community should be able to accommodate their choice without having any threat of the ship sinking.

I don’t want to see Steemit turned into a police state. I feel it’s kinda going there as the rewards dry up.

Also, I enjoyed your cashout vs compound investing comparison. Crypto should reward savers.


Thanks! It is a balancing act that can be achieved, but most people seem to be either staunchly anti or pro self-voting and need to think carefully about the long-term consequences of both stances.

Just banning self-voting will merely shift that activity into voting-rings and sock-puppet accounts, which then require going back to some similar rules as proposed above. So that means we end up with two new rules rather than just one.

I keep going back to one key finding in game theory research: non-optimal behaviour for a system cannot be wholly eradicated but can be minimized. The reason it cannot be eradicated is that it will reappear in another form.

I think the returns on investment are still pretty good compared to others, if one is treating this as an investment.

This is a great idea, really glad to see it expanded and teased out here. I will try to bring this to the attention of as many people as possible as I think it's a real contender for solving this problem.


Thanks @personz.
This needs some resteeming - or I need to write a cluster of mini-posts that point back to this.

This needs to be a major concern for people...we're all getting taken advantage of by these voting-rings! ... However, I think I see a problem...

So you can make Alice's self-votes decay, and you can make Alices votes to Bob decay, but in a voting ring of n people, there are n^2-n unique votes before any decay occurs if they're smart about it...

You could conceivably make a weighted graph which describes the upvotes given in the last 24 hours or something and use some sort of network flow?...For instance Alice's vote on Bob's post is weighted by how much voting power has been sent/received by them from the same accounts?...idk It's a tough problem

I like your proposal!

I haven't fully thought through the implications of the specific rules themselves, but changing the game to incentivise more cooperative interactions is the right approach imho.

The current debate (maybe I could use a stronger word here) about self-voting and steemit ethics won't get us too far and I feel the drama surrounding it is maybe detrimental to the development of this community.

I would welcome some changes in the game mechanics!


Thank you. I'm glad to see someone understands the relationship between game rules and behaviour - some just don't see it and ask (demand!) piece-wise changes and complicated conditionals that are, frankly, not going to produce efficient code that is fast enough to make blockchain interactions almost instantaneous for a human user.


yeap... totally agreed.

You can't change the players here, but we can change the game ;)

But to change the game, we'll need to introduce very subtle and efficient changes to the rules. Your proposal seems (to me) to be just that!

Good points.
We should look into this kind of behaviour, though I believe these algorithms should be a bit more lenient than cutting the voting power by half after 4 votes.

Sometimes I discover a new steemer and vote on most of their new posts because I like them. If I vote with a low vote-power (Since the HF made the number of full-power votes we can use per day pretty low), it'd be practically null if I vote on more than 6-8 posts in a row for that person XS

I'd say it should be scaled for those who are clearly profiteering off the system (Say, self-upvotes themselves 20 times a day or voting circles that are constant, no matter the content or length, and that number in the 25+ accounts, maybe).

It will all depend on how we want the community to evolve.

Oh, and your estimate that we can only really upvote a max of 60 times...
Do take into account our coming merging with AI/Brain Machine interfaces and the new speed we'll be at at that point XP


Thanks. But it just means you may stop at just 4 votes - look along the rows and even the 20% drop adds up to a total of 2.95 (almost 3) for 4 votes. That means you can give that one person the equivalent of 4 votes at 75%. The aim is to make it less profitable to start going much above that. Giving 7 or 8 votes is equivalent to 50% power.

I have that dilemma too when curating; but also don't forget that we are operating at x4 power to pre-HF19 and have adjusted to that. As far as the whole Steem ecosystem is concerned, if we can do something that reverses the drain on the reward pool, then all genuine votes will be worth more. I will have to check if the reward pool is now stable yet, but it has declined significantly recently.


Oh, ok.
I doubt Id ever run into someone where Id uovite mire than 7-8 posts, so your algorithms might work pretty well.

Do tell if the pool seems stable, it'd be interesting to kniw :)


Idk, i actively support certain users who are supporting me, usually not all of the same people. But i make a point to go through my followers and follows to see whats out there. Also i seek out new content from people i havent met yet. Sometimes, or eventually that could slip in to a circular voting pattern. But there are plenty who are happy to game the system for what they can. Better we can lower the profits on that type of activity benefits the whole community

Interesting but this does not stop users from either powering up another account or delegating.

Thanks for the breakdown of options. It's important to think of solutions that will encourage everyone to do what's in the best interest of the entire platform.


Thanks. I have also thought hard about rules that can be encoded easily, be elegant and have the desired effects across a range of tactics and techniques.


Yes, scalability and flexibility is very important when considering which mechanics will be the most effective in the long term.

sounds interesting... I am curious to hear what other more experienced members of this community have to say about the issue.


They are keeping . . . very quiet. . . shhhh


I would be interested to hear you consider this issue further. I was surprised, but there has been no quick solution and it seems like they feel "time will tell, and waiting is better than a knee jerk decision?


Userbase grows so quickly, we gotta work together to continually bring value to the community. Otherwise we all lose.

Quiet doesnt mean nobody noticed. Devs are devin.


Yes, that is also true - deep in secret conclave like the fed committee.
The irony is that the core code is not decentralised - users should remember that when waving the freedom flag.
Let's see what the "steem room" comes up with - if anything.

BTW thanks for the resteem - annoying that resteems do not always appear on the dashboard.


I'm one of your biggest fans. You got brains growing out your shoes!

The developers of this site are under no obligation to communicate their process to us. However, when you are running any business Public Relations is HUGE(if not 80% of everything).

If not the developers themselves, anyone who wants to be a witness really ought to care about communicating with the public. A "million" empty voting tickets are created every day with 30 slots each. and if I'm not mistaken, witnesses do hold some sway with developers


Thanks, that's very kind.

I'm one step away from setting up the witness-enabled username - just thinking whether to just use my current username or a new one, for security reasons so has different keys.


Also, i would appreciate if you could find me on steemchat. It would be great to have a more candid discussion and chat about other stuff. :)

Thanks very much for the early votes, but a few comments to break the eerie silence are also welcomed!

I've spent ages trying to get the last two columns of the table to be visible! The width of the Preview screen seems much wider than the final layout.


Awww.... are you feeling all alone, with only the ghostly thumbs-up on your posts XD


I was playing with my table. Deeply annoying! If anybody can't read the last columns let me know.

Nice to see more discussion about this topic and proposals for new rules that become this "game" called Steem fairer.

You pointed some maths about the rewards using pure self-voting, maybe you are interested in this post that I write some months ago:


Yes, accounting for differences in the blockchain values, we get similar self-voting percentages. At the time - 11 months ago - the simple APR was 72%!! I didn't calculate the 50-50 split as the point of the argument would have been the same. APR as of today is about 23%.

I think at the moment steem inc are waiting to see if adjusting the SBD print rate will have the desired effect. I suspect expectations will change without changing behaviour - such % rates are still way above bonds... although returns on NASDAQ would have been as good :-)