this post was submitted on 19 Aug 2024
410 points (100.0% liked)

Fediverse

32502 readers
812 users here now

A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).

If you wanted to get help with moderating your own community then head over to [email protected]!

Rules

Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration)

founded 2 years ago
MODERATORS
 

We had a really interesting discussion yesterday about voting on Lemmy/PieFed/Mbin and whether they should be private or not, whether they are already public and to what degree, if another way was possible. There was a widely held belief that votes should be private yet it was repeatedly pointed out that a quick visit to an Mbin instance was enough to see all the upvotes and that Lemmy admins already have a quick and easy UI for upvotes and downvotes (with predictable results ). Some thought that using ActivityPub automatically means any privacy is impossible (spoiler: it doesn't).

As a response, I’m trying this out: PieFed accounts now have two profiles within them - one used for posting content and another (with no name, profile photo or bio, etc) for voting. PieFed federates content using the main profile most of the time but when sending votes to Mbin and Lemmy it uses the anonymous profile. The anonymous profile cannot be associated with its controlling account by anyone other than your PieFed instance admin(s). There is one and only one anonymous profile per account so it will still be possible to analyze voting patterns for abuse or manipulation.

ActivityPub geeks: the anonymous profile is a separate Actor with a different url. The Activity for the vote has its “actor” field set to the anonymous Actor url instead of the main Actor. PieFed provides all the usual url endpoints, WebFinger, etc for both actors but only provides user-provided PII for the main one.

That’s all it is. Pretty simple, really.

To enable the anonymous profile, go to https://piefed.social/user/settings and tick the ‘Vote privately’ checkbox. If you make a new account now it will have this ticked already.

This will be a bit controversial, for some. I’ll be listening to your feedback and here to answer any questions. Remember this is just an experiment which could be removed if it turns out to make things worse rather than better. I've done my best to think through the implications and side-effects but there could be things I missed. Let's see how it goes.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 85 points 7 months ago* (last edited 7 months ago) (1 children)

Cool solution. It's great to have multiple projects in the fediverse that can experiment with different features/formats.

For those who are concerned about possible downsides, I think it's important to understand that

  • PieFed has a small userbase
  • Rimu is an active admin, so if you are attempting to combat brigading or other bad behavior and this makes it more difficult, just send them a DM and they will be happy to help out

This is a good environment to test this feature because Rimu can keep a close watch over everything. We can't become paralyzed by the hypothetical ways that bad actors might abuse new features or systems. The only way forward is through trial and error, and the fact that PieFed exists makes that process significantly faster and less disruptive.

This is an attempt to add more privacy to the fediverse. If the consequences turn out for the worse, then we can either try something else, or live with the lack of privacy. Either way, we'll be better off than having never tried anything at all.

[–] [email protected] 28 points 7 months ago* (last edited 7 months ago) (4 children)

Just upvoted myself but nobody else knows 🤫

Edit: Actually I forgot to toggle the setting before voting on my own comment, so admins will see my @[email protected] account upvoted the parent comment. Worth noting that it needs to be manually enabled.

Then I turned the setting on and voted on a bunch of other comments in this post. My anonymized voting account appears as @[email protected], admins should be able to see it by checking the votes in this thread.

Point being, you can still track serial downvoters and harassment just as easily. But now you will need to take an extra step and message the instance admin (Rimu) and ask that they either reveal the identity of the linked profile or deal with it themselves. And that's a good thing, imho.

[–] [email protected] 27 points 7 months ago (1 children)

Point being, you can still track serial downvoters and harassment just as easily. But now you will need to take an extra step and message the instance admin (Rimu) and ask that they either reveal the identity of the linked profile or deal with it themselves. And that’s a good thing, imho.

This puts the privacy shield in the hands of a users instance admin. I like that approach, but I'm sure others will disagree.

[–] [email protected] 9 points 7 months ago

This is more or less how it worked on Reddit. The admins handled vote spam or abuse, there was absolutely no expectation for moderators to have that information because the admins were dealing with the abuse cases. Moderators only concerned themselves with content and comments, the voting was the heart of how the whole thing works, and therefore only admins could see and affect them. Least privilege, basically.

I think a side effect of this, though, is that it increases the responsibility on admins to only federate with instances that have active and cooperative admins. It increases their responsibilities and demands active monitoring, which isn't a bad thing, but I worry about how the instances that federates openly by default will continue to operate.

If you have to trust the admins, how do you handle new admins, or increasingly absent ones? What if their standards for what constitutes "harassment" don't match yours? Does the whole instances get defederated? What if it's a large instance, where communities will be cut off?

I don't ask any of this as a way to put down this effort because I very, very much want to see this change, but there's gonna be hurtles that have to be overcome

Ultimately I think the best solution would need assistance from the devs but I'm lieu of that, we have to make due.

load more comments (3 replies)
[–] [email protected] 44 points 7 months ago (2 children)

Hey, Lemmy admin here. If I ban an anonymous account, does the account it's tethered to also get banned?

[–] [email protected] 28 points 7 months ago (5 children)

No but perhaps it should!

PieFed lacks an API, making it an unattractive tool for scripting bots with. I don't think you'll see any PieFed-based attacks anytime soon.

[–] [email protected] 14 points 7 months ago (1 children)

What about PieFed-based shitty humans?

[–] [email protected] 26 points 7 months ago (2 children)

PieFed tracks the percentage of downvotes vs upvotes (calling it "Attitude" in the code and admin UI ), making it easy to spot people who downvote excessively and easy to write functionality that deals with them. Perhaps anonymous voting should only be available to accounts with a normal attitude (within a reasonable tolerance).

[–] [email protected] 10 points 7 months ago (5 children)

Wow your documentation is so much better than ours.

[–] [email protected] 10 points 7 months ago

That's nice of you to say. I've tried to focus well on certain areas that seem important but I really admire the breadth of https://join-lemmy.org/docs/ which I could never hope to cover.

load more comments (4 replies)
load more comments (1 replies)
load more comments (4 replies)
[–] [email protected] 18 points 7 months ago (4 children)

Do you ben based on voting behaviour?

[–] [email protected] 29 points 7 months ago (6 children)

If the same account is voting in the same direction on every single post and comment in an entire community in a matter of seconds while contributing neither posts nor comments? Yes, vote manipulation.

If one user is following another around, down voting their content across a wide range of topics? Yes, targeted harassment.

[–] [email protected] 17 points 7 months ago* (last edited 7 months ago) (1 children)

Would banning the voting half of the pseudonymous account not mitigate the immediate issue? Then asking their instance admin to later lookup and ban the associated commentating account.

[–] [email protected] 7 points 7 months ago (6 children)

Well, doesn't that fly in the face of federated autonomy and privacy?

On one end, if it's my instance and I want to ban a user, I want the whole fucking user banned -- not just remove their ability to vote anonymously. If one of my communities or users is being attacked, it's my responsibility to react. If I can't remove the whole problem with a ban, then I have to remove the whole problem with a de-federation. (A thing I fundamentally don't want to do.)

On the other, if some other admin says, "one of your users is being problematic, please tell me who they are," I'm going to tell that other admin to fuck right off because I just implemented a feature that made their votes anonymous. I'm not about to out my users to some rando because they're raining downvotes on [email protected].

It's a philosophical difference of opinion.

load more comments (6 replies)
load more comments (5 replies)
load more comments (3 replies)
[–] [email protected] 38 points 7 months ago

This is quite a smart solution, good job !

[–] [email protected] 38 points 7 months ago

You're a hero for making this happen in... 24 hours? 48?

The issue won't go away, we'll see how well everyone else deals with it, but this is a super strong argument for your system / server.

(Advertise it. Advertise it HARD. "piefed, we have private votes".)

[–] [email protected] 32 points 7 months ago* (last edited 7 months ago) (3 children)

I use people upvoting bigoted and transphobic content to help locate other bigoted and transphobic accounts so I can instance ban them before they post hate in to our communities.

This takes away a tool that can help protect vulnerable communities, whilst doing nothing to protect them.

It's a step backwards

[–] [email protected] 18 points 7 months ago (2 children)

I'm going to have to come up with set criteria for when to de-anonomize, aren't I. Dammit.

In the meantime, get in touch if you spot any bigot upvotes coming from PieFed.social and we'll sort something out.

[–] [email protected] 11 points 7 months ago (2 children)

The problem is, it's more than just the upvote. I don't ban people for a single upvote, even on something bigoted, because it could be a misclick. What I normally do is have a look at the profiles of people who upvote dogwhistle transphobia, stuff that many cis admins wouldn't always recognise. And those upvotes point me at people's profiles, and if their profile is full of dog whistles, then they get pre-emptively instance banned.

[–] [email protected] 12 points 7 months ago (1 children)

Ahh, right, got it.

Let's keep an eye on this. I am hopeful that with PieFed being unusually strong on moderation in other respects that we don't harbor many people like that for long.

load more comments (1 replies)
load more comments (1 replies)
load more comments (1 replies)
[–] [email protected] 7 points 7 months ago (1 children)

Yea, which is why I think the obvious solution to the whole vote visibility question is to have private votes that are visible to admins and mods for moderation purposes. It seems like the right balance.

[–] [email protected] 9 points 7 months ago (2 children)

It will be difficult to get the devs of Lemmy, Mbin, Sublinks, FutureProject, SomeOtherProject, etc to all agree to show and hide according to similar criteria. Different projects will make different decisions based on their values and priorities.

load more comments (2 replies)
load more comments (1 replies)
[–] [email protected] 30 points 7 months ago* (last edited 7 months ago) (1 children)

Dude this is genius

I am interested to see how it plays out but the idea of the instance admin being able to pierce the veil and investigate things that seem suspect (and being responsible for their instance not housing a ton of spam accounts just as now) seems like a perfect balance at first reading

Edit: Hahaha now I know Rimu’s alter ego because he upvoted me. Gotcha!

[–] [email protected] 10 points 7 months ago

It wasn't me, haha

[–] [email protected] 25 points 7 months ago* (last edited 7 months ago) (3 children)

While not a perfect solution, this seems very smart. It’s a great mitigation tactic to try to keep user’s privacy intact.

Seems to me there’s still routes to deanonymization:

  1. Pull posts that a user has posted or commented in
  2. Do an analysis of all actors in these posts. The poster’s voting actor will be over represented (if they act like I assume most users do. I upvote people I reply to etc)
  3. if the results aren’t immediately obvious, statistical analysis might reveal your target.

Piefed is smaller than lemmy, right? So if only one targeted posting account is voting somewhat consistently in posts where few piefed users vote/post/view, you got your guy.

Obviously this is way harder than just viewing votes. Not sure who would go to the trouble. But a deanonymization attack is still possible. Perhaps rotate the ids of the voting accounts periodically?

load more comments (2 replies)
[–] [email protected] 18 points 7 months ago (2 children)

The problem with this approach is trust. It works for the users, but not admins. If I run a PieFed instance with this on, how can lemmy.world for example can trust my tiny instance to be playing by the rules? I went over more details in this other comment.

Sure, right now admins can contact you, for your instance. But you can't really do that with dozens of instances and hundreds of instances. There's a ton of instances we tolerate the users, but would you trust the admin with anonymous votes? Be in constant contact with a dozen instance admins on a daily basis?

It's a good attempt though. Maybe we're all pessimistic and it will work just fine!

[–] [email protected] 15 points 7 months ago* (last edited 7 months ago) (1 children)

I can only respond in general terms because you didn't name any specific problems.

Firstly, remember than each piefed account only has one alt account and it's always the same alt account doing the votes with the same gibberish user name. If the person is always downvoting or always voting the same as another person you'll see those patterns in their alt and the alt can be banned. It's an open source project so the mechanics of it cannot be kept secret and they can be verified by anyone with intermediate Python knowledge.

Regardless, at any kind of decent scale we're going to have to use code to detect bots and bad actors. Relying on admins to eyeball individual posts activity and manually compare them isn't going to scale at all, regardless whether the user names are easy to read or not.

[–] [email protected] 8 points 7 months ago* (last edited 7 months ago) (2 children)

Firstly, remember than each piefed account only has one alt account and it's always the same alt account doing the votes with the same gibberish user name. It's an open source project so the mechanics of it cannot be kept secret and they can be verified by anyone with intermediate Python knowledge.

That implies trust in the person that operates the instance. It's not a problem for piefed.social, because we can trust you. It will work for your instance. But can you trust other people's PieFed instances? It's open-source, I could just install it on my server, change the code to make me 2-3 alt accounts instead. Pick a random instance from lemmy.world's instance list, would you blindly trust them to not fudge votes?

The availability of the source code doesn't help much because you can't prove that it's the exact code that's running with no modifications, and marking people running modified code as suspicious out of the box would be unfair and against open-source culture.

I also see some deanonymization exploits too: people commonly vote+comment, so with some time, you can do correlation attacks and narrow down the accounts. So to prevent that, you'd have to remove the users mapping 1:1 to a gibberish alt by at least letting the user rotate them on demand, or rotate them on a schedule, and now we can't correlate votes to patterns anymore. And everyone's database endlessly fills up with generated alt accounts (that you can't delete).

If the person is always downvoting or always voting the same as another person you'll see those patterns in their alt and the alt can be banned.

Sure, but you lose some visibility into who the user is. Seeing the comments is useful to get a better grasp of who they are. Maybe they're just a serial fact checker and downvoting misinformation and posting links to reputable sources. It can also help identify if there's other activity beside just votes, large amounts of votes are less suspicious if you see the person's also been engaging with comments all day.

And then you circle back to, do you trust the instance admin to investigate or even respond to your messages? How is it gonna go when a big, politically aligned instance is accused of botting and the admin denies the claims but the evidence suggests it's likely? What do we do with Threads or even an hypothetical Twitter going fediverse, with Elon still as the boss? Or Truth Social?

The bigger the instance, the easier it is to sneak a few votes in. With millions of user accounts, you can borrow a couple hundred of your long inactive user's alts easily and it's essentially undetectable.


I'm sorry for the pessimism but I've come to expect the worst from people. Anything that can be exploited, will be exploited. I do wish this problem to be solved, and it's great that some people like you go ahead and at least try to make it work. I'm not trying to discourage anyone from experimenting with that, but I do think those what-ifs are important to discuss before everyone implements it and then oops we have a big problem.

The way things are, we don't have to put any trust in an instance admin. It might as well not be there, it's just a gateway and file host. But we can independently investigate accounts and ban them individually, without having to resort to banning whole instances, even if the admins are a bit sketchy. Because of the inherent transparency of the protocol.

[–] [email protected] 17 points 7 months ago* (last edited 7 months ago) (1 children)

Yes. You're going to have to trust someone, eventually. People can modify the Lemmy source code, too. Well, I can't because Rust looks like hieroglyphics to me but you get the idea.

I'd rather this than have to trust Lemmy admins not to abuse their access to voting data - https://lemm.ee/comment/13768482

load more comments (1 replies)
load more comments (1 replies)
load more comments (1 replies)
[–] [email protected] 14 points 7 months ago (3 children)

I'm surprised most people are against public votes. Most people already seem to have an anonymous account via some weird username not connected to their real identity already. What difference does it make that votes can be viewed, other than for transparency during discussion?

Maybe I'm the odd one out that uses my real name on the Internet and generally try to behave/vote the same as I would in person, but it seems weird wanting a hybrid account that's private (votes), yet not private (comments).

[–] [email protected] 16 points 7 months ago (3 children)

If votes were anonymous here, I might "come out" as my professional self and share more from my resources that can be used to Identity who I am.

I'm concerned that my voting pattern is probably already being collected to build a profile on MajorHavok, to decide whether MajorHavok should be favored or disfavored in anything owned by old Elon or Zuck or Bezos.

Elon is a fuck up, but he still owns a lot of places that I might need to use for my work.

So, for now, it's pretty important to me that MajorHavok and John Jacob Jinglehimer Schmidt are kept as separate identities, so that John's employability where Elon/Zuck/Bezos has influence will remain unaffected.

load more comments (3 replies)
[–] [email protected] 15 points 7 months ago (6 children)

When you comment you make a conscious decision to put your opinion out there and sign it with your "name" (or alternatively you switch to a "burner" account and do it pseudonymously).

But when you vote for stuff it's often without much thinking, and it's private on pretty much every other platform. Where it isn't it's usually blatantly obvious that that is the case.

What difference does it make that votes can be viewed, other than for transparency during discussion?

There are many reasons that have been stated time and time again; one is simply that people may wish to stay anonymous when supporting certain opinions.

To me it feels like comments are what you can actually stand behind publicly, while votes also show what you think privately. And not everyone is willing to stand behind all of their opinions publicly, often for fear of backlash or harassment.

load more comments (6 replies)
[–] [email protected] 9 points 7 months ago* (last edited 7 months ago) (1 children)

I'm surprised most people are against public votes.

It's okay that you don't understand why, but it would be best to learn why anonymity is a key requirement for voting freedom, be it in the polls or on social media.

load more comments (1 replies)
[–] [email protected] 12 points 7 months ago* (last edited 7 months ago) (8 children)

Its strange to see one of my posts being used as a reference. All I was trying to do was share something cool.

I do agree though. When up/downvotes (especially downvotes) are fully public, it leads to trolls getting angry and lashing out on individuals in a semi-public way. And if you can see ALL of that individuals voting patterns, then we get people strategically making tools to go after people that vote certain ways. Theres a reason anonymous voting is a thing outside of the internet as well.

If this goes live in lemmy.world i will be looking at other places to post/interact with. Love lemmy (and contributed to the codebase as a dev) but I cant be bothered with trolls.

load more comments (8 replies)
[–] [email protected] 12 points 7 months ago

Very interesting development, I'll be curious to see how it ends up working out.

[–] [email protected] 11 points 7 months ago

Awesome! This is the exact stopgap implementation I was arguing for, and I'm surprised how many people kept insisting it was impossible. You should try and get this integrated into mainline Lemmy asap. Definitely joining piefed in the meantime though.

[–] [email protected] 11 points 7 months ago

You keep delivering, thank you so much!

[–] [email protected] 10 points 7 months ago (5 children)
load more comments (5 replies)
[–] [email protected] 8 points 7 months ago

That's pseudonymous!

But all kidding aside, it sounds good

[–] [email protected] 8 points 7 months ago (1 children)

Is it possible for an instance to send out false vote data that can't be verified? Lemmy doesn't seem like a plausible target for it at the moment (and i dont pretend to know how this works beyond a conceptual level) but I can imagine a bad actor at some point seeking to manipulate voting.

load more comments (1 replies)
[–] [email protected] 7 points 7 months ago

I missed the discussion on voting the other day it seems, but for what it's worth, I like the voting system. In real life discussions happen in open air, and don't hang there in posterity for people to stumble upon after. When we come to a consensus in conversation it is then left at that and we move on.

When online, these discussions stay as they are, and I think voting gives a way of people to come to a consensus, to leave a mark upon the conversation such that the people who come behind understand how everyone felt about it.

This is helpful I think, because it does not hide the down votes on nasty comments or ideas that hurt others.

One of the most interesting and horrible things about the internet is that every village has a "crazy Bob" but because they were the minority the good of the people outnumbered their outlandish or hateful ideas.

Now they can and do find each other online, forming a vocal and damaging minority. Without the majority able to show their dislike, human nature means more will fall in line with them and their ideals.

load more comments
view more: next ›