views:

393

answers:

5

This question isn't about preventing a single user from registering multiple accounts. It is assuming that registering multiple accounts cannot be prevented, but what we want to avoid/detect is when the user is using the accounts to vote for himself. This would apply to sites like SO or digg, where a user creates a 2nd account solely for the purpose of of voting up their 1st account.

Any ideas how gaming the system in that way can be prevented/detected? Any insights how SO does it? :)

+2  A: 

Discourage user A from up-voting user B when user B last connected from the same terminal point as user A. You can attempt to track terminal identity through IP address, cookies, or a combination of the two - all too easily defeatable by the determinate user (use of anonymizer proxies or of multiple wifi connections, cookie clearing or use of multiple browsers, etc.) And, of course, the inevitable dislike of individuals accessing your site from behind (e.g. corporate) proxies.

Another complementary line of defense would be, if your voting model allows it, to lower the value of votes given by potential collusion e.g. if user A voted for user B and user B voted for user A then you can arbitrarily decide to split the vote between the two (0.5 points each); you can nuance this based on existing reputation (gradually stop penalizing users with high reputations), or not nuance this (assume that users with high reputation, even if rightfully voting for each other - or for themselves if dishonest - won't mind working harder for additional reputation), etc. etc.

vladr
This kind of sucks for users connecting through corporate proxies though :-/
Daniel LeCheminant
Some ISPs use transparent proxy servers so every single user using that ISP will appear to have the same IP address. I think IP screening can be used as one of your criteria for A and B being the same person, but it's not safe for it to be the only one.
Dave Webb
+6  A: 

The creators of the site wrote about Vote Fraud and You.

Ben Alpert
thankyou x 2 - i wasn't even aware SO had a blog
mt3
+1  A: 

Seems like one obvious sign would be when one user account casts nearly all its upvotes for one other user account.

If I were writing an algorithm to look for vote fraud, I'd probably start like this: for each user account A, create a histogram showing, for each number N=1,2,3,... of votes, how many other accounts have received N votes from A? Offhand I'd guess it would be something like a decreasing exponential distribution, e.g. A has upvoted 100 accounts once, 50 accounts twice, 25 accounts 3 times, and so on... the point being, it drops down to zero after just a few counts (in this case after N~8). If account A is upvoting one particular account much too often, you'll see a count at some absurdly large N like 80 or 100, and you can have the system flag that for you to look at more closely.

David Zaslavsky
A: 

An easier way to get yourself voted up is to post intelligent responses. One could also resort to some form of clickjack to encourage others to vote you up without them taking an explicit action to do so.

jm04469
A: 

It is not lockable but we can show some stats to the public and can avoid users to do this. Here is my answer.

  1. If there are two persons on StackOverflow, 'A' and 'B'.

  2. If 'B' up-vote 'A' more than 25 times, then this should be displayed on A's profile.

  3. Now if 'B' have more than 500 reputation, it means its OK that 'B' is also participating in SO.

  4. If 'B' have less than 500 reputation and up-vote 'A' 25 times, it may be that 'B' is a fake profile.

  5. In case, if 'B' is deleted after up-votes, then this should be displayed on profiles after some particular such cases.

OR

their should be some stats on each user profile like this:

10 up-votes from profiles with above 10,000 rep
27 up-votes from profiles with above 5,000 rep
50 up-votes from profiles with above 3,000 rep
45 up-votes from profiles below 1,000 rep
10 up-votes from deleted profiles.
20 up-votes from inactive profiles.

OR

20 rep on one up-vote from a person with above 10,000 rep
15 rep on one up-vote from a person with above 5,000 rep
10 rep on one up-vote from a person with above 1,000 rep
05 rep on one up-vote from a person with above 500 rep
02 rep on one up-vote from a person with below 500 rep

OR some thing like above can help.

http://meta.stackoverflow.com/questions/35989/how-to-detect-if-users-have-created-more-than-one-profile-to-support-himself-hers/35994#35994

NAVEED