I understand the desire to lower the barrier to participation so that people can jump right in, but there are some limits that serve a very pragmatic purpose.
**Drive by voters water down the voting system.**
Problem: Any activity that can be taken by any visitor to the site without leaving any community visible activity is a recipe for abuse of that activity. Most notably right now the vote tool can be used by first time visitors. Since this tool doesn't leave any crumbs that might tip off other site users that there was a bad actor, the resulting actions (in this case the star system) is rendered nearly useless.
Solution: Require receiving at least 1 star to earn the privilege of giving stars. This will leave a trail of posts that the community can use to weed out bad actors. The resulting overall star scores across the site will be lower, but the actual number will be much more meaningful becasue it won't be diluted with votes from people who don't contribute.
I offer two possible solutions to the parasite problem.
A) The votes of parasite users maybe should only count (be credited) when the known users have upvoted the topic already. I.e., the parasites can reinforce the "thanks for the help", but cannot singlehandedly push something into a "good answer" status. This allows the known community to establish credibility, but also allows the good passives to be differentiated from vote mongers.
B) What if people can only vote using stars that they've earned? I.e., whatever a person's total lifetime star count is, that is their weekly limit for voting on other stuff. You have to ask at least one good question or provide one good answer before you can start voting on other stuff. And you won't be able to do much damage until you've shown a track record of such voting.
This is a hard problem, but I think we have a better answer.
> Allowing votes before any other activity makes votes meaningless
I think that is putting the case much too strongly — the fact that it is *possible* to game a rating system doesn't immediately mean the whole rating system is meaningless.
Nonetheless it's a serious issue, and you've provided proof that it's currently pretty easy to 'cheat'. Cheating is going to be one of the two main problems we will face from the bad guys, the other being spam.
> Drive by voters water down the voting system.
Only if all/most drive by voting is abuse, or if we can't clean up the bad votes effectively.
I'm not sure if you mean to imply that legitimate 'drive by' votes aren't generally useful. There isn't strong evidence either way as yet, but anecdotally, I know I've often clicked the 'vote up' button on an SE site that I'm not registered to. Those 'drive by' (failed) votes would be helpful for sorting those posts if they were allowed.
In other words, it would be nice to keep them if we can. It's also an 'on ramp' to greater involvement with the site — someone who joins up just to vote and doesn't hit a load of friction, might save their login key and come back to contribute in some other way.
So what it really hinges on is whether we can effectively invalidate bad votes. And whether we can do that together as a community in a way that scales. I think that may be possible without going in the direction you are suggesting[^1].
It may be reasonably easy to spot bad votes. For example, your sock votes stand out like a sore thumb with this naive query:
with v as (select answer_id,question_id
, sum(answer_vote_votes) answer_votes
, coalesce(sum(case when communicant_votes>0 then answer_vote_votes end),0) established_votes
, count(*) answer_vote_count
natural join (select answer_id,question_id from answer) a
natural join (select question_id,community_id from question) q
natural join (select account_id,community_id,communicant_votes from communicant) c
group by answer_id, question_id )
, (established_votes+1)::float/(answer_votes+1)::float trust_score
order by trust_score limit 10;
|50 |0 |50 |0.0196078431372549
|8 |1 |8 |0.222222222222222
|1 |0 |1 |0.5
|1 |0 |1 |0.5
|1 |0 |1 |0.5
|1 |0 |1 |0.5
|7 |4 |6 |0.625
|2 |1 |2 |0.666666666666667
|5 |3 |5 |0.666666666666667
|2 |1 |2 |0.666666666666667
This is making use of the same information you are suggesting (whether a vote is from someone 'established'), but in a different way. Rather that invalidating votes for non-established accounts, we are using them to sift out bad results.
I think it would be good to add something like the 'trust' score above, in the hover text for posts with stars. Then we can spot suspicious voting by working together with information that is available to everyone, and flagging things that are suspicious. Initially clean up of bad votes will be done by devs (I know some still is on SE), but eventually we'll make some of that available to trusted members of the communities.
I'm tagging this `wont-fix` for now, but we can revisit later if necessary.
[^1]: …but I'll happily admit I may be wrong and only time will tell. It's also worth noting that it was the original intention to dissalow voting by users without 'stars' of their own — there was a user id limit of 100 hard coded into the early source that was supposed to do that. Sadly all it did was prevent people signing up, due to a bug!
I personally do not see anything wrong with "drive by voters". For a long time, I was a "parasite user" on TeX.SE, and was using answers provided there to solve some of my problems, but didn't have a user account. At a given point I decided to join, asked a question, got reputation and so on. However, in retrospect I think I *should* have joined earlier and just upvoted the posts I was using. We all know that this is impossible on the SE sites since there is a reputation threshold. However, I feel that it would have been perfectly OK if I, as a drive-by voter, would have upvoted those posts which worked for me. Therefore I think we should allow folks to become "passive users", i.e. join and do nothing but award stars whenever they think something was useful for them. Recall also that in the system here they can only award one star, while high reputation users can award many.
The proposed solution would create a bootstrap problem.
If "Require receiving at least 1 star to earn the privilege of giving stars" were in place on day one, then nobody would have started with privileges to give out the first star. Other question and answer sites have solved this "cast the first stone" bootstrap problem in various ways:
- Stack Exchange allows the asker to accept an answer, and an accepted answer grants enough reputation for the upvote privilege.
- Stack Exchange also runs "private beta" rules for the first week of a new site, when voting and tag creation are free. (Private beta participants come from other SE sites, and I have a bit of an accessibility beef with how private beta access for Stack Overflow itself was handed out.)
- Codidact, as I understand it, will allow the asker to upvote answers to the asker's own questions. (I see this as analogous to accepting on SE.) There is also a [plan to add "young community" rules](https://forum.codidact.org/t/bootstrapping-trust-levels-for-young-communities/534?u=pinobatch) analogous to SE's private beta.
This is the wrong solution to a problem that hasn't arisen (naturally) yet.
New users (or readers that never write a starred answer) shouldn't be prevented from adding one star to posts they find useful. The system already rewards longer-term contributors with the ability to award multiple stars at their discretion. The benefit of allowing wide feedback outweighs any downside.
Problematic abuse of the star system should be detected and handled in other ways, should the need ever arise. Also, remember that privileges are merit-based, not tied to star count.
I think we should resist knee-jerk implementation based on Stack Exchange experiences. The system there does not avoid difficulties either - one only has to look at the effect of Hot Network Questions.
*If you aren't convinced...*
Before you try to argue that drive-by voters somehow add value to the system even if the noise level might be higher, first explain to me why the opinion of clowns[^1] who [voted to get rid of the vote table entirely](https://topanswers.xyz/databases?q=200#a183) should be given equal weight with all the database experts who have **offered evidence that their voices add signal not noise by answering real questions**.
P.S. If you have to run your own SQL query on the topanswers database to answer the question of who those clowns are, then please allow me to suggest that anything you do with that information will be a bandaid on a bigger problem that won't get fixed until the wider user community can vet who is allowed to vote by requiring at least a nominal number of contributions first.
[^1]: I've done the math and *nobody* is being called a clown who has not read and approved of this message.