Nomadic Identity vs Portable Identity vs ...?

Hello all.

Does anyone know if somebody has created an overview of what all the terms related to moving identities, or whatever you want the general term to be, mean?

Thanks!

1 Like

To my knowledge, there have been several attempts at achieving data portability in social networks over the years.

Starting in 2007, initiatives like “Social Network Portability” and “Data Portability” aimed to address this goal, and it has been a focus for over a decade.

The concept of “Nomadic Identity” is a newer and appealing idea. It refers to a unique identifier that is not tied to a specific domain, allowing for increased flexibility and user control.

A topical example is the Nostr ID, a 64-character lowercase hash that serves as a public key. By possessing the corresponding private key, users can claim ownership of the ID and sign statements with it, enhancing portability and security.

This could be added to a profile either in the profile metadata which appears as an attachment, or in an Identity proof, which is now deprecated. A simpler solution would be to allow adding your handles to different networks directly into the profile, next to name, url etc.

1 Like

The term “Nomadic identity” comes from Zot protocol, the definition can be found here: Specs - Zot/6 Nomadic Idenity.

“Portable identity” has become popular recently thanks to AT protocol, which defines portability in the following way:

Portability. Identities should be portable across services. Changing a provider should not cause a user to lose their identity, social graph, or content.

Web3 community used terms Self-sovereign identity and “decentralized identity” interchangeably.

All of these terms have roughly the same meaning, but Nomadic identity originates from Fediverse, so it is my favorite.

Also, I think that terms “alias” and “clone” are useful for talking about implementations.

3 Likes

I think picking good terms and providing decent definitions for all of them, will clarify this identity concept. I’ll try:

  • Identifier: For the lack of a better term, a string that represents one thing.
  • Alias: An identifier A is an alias of the identifier B if they represent the same thing.
  • Clone: A thing A is a clone of a thing B if they have the same content
  • Dezentralized Identifier (DID) is a form of identifier where the owner of the Identifier can prove their ownership claim without relying on a central authority. See @melvincarvalho’s example above of public and private keys.

This means that there multiple clones of the user’s data that can all be identified by the same identifier (?). Zot/6 takes care of keeping the clones in sync.

BlueSky does the same but call the entire thing Data Repository instead of server.

2 Likes
  • Identifier - good, the term is inherited from URI too
  • alias - I like it alot

Unsure about clone, since data can live anywhere in theory, in memory, in a file, on a web page, in a database. DID is problematic for a number of reasons, one (but not the only one) of which is that it’s not one spec but 170+ different specs. Each group has its own URI scheme, and many have a less than favourable reputation.

Technically a term used is content addressable, which is a unique string of characters, that is not tied to a domain.

In a bigger context, I think identity as a whole needs to be documented, rethought and augmented.

I think if one were to write a guide to Identifiers and Identity for the Fediverse, one should also include the following

  • Signing A method to show that the owner of the Identifier really composed the object. See fep-8b32
  • Finding (?) The problem of given an identifier find the data associated with it.

Not sure about the word Finding.

I would consider Signing a solved problem with technical details left to be resolved. For Signing to work, one should use cryptographic identifiers, i.e. a public key as identifier and only the owner having access to the associated secret i.e. private key.

The question of Finding is harder, and probably does not have a simple answer. For the commonly used urls, the answer is DNS (which is centralized).

How do you think, should we make a distinction between these two cases:

  • Identifiers resolve to the same resource
  • Identifiers represent things controlled by the same entity

i wish there was a did:sameController claim or somesuch. that seems like the most natural way to resolve the issue.

1 Like

In what sense do you mean the word resolve here? For example, one could take it to mean what https://resolver.identity.foundation/ does. Generally my preference would be to use enough words that one is comfortable people will know what one is talking about.

Yes, this is what I mean, but also the process of going from acct: URI to an actor object. Identifier → Actor.

Different actors belonging to the same person/organization can be called just “identities”. Streams will soon have “identity manager”, which lets user create verified links between accounts. I think this is an apt name. My software has “Manage aliases” page but I like “Manage identities” more.

What about using discover for this?

From https://webfinger.net/

WebFinger is used to discover information about people or other entities on the Internet that are identified by a URI using standard Hypertext Transfer Protocol (HTTP) methods over a secure transport…

A definition could look like this

  • Discovery: Given an identifier A, one can use discovery to find the associated thing.

For reference, here’s the definition of DID resolver.

2 Likes

Yes, discover is a good term for that.

1 Like

Would somebody be willing to work out a FEP clarifying how to use the terms described in this topic?

I think this might also help with things such as Account Migration, etc …

2 Likes

@helge let me get a larger picture of the technologies and processes involved and I might help there.

if anyone is faster than me, please go on

4 Likes