Interesting difference from Reddit: Upvotes/Downvotes are not anonymous
Hey folks! Just realized something that makes Lemmy different from Reddit. Because of the federation, your votes are not technically anonymous on Lemmy. At least, I think.
Although there’s no UI to look at a user’s voting history yet, one could conceivably be built by an instance. Perhaps coincidentally, I hear there’s instances out there populated by mostly bots?
From a technical standpoint, it's not different from Reddit. The only difference here is that normal people can host their own instances, whereas Reddit is only hosted by the company and they can keep it under wraps.
But the implications are still interesting. One might (big might) trust Reddit as an organization not to use this data for evil, but with federation, there’s nothing stopping an instance from simply releasing all users’ voting history to be public.
Of course, my instance didn’t even ask for an email to sign up, so my entire account is anonymous that way.
I wonder if there are technical ways to federate votes anonymously?
Maybe you could hash the user and post together somehow this way it is hashed but also unique per post. If you only hashed the username then the entirety of the user's voting history would be known if the hash was reverted.
But the implications are still interesting. One might (big might) trust Reddit as an organization not to use this data for evil, but with federation, there’s nothing stopping an instance from simply releasing all users’ voting history to be public.
Another potential privacy issue is that deleted content stays on server and I believe it's similar with posted images.
Other cool features come to mind, like having a separate vote count for voters from the local instance.
That'd be cool. Like a big colorful number representing the total votes and then a smaller number right below that in parenthesis and a gray color to indicate local instance votes.
Yes, I thought that was implied. Voting is part of moderation. All moderation must be radically transparent. Your voting history is the weight of your credibility and reputation on Lemmy.
My plan was just to assume a new identity every 6 months or so and never post identifiable information. I see how that would be a problem if someone where to use their real identity. In that case, they probably wouldn't vote at all, that's not great. Maybe have a separate anonymous account ? And only use your real account for making "statements" including your votes.
And they will also be needed to distinguish votes by spammers and bots
All lemmy users will have to host a cache of the entire fediverse and run their own content sorting algorithm. Moderation and voting will be subscription based
I haven't looked for APIs to extract this data, it might only be available to an instance admin... but yeah Lemmy does not seem to aggregate vote histories, but rather stores them on a per-user basis.
Good on you for actually checking and not blindly assuming like me! Hahaha glad to see my assumptions bore out this time.
But yeah, even if lemmy doesn’t aggregate it, it would be possible to set up a bot pretending to be an instance which collects and aggregates vote histories.
You can't aggregate them internally, anyway. You need to be able to know if someone already voted on something.
I think activitypub needs to be extended so that the likes and reduces only need to be sent to the host of the content, with federation then being told just the aggregate number. Then the only servers that need to know identity of votes are the host server (necessary to ensure nobody can multi vote) and optionally the server the user voted on (could just relay the information to the host server and not store it locally, but then it'd be harder to tell what you've already upvoted -- could use local storage but I think lots of people use social media on multiple devices).
You can't aggregate them internally, anyway. You need to be able to know if someone already voted on something.
I don't quite follow this. It might be a slow query with a full scan, but you could select on user-id, join post-ids with community-ids, and aggregate how a user votes in various communities, or do an export that joins votes and posts to analyze for word-clusters they up/down or whatever.
I think activitypub needs to be extended so that the likes and reduces only need to be sent to the host of the content, with federation then being told just the aggregate number.
I was a bit surprised to see that it doesn't already aggregate at the browsing server. You could just queue up votes for a minute or 5 and say "post-123 got 12 upvotes and 2 downvotes in the last 5m".
Thanks to Marius, looks like when you interact with a server you get assigned a local id that's tied to your username/email combo. So no global ID but all your actions on a server are tied to you. It wouldn't take a lot to link that to your account on your home server.
Overall idk if it's a big deal. Upvotes and such need to have a user ID tied to them in order to keep things straight. Unless someone wants to update the Lemmy software to start encrypting the GUID on the table an instance owner will always be able to see what you've voted on ON THEIR instance. Reddit totally can as well, but they had a reason not to put their users on blast (At least until lately lol).
It'd take some collusion to put that all together across the fediverse.
The table that store upvote is named comment_like and post_like. Here, you have the vote’s unique id, the local user id that is linked to the it’s "global id", the local post id which is also linked to it’s "global id", the value of the vote (+/-1) and the date.
So votes are indeed totally not anonymous.
(and I run my server sinces less than a week, and the sum of entry in the two table is of 114 950 votes. Certainly enought for doing a bunch of analysis.)
Example of datas for the comment vote table (ids has been changed)
On the other hand, I don't really trust Reddit with my upvotes/downvotes all that much more than random users, so I already refrain from voting on content I wouldn't want to be associated with....
Of course, Reddit can still see what posts I view, while that isn't the case for Lemmy (at least since I self-host an instance).
Can't the other instances see what you saw via federation? Or does a self hosted lemmy instance federate all comments from all threads once it knows about a server?
Im sorry for the stupid question but can someone explain the difference between lemmy and Kbin?
I just recently created a kbin account and downloaded the kbin app but see a lot about lemmy on here. Is kbin a subset of lemmy? If I want a wider variety of content would I go to lemmy or kbin?
Lemmy and Kbin are two different systems that talk to each other. Like how Gmail and Outlook are two different systems, but you can still send emails between them.
So you can make posts over there on Kbin and I can upvote them from over here on Lemmy.
Just from what I understand myself, it's that they are two different software setups. But they both use the ActivityPub standard that all federated content is using. KBin is different though in that it's trying to be more like Twitter with Sub Reddits, than like Reddit with Tweeting. And Lemmy is just purely trying to recreate the Reddit experience. So like on Twitter, Mastadon, and KBin upvote is more of a like and people can see what accounts "like." KBin and Mastadon share the same 'microblogging' feature which is like twitter. From what I understand they share microblogs across the fediverse.
And Lemmy and Kbin share communities/magazines together thanks to federation. So you're on a magazine in KBin but I'm on Lemmy on Lemmy World looking at this community from Lemmy.ml interacting with you.
Overall I think if you like Twitter and Reddit and are fine with your entire history of actions being public KBin is perfect. If you just want a Twitter experience, Mastadon. If you want some more obscurity with your account like Reddit and only the Reddit experience, Lemmy.
Right now I think KBin's feature parity isn't too far off from Mastadon and Lemmy. But like the rule of any thing that combines two tools, it can't be better than both separately. I think as Lemmy and Mastadon matures into their niches KBin will almost exclusively be playing catch up with both in the long term.
Most Lemmy instances and kbin are connected/federated to each other meaning that the content is available to both. For example, the thread you currently are replying to is on the Lemmy.ml instance. So in general you don't need to worry if the content is on a Lemmy instance or on kbin. You will see it anyway. So you can just pick the instance you like the UI best and use that.
There is a small caveat, in that a magazine/community will only start federating/being visible on a remote instance after someone visits that community for the first time. E.g if someone creates a new community on kbin, then it is only visible on kbin until someone goes to [email protected] on their instance. And also other way around. If someone makes a new community on Lemmy.world you won't see it on kbin until you it someone else goes to [email protected] on kbin.
@Mirror_I_rorrIMG kbin and lemmy are two different clients (imagine Outlook or Apple Mail) for the same service (the threadiverse, or email in the prior example). Pick one, they federate with each other (cross-pollinate).
It's also technically not on Reddit either. Letting people see what you up/downvoted is a setting that you can toggle as desired, although I believe that it defaults to "off".
That's only on KBin though and it's a feature design of the KBin software. That's because it's based on Twitter where likes are public. Lemmy doesn't publicly show those actions. Idk how far it goes in terms Kbin tracking guests though.
It's not specific to kbin actually, it's just how the activitypub protocol reports likes/upvotes. I can see votes on lemmy threads made by lemmy users for example because that data needs to be reported as part of the protocol.
I love it. I've already used that feature to block someone who was stalking my posts and downvoting them. Then I got curious and checked out a bunch of posts on the front page that had downvotes but didnt really warrant them. I found there were about 5 accounts who were heavy downvoters for apparently no reason. They also got blocked.
I agree, I think it's useful! I also blocked a person yesterday who was downvote stalking me, they clearly didn't want to see the things I was posting anyway.
Kbin is influenced by wykop.pl that have a list of wbo downvotes or upvotes. Helps finding bots or mobs. Wykop was originally a Digg clone. It was huge in Poland for some time until it went full right wing populist and community got split into those who stayed and those who migrated to reddit.
Digg got a polish clone. Digg dies. Polish clone is huge. Some people move to Reddit. Polish clone eventually becomes a trash can. Wykop migrants are fed up by reddit, they move to kbin that is a Polish reddit clone but better.
It's an unavoidable feature of federation that up-/downvotes are public. Kbin chooses to make that fact visible, but if it didn't, it would be easy to make a tool to get that information from any fediverse instance. Kbin making that fact visible at least alerts you that your votes are public.
Because in order to federate, user data needs to be shared, including the username. It prevents double votes from the same account and also allows votes to be rescinded at the user's discretion, at which point the instance will send effectively an undo signal for the activity.
The first rule of the Fediverse is to make sure you're perfectly okay with the entire internet seeing your account activity, including votes and favourites. If you're unsure or are worried you might regret it, best not to post it at all. This is equally true on all social media but the way the Fediverse works just makes it more obvious.
Wasn't part of the reason for anonymous voting and even "blurred" voting so accounts that were shadowbanned wouldn't know it and go create a new bot account to spam more?
I didn’t know, that’s awesome! Downvote shouldn’t be the “fuck you I disagree” button, save that garbage for Twitter and Reddit. Downvote is there for democratically killing malevolent bullshit. Expose the names!
Default Rankings are based on minimum bad-content/maximum agreed count
And controversial ranking is based on minimum bad-content/maximum good-content count (agree+disagree)
This way even comments that people disagree with can be exposed so long as it's still good content
Brigadiers who blindly vote everything bad content to maliciously influence rankings can be identified and removed for manipulation, while people who vehemently disgree with an idea can still have that outlet without influencing the community/magazine haphazardly
Yeah I never understood to pearl clutching about downvotes. It just reeks of "everyone who drives faster than me is a lunatic, everyone who drives slower than me is a granny" mentality.
Sometimes reporting technically covers the last one. But usually not. Not all subs have rules against bigotry, trolling, dog whistles, general assholery, etc. I strongly hold it's important that downvoting is an option to deal with these kinda things. It's a way to show everyone that the comment isn't acceptable.
Plus even when reporting is an option, it may not be fast enough. Can't really automate removals, either, as people will abuse that.
Arguably "disagree but acceptable" should just not upvote. In a certain sense, that's already a middle option.
In term of privacy this is pretty bad though. From the upvotes/downvotes activity you can very easily build a whole graph of stuff you like/dislike. For advertisers that's juicy data.
Or upvote/downvote randomly, or, on a lot of stuff so the interest pool is huge. I'm upvote stuff I see just to participate and give the poster a "someone seen this post" feel good high.