RE: Steem Improvement: A GENEROSITY Rank Algorithm - A Method of Increasing Post Quality That Promotes A Reduction of Rewards Pool Exploitation.
(I'm italian, probably I cannot write worst english than what follows, but I hope tecnically it's understandable)
I think that "concentration around the same account", especially by bad sheep, bad followers (and eccess of self-upvoting and bot voting) is the key of the problem. Now, to keep all the graph to punish bad behaviors it's impracticable. I think that your solution is smart, but the simplest and robust way to avoid concentration it's to focus to the opposite, not to the generous (or less generous) account, not to the receivent account, but only on single votes, depowering every time "non natural, concentrated votes" are detected (focus on votes). But how? Simple, when someone vote again and again and again, every time the same user, the sistem must auto depower the vote. Algorithm: first vote from User A to User B, 100%, second 90%, another vote 81%, then 73% (more or less, but everytime less)...
In this way the "natural votes" are always 100% (naturals votes are not concentrated but randomly distribuited, so always 100%), "friends sheep, bad votes, puppets, bots" are in some way or another way concentrated, detected, and go fast to zero (so artificially pushed accounts cannot go newer "to the moon" with a simple base of the same users voting the same account).
Now, to keep track of this you need for every user a list of votes (counters), updated every vote.
This is the list of counters of votes [userxy, cnt_votes] for a normal user, say user900, voting not concentrated for other users:
[user40, 1]
[user100, 2]
[user65, 4]
[user180, 2].
[user900, 50] <- self votes
All seems fine.
This is the same user, this time voting concentrated for user100 and user65 (and also a lot for himself)
[user40, 1]
[user100, 250]
[user65, 407]
[user180, 2].
[user900, 307]
Now, a vote from the second user to user100 or user65 must be depowered (to almost zero). Instead votes to user40 or user180 can have max power (this is very important, not punishing the user when his votes are still randomly distribuited, and probably good and important votes!). We can detect also that in the second case the user votes to much for himself, so we can depower also this (but less, because a self concentration of votes it's normal).
Thanks for sharing your thoughts. The Steemit system is based on principles of anarchy and it is generally valued to not control user's behaviours or thought patterns. This is part of why I suggested simply adding a metric and symbol into the system to show the values involved, rather than actually adding any rules or changes to the way people can vote. I don't know if an idea such as yours would benefit the community or not, but I do know that many people would complain about it.
The issues already raised in this thread regarding penalisation of small communities who vote together on their own interests, would be particularly problematic in your model. My intention was not so much to reward random voting, but to simply allow users a way of identifying quickly some useful information about profiles they examine. I don't want to penalise people who only vote for a small range of profiles, my intention is more to simply promote the thought of the benefits of being more social and engaging with more members of the community.
Thanks, now I understand better "the big picture".
PS: I'm also investigating the matter, reading better all the comments and the steem white paper.