Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decentralized / multi instance accounts #3110

Closed
4 tasks done
Kryptortio opened this issue Jun 14, 2023 · 5 comments
Closed
4 tasks done

Decentralized / multi instance accounts #3110

Kryptortio opened this issue Jun 14, 2023 · 5 comments
Labels
area: federation support federation via activitypub enhancement New feature or request

Comments

@Kryptortio
Copy link

  • Did you check to see if this issue already exists?
  • Is this only a single feature request? Do not put multiple feature requests in one issue.
  • Is this a question or discussion? Don't use this, use https://lemmy.ml/c/lemmy_support.
  • Is this a UI / front end issue? Use the lemmy-ui repo.

Describe the feature request below

What

When first joining Lemmy some might find it difficult to decide what instance to join so I think it would a good idea if there was an option for decentralized accounts. The main goal would be to protect your account/identity from getting lost if for example the instance goes down.

How

One possibility for solving this without resorting to some kind of central authority could be to add the option to sign your account with public-key cryptography. Then if you create an account on a different server you could prove that they have the same identity by signing that one as well.

So you would need two new entries in your profile for your public key and a signature for the account to prove it's authenticity. It would also be nice if there was an easy way to export account data to keep saved with your private key but that's something that could be added later.

Additional benefits

Adding a public key also has the obvious benefit of allowing e2e encryption for private messages. This would also help with choosing an instance since you don't need as much trust of the owner.

You could also use your key to sign posts and comments to verify that they were written by you and not someone who stole your account.

Your private key could also be used to recover your password instead of using email. This might be preferable to some as your account could be more anonymous.

You could allow someone with a public key to log into any instance without having to create a new account. Then if the original instance comes back and starts federating any posts/comments made on different servers could be verified (if signed) and added to the account on the original server as well. This might also be useful for sharing some of the workload across instances if one of them is under heavy load, then you could use a different one until it recovers.

This could make it easier for someone to follow/block/ban the user across multiple instances.

Further reading

(Mastadon) Adding GPG for verified toots

(Matrix) Decentralised user accounts

@Kryptortio Kryptortio added the enhancement New feature or request label Jun 14, 2023
@Nutomic
Copy link
Member

Nutomic commented Jun 14, 2023

FEP-2100 has a proposal along these lines. Apparently it is implemented in a GNU social plugin (the link is not working for me). However it would take a lot of work to make this production ready for Lemmy.

@Nutomic Nutomic added the area: federation support federation via activitypub label Jun 14, 2023
@Nutomic
Copy link
Member

Nutomic commented Jun 14, 2023

Duplicate of #3100

@Nutomic Nutomic marked this as a duplicate of #3100 Jun 14, 2023
@Nutomic Nutomic closed this as completed Jun 14, 2023
@silverpill
Copy link

@Nutomic I think what OP described here is closer to the idea of identity proofs: https://codeberg.org/silverpill/feps/src/branch/main/c390/fep-c390.md

A user can link their pubkey identity to an actor, and when two actors are linked to the same identity, servers can treat these actors as different representations of the same account.

I'm using this as a basis for account migration mechanism in my microblogging application, and although it is not finished yet and there are several UX issues, this approach actually works and provides a solution to unexpected server shutdowns. My software is written in Rust, so some code can be re-used in Lemmy (I'm thinking about releasing a crate containing necessary cryptographic primitives).

@uis246
Copy link

uis246 commented May 21, 2024

I think this should be reopened because it has different scope(account as opposed to community)

@dessalines
Copy link
Member

If someone wants to work on it, we'll re-open and assign it to them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: federation support federation via activitypub enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants