!world@quokk.au

Not going to lie, I got banned so I made my own World News Community. This community differs because there’s no silly bot, I’ll happily listen to the communities voice, and we’re a bit more lax on rules policing.

Feel free to come on by and comment. I would love to foster a News community that’s active in discussion.

  • PhilipTheBucket@ponder.cat
    link
    fedilink
    English
    arrow-up
    5
    ·
    2 months ago

    Maybe it could be addressed with cryptographically-signed votes

    That is how it works, I believe. Each vote has to be signed by the actor of the user that voted.

    There have been people who did transparent vote-stuffing by creating fake accounts en masse and get detected, because they were using random strings of letters for the usernames. Probably it’s happened more subtly than that and not been detected sometimes, too, but it’s not quite as simple as just reporting a high number.

    • tal@lemmy.today
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      2 months ago

      I believe that the basic metric of trust is instance-level. That is, it’s the TLS certificates and whether-or-not an instance is federated that is the basis of trust. I don’t think that users have individual keys – I mean, it’d be meaningless to generate one rather than just trusting a home instance without client-side storage, and that definitely doesn’t exist.

      Having client-side keys would potentially, with other work, buy some neat things, like account portability across instances.

      But the problem is that, as you point out, any solution on vote trust can’t just be user-level keys, unless every admin is gonna police who they federate with and maintain only a network of instances that they consider legit. Once I federate with an instance, I grant it the right to create as many accounts as it wants and vote how it wants. And keep in mind that ownership of an instance could change. Like, an admin retires, a new one shows up, stuff like that.

      • PhilipTheBucket@ponder.cat
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 months ago

        Your actor (https://lemmy.today/u/tal)'s public key is:

         -----BEGIN PUBLIC KEY-----                                      
         MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1VR4k0/gurS2iULVe7D6
         xwlQNTeEsn0EOVuGC2e9ZBPHv4b02Z8mvuJmWIcLxWmaL+cgHu2cJCWx2lxNYyfQ
         ivorluJHQcwPtkx9B0gFBR5SHmQzMuk6cllDMhfqUBCONiy5cpYRIs4LBpChV4vg
         frSquHPl+5LvEs1jgCZnAcTtJZVKBRISNhSp560ftntlFATMh/hIFG2Sfdi3V3+/
         0nf0QDPm77vqykj2aUk8RnnkMG2KfPwSdJMUhHQ6HQZS+AZuZ7Q+t5bs8bISFeLR
         6uqJHcrXtvOIXuFe7d/g/MKjqURaSh/Pqet8dVIwvLFFr5oNkcKhWG1QXL1k62Tr
         owIDAQAB                                                        
         -----END PUBLIC KEY-----                                        
        

        All ActivityPub users have their own private keys. I’m not completely sure, and I just took a quick look through the code and protocols and couldn’t find the place where vote activity signatures are validated. But I swear I thought that all ActivityPub activities including votes were signed with the key of the actor that did them.

        Regardless, I know that when votes federate, they do get identified according to the person who did the vote.

        In practice, you are completely correct that the trust is per-instance, since the instance DB keeps all the actor private keys anyway, so it’s six of one vs. half dozen of the other whether you have 100 fake votes from bad.instance signed with that instance’s TLS key, or 100 fake votes signed with individual private keys that bad.instance made up. I’m just nitpicking about how it works at a protocol level.

        • tal@lemmy.today
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 months ago

          Ah, thank you for that, then; that makes sense. And yeah, if there is a per-user key, then I’d expect it to be signing votes.