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.

  • indomara@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month 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.

  • GBU_28@lemm.ee
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 month ago

    This is excellent.

    I’m curious about piefed now. Is it free of any explicit agenda?

    • Rimu@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Well… Take a look at this https://join.piefed.social/2024/06/22/piefed-features-for-growing-healthy-communities/

      There are definitely values and opinions embedded in there. I would say it’s a bit more “high control” vibe than lemm.ee. If you chose that instance because of it’s more libertarian ethos then perhaps some of the features PieFed have would seem sinister or irrelevant to you.

      The code of conduct for contributors is pretty vanilla IMO but would be seen as “left wing” by people from USA.

      If you look in the sidebar of https://piefed.social you’ll see a random collection of links (they change every page refresh) which are intentionally chosen to combat extremist ideologies and make PieFed instances uncomfortable places for cult-like groups (mostly on the right). That’s a political decision which few projects would make.

      • subignition@fedia.io
        link
        fedilink
        arrow-up
        0
        ·
        1 month ago

        Is “Deredicalisation” intended? I’m not sure if it’s a bit of a play on words or if it’s a typo.

        • Rimu@piefed.socialOP
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          1 month ago

          Yeah, it’s a real thing https://en.wikipedia.org/wiki/Deradicalization although Americans would spell it with a z.

          I spent years and years researching and documenting fascism, QAnon and MAGA. During that time I created a blocklist of 3000+ website URLs which are automatically imported into the PieFed domain blocklist when a new instance is created. Another one of those political choices that define PieFed.

      • Amju Wolf@pawb.social
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        Thanks for being so upfront about how you run your instance. I think it’s disingenuous when people claim that there is “no agenda” or “no moderation” or whatever, because there is always some - even if unintended - just by the pure nature of people running it. So being explicit and opinionated about it is great.

  • ProdigalFrog@slrpnk.net
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 month ago

    Regarding the voting account having no name, does that mean it will be a random string of letters and numbers? I get that it will still be possible to discover vote manipulation or mass downvoting with that, but I suspect it would be more difficult to detect initially or without some deeper analysis, since it’s harder to recognize or remember a random string compared to a human made username.

  • imaqtpie@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 month ago

    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.

      • arcuru@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        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.

        • doctortran@lemm.ee
          link
          fedilink
          English
          arrow-up
          0
          ·
          1 month 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.

  • mozz@mbin.grits.dev
    link
    fedilink
    arrow-up
    0
    ·
    1 month ago

    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

  • Socsa@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month 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.

  • mesamune@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 month ago

    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.

    • endofline@lemmy.ca
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      1 month ago

      It’s vice versa. In the old good times there was a saying “don’t feed the troll”. Just block him. Downvoting is just a cheap solution for people who cannot justify their argument. Btw, I love to read downvoted comments which are by default ‘hidden’. Most of them are trash but sometimes it’s a valid point but not the very popular one

        • endofline@lemmy.ca
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          1 month ago

          Yes, exactly my thoughts on this. Downvoting is only a measure of crowd censorship based on opinion popularity. If you see some trolls, just block them but don’t hide their posts for other ones who may think on that person views otherwise

            • endofline@lemmy.ca
              link
              fedilink
              English
              arrow-up
              0
              ·
              1 month ago

              I think it’s better to present a valid point against somebody’s statement than straight down voting without giving a reason “just because don’t like him”. I think it would create positive discussion environment in lemmy. We are here after all to exchange ideas on lemmy. Aren’t we?

              • mesamune@lemmy.world
                link
                fedilink
                English
                arrow-up
                0
                ·
                1 month ago

                While engaging in discussion can be beneficial, it’s important to recognize that not everyone is comfortable/interested in debating every point they disagree with. Downvoting allows users to express their disagreement without feeling pressured to engage in a back-and-forth that might not be constructive.

                Additionally, some statements may not merit a detailed response, especially if they are inflammatory, misleading, or irrelevant. Encouraging only counter-arguments could lead to an environment where people feel obligated to justify every opinion, which stifles participation rather than promote a positive discussion.

          • doctortran@lemm.ee
            link
            fedilink
            English
            arrow-up
            0
            ·
            1 month ago

            Downvotes are part of the whole curation aspect of the site, and it’s a valid part of the democratic system. For all the whining about being “censored” because you got downvoted, there’s countless cases where downvotes influence the sorting algorithm positively.

            Garbage shouldn’t sit on the same level as fluff comments no one bothered to vote on.

            • endofline@lemmy.ca
              link
              fedilink
              English
              arrow-up
              0
              ·
              1 month ago

              Millions flies cannot be mistaken. Democratic mob cannot be mistaken. Mobs have never lynched anybody. How ignorant you are in your ego with your “whining” argument

  • SorteKanin@feddit.dk
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    How does this work with moderation? I.e. what happens if I ban the real user from a Lemmy instance? What if I ban the alternate user?

    Also, what happens if on Piefed, a user votes for something, then they change the setting and then they vote for the same thing again? How would a Lemmy instance know if it should count the vote or not, since the original user didn’t actually vote from Lemmy’s point of view?

    • Andrew@piefed.social
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      The ‘real user’ and the ‘private voter’ are 2 different accounts as far a external instances are concerned, but only 1 as far as piefed.social is concerned. So if you banned either one, it would have the same effect, because PF would locate the same account from the information provided.

      Likewise, a piefed user can’t vote twice on something, they make one vote, and then the ‘private voting’ setting determines how it is sent out. The local system has tracked that they have voted, and changing the setting won’t change that.

      There’s always more work to do of course, but piefed.social is a small instance, with manual approval required for registration, no API to script things like mass downvoting, and concepts such as ‘attitude’ which would prevent that anyway, so I can’t foresee anything too disastrous happening from this little experiment.

      • SorteKanin@feddit.dk
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        I’m a little concerned about the precedent this sets. An instance could use this technique to facilitate anonymous commenting or posting in addition to votes.

        • Socsa@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          0
          ·
          1 month ago

          Who cares? Generating an infinite number of tokenized identities to facilitate ban evasion will just result in an instance getting defederated. This introduces no real risk as long as the instance is generally abiding by the rules.

          Most of us here are fairly anonymous anyway. I dont think being able to add an additional layer of privacy to our activity is really a big deal.

  • Iceblade@piefed.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    That’s super cool and amazing that you implemented it so quickly.

    So now I have a PieFed account :)

  • cyberic@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    Is it possible to double vote this way (once on each account)? On second thought, would it even matter? A malicious actor could have multiple accounts.

    • Andrew@piefed.social
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      No, the other account isn’t something you can log into or interact with. PieFed knows whether I’ve already voted on something, so it won’t let me vote again by changing the ‘vote privately’ setting.

  • Light@noc.social
    link
    fedilink
    arrow-up
    0
    ·
    1 month ago

    @rimu is there a forum style ap implementation that can talk to lemmy communities (I’m assuming that piefed can) without voting?

    • Rimu@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Not that I know of.

      You could achieve this by installing a Lemmy, PieFed or Mbin instance (whichever you find easiest to install and customise), in the admin area set the sorting options to a sensible default (“New”, or “Active”, perhaps) and then add a small snippet of CSS that hides the voting information.