Upvotes seem to just federate as likes and dislikes.
This isn’t just a Frendica thing; you can see this from Mastodon, mbin/kbin, etc. Many people seem to think upvotes and downvotes are private, but the reality is that they’re publicly available information by default in ActivityPub. Lemmy just hides the information on the front-end for “normal” users; If you’re a moderator you can clearly see everything.
If one wants truly pseudonymous voting, they’re free to try out PieFed. See the announcement post for this feature for more details.
The whole concept of the Fediverse as social media is that all the data is public. Stop acting like these servers are giving out private data. This data has never been private, and it never will be. Data like this being shared with any other server is how ActivityPub and the Fediverse work.
I know, but some people assume votes are private.
It’s not good practice. Really one shouldn’t be assuming anything is private or some entitlement to privacy on a service where all content you post is made publicly available to any and all linked instances. They miss the point of a federated public forum. If one wants privacy, data must be kept locally only. That’s why Lemmy has local-only communities, the “private” community aspect that many people want just won’t be federated, because you can’t make something like this private otherwise.
I know, but most people don’t.
I know, it’s a really big problem here and on the Fediverse in general because people get so outraged and entitled over something that just is the way things are, this wouldn’t work any other way.
If you’d only ever interacted with Lemmy and not read up on how ActivityPub works then that’s a reasonable assumption, it’s not like anything (that I’ve noticed!) actually tells you that your votes are public, and they don’t look to be public in the places you’re likely to see!
Lemmy likes aren’t meant to be public, this is just other software failing to respect the privacy Lemmy indicates.
Oh. If the only thing stopping the votes being public is a label saying pretty please don’t make this public then it does seem very open to abuse.
Especially in federated networks where the data isn’t under access control, doubly so if the privacy extension is optional
That’s almost as bad as using robots.txt to claim sites are private and secure and just whining that people/bots should respect it.
You should assume voter data is fully public and fully open. It otherwise is in the federated ecosystem.
The comparison doesn’t work because both Lemmy and Mbin are implementing the same standard, while robots.txt is mostly an honour system.
You should assume voter data is fully public and fully open. It otherwise is in the federated ecosystem.
Information not being private isn’t the same thing as information being public.
Except ActivityPub data is by in large already not private, it is handed out to any tom dick and harry who run a server and have subscribed to actors on this one, and most of the time, it doesn’t even really require extra authorization. That is fundamentally how ActivityPub and federation work, but you can’t have any expectation of privacy in this system when it comes to the content shared. Expecting it to be private because it’s labeled is as dumb as expecting your website not to get scraped because you said so in robots.txt.
I didn’t say it was private, I said it wasn’t public, there’s a difference. If you asked me what number I was thinking of I’d tell you, but that’s not the same thing as the number I’m thinking of being public information. ActivityPub is, at its core, about consent. We have consented to having our data be sent to any person able to serve 200 responses on an inbox endpoint by using instances with open federation. We could, if that makes us uncomfortable, moved to a closed federation system where we only accept request from an allowlisted set of instances, with software that follows the spec’s public addressing system.
Information not being private isn’t the same thing as information being public.
I’m not sure that is a realistic expectation these days.
I don’t think everybody knows that and at least here on Lemmy, it doesn’t show it by default like friendica. The fediverse doesn’t necessarily mean that all data has to be public. It’s just that it’s way harder to have a sense of truth without public data.
I mod a small community with like 6 monthly users, I’m the only one who post or comment and the average post have 3/4 upvotes and 1 downvote. And I always ask myself who is downvoting my submissions, because it’s make no sense to me that someone take the job of pressing the downvote button on a link to a EDM set. Couldn’t they just block the community?
Use https://tesseract.dubvee.org/home/all/scaled to show downvotes
Assess whether banning makes sense for someone who only downvotes content
I’ve gone to my community and to specific posts, but can’t work out how to show downvotes. Can you shed a little light on how to see them please?
How exactly can I see who downvoted? Can’t seem to find it in the regular view, and the debug info only shows the vote count, not the voter.
I’d also like to know as I’m in the same boat you are. I’m just leaving this comment to remember to look later and see if you got an answer.
It’s not about blocking, it’s about sending a message.
No, sometimes it is about blocking.
If you run a small community like several of us do, even a small amount of downvotes can completely shut down a discussion from ever being seen by anyone else. It’s a way petty assholes have of trying to kill conversation in small communities because they don’t like something about what you said or how you said it.
If someone neither wants to contribute nor lurk, and merely drag down a community, they shouldn’t be allowed to continue to be a part of it at all.
I understand that if you are exploring on all and so, sometimes some communities you couldn’t care less appear on the feed, it’s happens all the time to me with sports news and related, but I just block them and move on.
Yeah, that’s what I do as well. Seems much nicer than hurting their community by just randomly downvoting everything I don’t want to see.
Some people just downvote for the sake of it.
Petty mods or users would abuse this
It’s already possible to see if you really want to look. Friendica is just another way.
Mods can already see voting data, at least through the API on the latest version of Lemmy.
How can I see this in the community I mod?
Yes, after all other servers need this information in order to prevent double voting, you can’t just have servers sending each other information “somebody upvoted this” and also tell when servers are allowing users to vote more than once.
So upvotes and downvotes aren’t actually private, never have been, some servers may display them publicly even if most don’t.
The server hosting the post needs it.
It only needs to tell other servers the vote count, and the votes of people on that other server.
That may not be how it actually works, but that’s all that’s neededYes, but then you can have malicious servers sending fake numbers without other server operators being able to check whether this is at all plausible.
(It’s still possible for malicious servers to send fake votes, but server operators can see which users they are stated to originate from, then block that server if that looks like it’s doing that. At least that is my understanding.)
What do you mean “send fake votes”?
Or rather, who do you think should be responsible for identifying and blocking fraudulent votes?And how do you reconcile votes that come from servers that you’ve defederated with? Should everyone have the same view of the post, or should people only see votes from servers that their server is federated with? What about votes from users you’ve personally blocked? Etc
I personally kinda think that the responsibility is on the server hosting the post, and that everyone should see the same (but anonymous) vote count, of which the hosting server is the single source of truth.
A malicious hosting server could use fake points to blast any message to the top of everyone’s feeds until manually banned or defederated
I’m not sure how giving every server access to the votes solves that.
The malicious server can make fake users to pump up votes. your server admin has to notice, then check the vote logs, then see what’s happening and defederate them. That’s pretty much what you described in your scenario, anyways.It’s way easier to notice and defed when you can see these fake usernames
But it also has to be defended separately by the admin of every server that has a user subbed to that community. Seems like a large burden to put on small-mid instance admins.
I’d be surprised if my server admin was really paying attention that closely to votes on communities I’m subbed to, right?
I have to admit I don’t know the view that admins get of how their server intersects the fediverse.
Yes, that’s happened before. They were sending a very large number of votes, so it was immediately obvious. Even a couple dozen from an unknown instance will be noticed, when an admin sees it and says “huh I haven’t heard of that instance” and when they look there’s nothing there.
It’s only fake numbers for posts on the instance.
Not the first malicious instance, wont be the last.
There are plenty of ways to handle double voting without plaintext user strings. The fact that it’s done this way is just lazy and poor design and doesn’t actually do anything to prevent a rogue instance from vote spamming with fake users.
Hashing exists for this use case
Hashing alone if it’s just usernames isn’t enough. Need something like keyed hashes, but then malicious servers can lie about numbers of votes.
Otherwise you need something ridiculously overengineered like public but encrypted logs of user actions and Zero-knowledge proofs of correctness mapping everything to a distinct existing user without revealing who it is.
As I mentioned in another post: for consistency is better to have each server count total votes from their own users, send a signed & timestamped message with the count to the host of the post being voted on. Then the host can display a consistent vote count to everybody that shows where votes are coming from without manipulation of external votes.
Each individual server can lie about its count, but not by too much or else it will be detected and the server can get defederated (or have its votes ignored).
but then malicious servers can lie about numbers of votes.
They already can do that by pretending to have users they don’t have. It’s definitely a quick way to get defederated.
And it wouldn’t be caught quickly or maybe even ever if they opted to use hashes instead of just showing who voted and when.
Over thinking.
Only the instance with the post needs the username to register the vote, the count can then be updated by the instance. Simple and lightweight
They should be.
I get this is obviously intended behaviour on part of actpub but I’d love for there to be a pseudo-anonymous voting system too. Maybe an option to hash user credentials when added to likes to ensure that they’re unique whilst obfuscating the original user.
There is already a foolproof method that is immune to any abuse of trust by admins; create an alt account.
True, but there are other benefits too. Bots can’t crawl through your likes for example. Maybe you want a feature on lemmy or mastodon or whatever with anonymous polling? (ik masto has polls but for sake of argument) Maybe you’re implementing anonymous polling into an app for a trade union that needs total anonymity even from admins? It’s not totally unusual!
IMO it makes sense to do this at a platform level just because there’s a unified implementation of obfuscation across all the fediverse for any platforms that want to use, rather than a bunch of unique solutions that would be duplicated effort.
Hash them with the post ID appended, so a user can’t be identified across posts
I mean, seems pretty pseudoanonymous to me, unless Musk had another kid he named apj2k36 or something.
People have really weird usernames sometimes
There are some instances that disable downvotes altogether!
Oof, hell no. That’s some Facebook level cancer right there when they removed downvotes.
It’s just a form of white washing that makes the same people who made up being offended by “black lists” and “master branch”.
Some people seem to really hate down votes. I don’t give a shit either way.
There’s no way that isn’t going to be abused. Some marketing or tracking agency will setup a fediverse server and just collect all data like this for free. Or worse, take advantage of a friendica instance to bombard it with requests for data collection purposes.
Well yes, the whole concept of the fediverse is that of social media as a public service. All activitypub data is public.
So you’re agreeing with me that it will be abused.
Not them but yes but it’s not a feature of the system, it’s a failure of the humans.
i think we should be accounting for it if we don’t wanna get swallowed by shitty interests tbh
Like, of course; tho any sort of “accounting” should IMO start from the base that the intent of this entire thing is to publicly share public information.
has anyone come up with possible solutions yet?
What is it that you mean by that? Do you mind rephrasing your reply?
Tools do not have morality or ethics, only people do. Some people use tools in a morally and/or ethically questionable manner, either for profit or because it amuses them.
True, we perpetuate the unjust systems around us. Systems can be constructed to unfairly benefit some over others as well, like how capitalism unfairly benefits the wealthy.
It’s the age old argument of “It’s not Communism that’s bad, it’s the human element.”
Speaking as if any system created by humans will ever be free of the human element, which is of course faulty logic.
Edit:
The downvote button is not an ‘I don’t like this’ button, trogs. Read the rules.
, which is of course faulty logic
…which is why design systems so that when using them we can account for the human element, right? Come on! We have centuries-spanning systems even industries built on that! Engineering, avionics, Yelp reviews…
I think you’re forgetting the context of the discussion…
Not them but yes but it’s not a feature of the system, it’s a failure of the humans.
A system designed to be used by humans has an attribute bound to be exploited by humans and it’s the failure of humans for exploiting it.
I mean, when the human element is literally not doing communism, yes, that would be a problem.
That’s the problem: for communism to work, it requires perfect beings that act according to how the system is designed. Humans do not do that.
But it has absolutely nothing to do with how it is displayed in Friendica.
Yes, but as long as you don’t reveal your identity, they can’t do much to track you.
They don’t have access to your IP.
Of course, it you’re using the same username over multiple services, or reveal identifying information (which is much easier to analyse now due to AI) they will be able to track you.
My name is actually Ricky Rigatoni and I am King of the Brooklyn Mafia.
Is IP not logged anywhere in Lemmy/ ActivityPub?
Nope just server
If image embeds aren’t cached by your server they can be abused to gain IP, but that’s a hack, it’s not intended.
You can set a Lemmy server to proxy image requests
Exactly, that’s why I said for ones that aren’t cached. They can be cached, but it’s not a guarantee they will be.
Proxying is a separate option from caching. I think it was added in 0.19.5
I think server admins can access. It makes sense moderation wise, if for keeping a tab on alts for enforcing permabans.
This is nothing new. Fire up any ActivityPub server and you can see everything over the wire. As a Lemmy admin of my server of just me, I can also see it in the UI.
This feature has been available to all kbin/Mbin users since the beginning, btw.
I wanna say it was built into Lemmy originally as well but they removed it from the FE
It’s in lemmy but only available to instance admins
What can they use that data for?
It would only be usable data if they could show personalized ads to the users. They can’t.
All they know is that Meldrik up/downvoted this and that, but outside of Lemmy they have no idea who Meldrik is.
I think the issue is that many Lemmy users will think more carefully about what they comment than what they up/downvote, as a comment appears connected to your username but a vote doesn’t. You might decide against commenting on something you disagree with because you don’t want to get in a fight, instead just downvoting it, but if people then know if was you who downvoted can still pick the fight.
Basically the issue is you’re revealing a lot more information than you might initially have realised if you’d have known votes were public all along. Maybe a disgruntled person uses that to dox you, or maybe a corpo feeds all that information into their fancy computer system to work out who you might be, who knows.
If you think metadata is worthless, I would like to make you aware about Snowden and his revelations. Look them up.
Cant you just defed with them?
If you can identify all of their instances, yes.
Or you can be an instance admin. Iirc In the next lemmy version (1.0.0), mods will also be able to view votes in their communities.
mods will also be able to view votes in their communities.
You can already do this using tesseract, by the way (not tesseract.dubvee.org, strangely?)
On t.lemmy.dbzer0.com i can see both upvotes and downvotes (for all my modded comms):
I guess the feature was already merged in one of the past Lemmy versions then?
I think it’s been implemented this whole time, but it’s just that the default lemmy-ui doesn’t show it
You can already do it with a database query iirc.
I think lemmy instance admins can see this too. Doesn’t even have to be a friendica instance
Any instance admin can see the vote history.
deleted by creator
I’m not sure about the downvotes part (i failed to recreate this lmao) but you can already view upvotes with mbin. Piefed solves this problem with a option to make your votes private but only with untrusted instances (but from my tests it didn’t work? weird)
IIRC, piefed’s private votes are disabled for “trusted” instances. You can see which instances are trusted here.
Ah, well that sucks :( i thought it just used a different strategy to do so if it was trusted, not outright disable it.
Will correct it, thanks
IIRC PieFed’s method is to send the upvote using a second random username not connected to your username.
Damn, so this is how I find out we’re least trustworthy part of the commonwealth.
That is stupid and defeats the point and makes me rethink my decision to support piefed.
Bummer.
It depends what your threat model is. Admins being dickheads about who downvoted what was the main issue at the time so I made it about choosing which admins to trust.
If future Lemmy versions show votes to mods (not just admins) then Pandora’s box would be well and truly open so we’d need to rethink this.
Yeah I guess for me I don’t really trust any admins. At the end of the day that’s a permanent database of user activity which could be passed along to anyone, so ideally the minimum threat surface would be that it exists only on the home instance.
Also, I kind of just don’t get the point of obfuscating for some and not others unless there are some politics going on behind the scenes, which just gives me even more cause for concern. I think this is a killer feature for piefed and really addresses a major concern I have with Lemmy so it is just disheartening to hear that the functionality has been nerfed for seemingly no good reason.
I hear ya. There was quite a bit of back-and-forth about it and we ended up with a compromise. It would be good to have more configurability of this to suit different preferences.
There’s a niche out there for a max-privacy instance. No server logs, no email verification, automatic deletion of old content. And if it was running PieFed, no trusted instances set.
Not a niche I want to pursue but someone could.
Do you have a link to any discussions on this? I have browsed local posts on piefed.social but can’t find it. I’d be curious to see more context in support of the trusted instance concept.
Check this out for general background discussion https://piefed.social/post/205362. The idea to differentiate by trusted instances was mine and not discussed there. Pretty sure there was some discussion about it in the Matrix channel which is lost to time.
During the recent roadmap planning one of the potential units of work was to sort all this out https://piefed.social/post/411591 but it didn’t garner significant interest and didn’t make it through to the final version of the roadmap.
this is an icky issue because lemmy sends votes with empty addressing, so remote instances should count them but not show them to anyone. however mastodon (and *key) sends likes with empty addressing too, but considers them public. lemmy is (surprisingly) right here and should request that the rest of fedi respects the protocol and hides stuff based on its addressing. maybe open issues on mastodon and friendica
also this issue probably exists when seeing lemmy posts on any microblogging instance
Same was the case on /kbin, and while Mbin got rid of the downvotes, it still has public upvotes.
kbin also got rid of the ability to view downvotes. I believe either before the fork or at least before the implosion while mbin were still mostly just pulling from upstream.
That’s pretty cool. Sometimes in an argument there’s that (1/-1) thing going on, would be funny to see how both are downvoting each other.
I wish I could see what scummy lemm.ee mods removed my comments and got me banned
you can, names are shown in other frontends like phtn.app.
Thanks but doesn’t work if you’re site-banned.
You can usually use another instance that shows names if you have an account there, it’ll show at least the federated stuff.