Here’s an idea to make Lemmy even better: true account portability.

Right now, your Lemmy account and all your content are tied to one server. Moving instances or having one shut down means losing your digital presence. Frankly, the server controls your online identity.

But what if you controlled your identity?

I’ve opened a discussion on the Lemmy dev GitHub about integrating Decentralized Identifiers (DIDs). Think of a DID as a permanent, global ID you own, independent of any server.

Why DIDs are a game-changer for Lemmy:

  • Real Account Portability: Move your entire account – posts, comments, followers – to any new instance seamlessly. Your identity travels with you.
  • More User Control: Your online presence becomes resilient, managed by an ID you control, not governed by a single server’s policies.
  • Proven Tech: It works. Protocols like ATProto (Bluesky) successfully use DIDs for portable user identities.
  • Full Fediverse Compatibility: We can add DIDs to Lemmy while staying fully interoperable with Mastodon, Kbin, and all other ActivityPub platforms. No breaking changes, just a powerful upgrade.

This is a big step towards a more decentralized and user-controlled fediverse. If you’re interested in more control over your digital self, check out the discussion:

[GitHub Issue: https://github.com/LemmyNet/lemmy/issues/5942]

If you’re on other ActivityPub platforms, consider pushing for similar solutions! The more platforms that adopt truly portable identity, the stronger the fediverse becomes.

  • INeedMana@piefed.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 day ago

    DID as a permanent, global ID you own, independent of any server

    So there would have to be another server, hosting my identity? Would identities somehow be federated between identity instances?

  • zalgotext@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Yeah I don’t think this is gonna get anywhere when the easiest alternative to controlling your account is to just host your own Lemmy instance, and you can do that literally right now with no changes to Lemmy or the protocol.

    It’d be nice for ActivityPub to support optional GPG signatures for those that want to have that level of control. That would get you all the identity verification that this new fangled did stuff gets you, with the added bonus of GPG being a reliable, existing, proven technology that people already know how to support.

    • muntedcrocodile@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      2
      ·
      edit-2
      2 days ago

      Did also allows portable identity so ur home instance is whatever instance u feel like. Did has been tested and proven reliable its in use by lots of different applications including bluesky.

  • silverpill@mitra.social
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    2 days ago

    FEP-ef61: Portable Objects describes how to use DIDs with ActivityPub. Here’s a slightly less technical introduction: https://codeberg.org/ap-next/ap-next/src/branch/main/nomadpub.md

    It’s not easy, though. Adding this feature to an existing project will require a lot of work, especially if you don’t want to share signing keys with servers. This was discussed in #3100, Lemmy devs are not opposed to FEP-ef61, but they don’t plan to work on it.

    Also, I don’t recommend copying solutions from ATProto, their did:plc and did:web are not really “decentralized”.

  • flamingos-cant (hopepunk arc)@feddit.uk
    link
    fedilink
    English
    arrow-up
    14
    ·
    edit-2
    3 days ago

    Real Account Portability: Move your entire account – posts, comments, followers – to any new instance seamlessly. Your identity travels with you.

    This is nice in theory but comes with edge cases that are hard to account for. Like, what if you have a post and your new instance defeds the instance the post’s community is on? You either have to allow banned content onto the instance or the user loses data, neither of which are acceptable.

    This is part of why ATProto’s decoupling of user data from app logic is kinda genius and the direction we should go in if we want portable actors in Lemmy/thredi.

    Full Fediverse Compatibility: We can add DIDs to Lemmy while staying fully interoperable with Mastodon, Kbin, and all other ActivityPub platforms. No breaking changes, just a powerful upgrade.

    Not really, every fediverse platform that people use expects an Object’s id to be a https URI it can just fetch the resource from. This is part of why FEP-ef61 specifies a way of translating a DID to a https URI. That’s not to mention that moving existing actors from their current ID to a DID will cause all sorts of interop problems.

    Edit: Also, is this AI-generated? It has all the tells of Gemini output, especially the the issue on Github.

      • renzhexiangjiao@piefed.blahaj.zone
        link
        fedilink
        English
        arrow-up
        9
        ·
        2 days ago

        yeah, if I were a Lemmy dev, I wouldn’t take this proposal seriously because of this. I would be wondering if that person really knows what they’re proposing and if they’re planning to engage in the discussion themselves or let AI do it for them, and in the latter case it would just be a waste of time.

    • muntedcrocodile@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 days ago

      we add a did to objects and keep the id the same. supporting platforms will use did old ones will carry on using id.

      did is what ATProto uses this is a step in that direction

  • Magnum, P.I.@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    3
    ·
    2 days ago

    I don’t like LLMs either, but I think its harsh to just close the discussion because someone used an LLM to rephrase someone’s initial idea…

      • Magnum, P.I.@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        3
        arrow-down
        5
        ·
        2 days ago

        Wow that was an amusing read, but not really comparable. Those are automated AI security findings, hallucinated partially. But this is an idea that was phrased out by using AI. He already showed the passion to submit and discuss his idea, what you are doing is valuing the devs passion more than someone that’s clearly not a dev submitting his idea … It sounds a little elitist to me.

        • AmbiguousProps@lemmy.today
          link
          fedilink
          English
          arrow-up
          4
          ·
          2 days ago

          The problem is the github issue has hallucinations and incorrect technical terminology. It really shouldn’t be used for this purpose, it’s pretty selfish to expect maintainers to consider something that you used LLM for in my opinion. I don’t think that’s elitist, is it really all that difficult to write a feature request on your own, especially if you’ve already done the hard part (the research)?

          • muntedcrocodile@lemmy.worldOP
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            3
            ·
            2 days ago

            I did the research I looked at many different way to get the desired solution. I learned how ATProto works i looked into other services with did got an llm to put those ideas in the required format for the issue. Can you please point out the hallucinations in the issue so i can go and fix them

            • Arthur Besse@lemmy.ml
              link
              fedilink
              English
              arrow-up
              4
              arrow-down
              1
              ·
              2 days ago

              i looked into other services with did got an llm to put those ideas in the required format for the issue. Can you please point out the hallucinations in the issue so i can go and fix them

              No. Asking other people to read (and now also to correct!) your LLM slop is extremely inconsiderate. Please don’t do that again.

              • muntedcrocodile@lemmy.worldOP
                link
                fedilink
                English
                arrow-up
                1
                arrow-down
                4
                ·
                2 days ago

                Someone claimed it contained hallucinations. I read through the entire thing as well as doing all the research and understanding of the concept being talked about. If someone is claiming that their are issues I expect them to be able to prove that. I’m not asking for a fact checker I’m asking for someone to provide evidence of the thing they verbatim claimed. If u wanna tell me that my research showing the sky is blue is wrong I would appreciate u pointing out my error otherwise ur just making baseless claims.

            • Magnum, P.I.@lemmy.dbzer0.com
              link
              fedilink
              English
              arrow-up
              2
              arrow-down
              3
              ·
              2 days ago

              I also don’t get it, as far as I understood you only used the LLM to have a spell checker on crack basically and not generate the idea or straight up technical solution so whats all the fuzz about?

              • muntedcrocodile@lemmy.worldOP
                link
                fedilink
                English
                arrow-up
                2
                arrow-down
                1
                ·
                2 days ago

                That’s exactly what I did. Its essentially a translater from 3 pages of dotpoints and notes that would be incoherent to anyone but myself to normal English.

  • AmbiguousProps@lemmy.today
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    2
    ·
    edit-2
    3 days ago

    So we’re filing LLM slop for Lemmy issues now? Also that’s a pretty poor choice for a name.

  • Jumuta@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    3 days ago

    how would one find someone’s DID public key/ DID documents? wouldn’t it have to be hosted on some single trusted server?

    • muntedcrocodile@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      2
      ·
      edit-2
      3 days ago

      No thats the whole point of a DID. Its an existing standard that has been established to manage decentralised identity. Their exists multiple ways to handle it so a did is did:source:id where the source can be many different things blue-sky uses a group of trusted identity server, but u can use a selhosted file, the blocckchain all sorts of things. Hell u could even use bluesky u could have the same login for ATproto (bluesky) and activpub (lemmy)

      • Spooky Mulder@twun.io
        link
        fedilink
        English
        arrow-up
        9
        arrow-down
        1
        ·
        3 days ago

        The way this comment is written doesn’t sound anything like the OP or the GitHub issue. Different tone, different dialect/spelling… lot of linguistic red flags. Not that I’m judging either way, it’s just suspicious how vastly different they are.

  • Ludrol
    link
    fedilink
    English
    arrow-up
    5
    ·
    3 days ago

    It will probably need it’s own RFC but let’s hear from the devs if they want to do it. (In my experience it’s hard to push through the desired change)

    You will have better time trying to implement this in piefed

    • Rimu@piefed.social
      link
      fedilink
      English
      arrow-up
      6
      ·
      3 days ago

      IMO nomadic identity is more important in Mastodon, etc where the fundamental connections of the network are person-to-person - the emphasis is on following other people and having them follow you and that is what determines what content you see. Also being free to leave (and go somewhere else) is a killer feature that centralized social networks cannot offer and nomadic identity really leans into that strength.

      In contrast, in the threadiverse you can’t follow other people - you join communities. Also when a post is viewed the author is just another piece of meta data, the focus is really on the content. With Mastodon they make a much bigger deal about who is saying the thing, display their avatar much bigger, etc. On Mastodon they’re YOUR posts that are strongly tied to you. But here, the posts you make are kiinda more like contributions to a shared wiki (community).

      So in PieFed/Lemmy if you need to drop your account on an instance and create a new account on another it’s really much less of a loss and not really disruptive at all. You can just import your settings from the old account and continue to post in all the same communities you did before. The need for a nomadic identity just isn’t as strong.

      Moving communities to another instance, tho, now that would be great. It’s on my very long list.

      • muntedcrocodile@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 days ago

        Due to how the fediverse works if users can be given a did so can a community. It would only migrate for services that support did but wouldn’t be all to different.

  • Int32@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    3 days ago

    yeah, that’s doable, I would do it like this: DIDs could just be cryptographic signing keys, and your client could just sign all your posts, and send it to any server, which will federate that. same with the upvotes/downvotes(timestamps will have to be signed so a server could not just replay an upvote or downvote if you change your mind) in this case, servers will only be useful for naming(and keeping the bio and public signing key) and relaying the messages to other servers. what’s described is pretty much that.

    • muntedcrocodile@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 days ago

      DID already exist they are a Decentralised IDentiy (DID) it is a keypair and user data so usernames, profile, bio, and a list of accounts across different instance that allows associating post comments likes etc.

  • Rimu@piefed.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    3 days ago

    https://joinfediverse.wiki/Nomadic_identity

    As far as I can tell Hubzilla seems to do it by having alts on different instances and then having a way to associate them with each other, so every instance knows that all the alts they’re the same user. It’s a bit clunky but it avoids as many fundamental changes to ActivityPub because most things under the hood are the same as without nomadic identity and the UI just treats several actors as the same user.

    • muntedcrocodile@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days ago

      That’s essentially how ATProto does it and they publish other instance actors under “also known as” in the did. that’s essentially what im proposing.

      • Rimu@piefed.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        I like how the did field is in addition to the existing actor field, providing a way to gradually transition the protocol to the new way.

  • Daemon Silverstein@calckey.world
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    @muntedcrocodile@lemmy.world

    Somehow, this remembers me of Nostr. How much is this different from Nostr? (insofar an user generates their own pair of public and private keys that they use to publish content anywhere within the Nostr ecossystem, at least it’s as far as I remember about Nostr, as it’s been a long while since I don’t use Nostr anymore after it went down the cryptobro road)