"No globally unique usernames across federated universe" This is a feature not a bug!
Globally unique usernames require a single source of truth. Single source of truth requires centralized authority. You literally cannot have both
This conversation seems kind of weird to me because it is very different from an analogous situation.
Usernames are like usernames
Node names are like mail domains.
"Oh no, there isn't a globally unique Mastodon name" seems to me like alice@gmail.com being upset that somebody else can take alice@comcast.net. How else would it work!??!?!
@eqdw Quickly scoop up the name you want on the other nodes
@eqdw I think it's a question of expectations. If people are coming here from Twitter it's a significant difference. The lack of a global profile means user discovery is harder. Also people will be very upset when the instance they joined shuts down and their history is gone.
@aidanblack @eqdw but even on Twitter there's a big problem with people assuming the global uniqueness of their username, like I am CONSTANTLY getting notifications from people crossposting their '@fluffy.bunny.floppyhop' Instagram photos for example, or people referring to someone as @fluffy on an entirely different service or because it's their RL nickname too
@eqdw so impossible to make money with my super rare word that i own for myself?!!!
cc @laurent
@eqdw Flag any usernames that collide with local names or previously verified usernames.
@eqdw thanks, I was wondering about that literally just now! nice explanation
@eqdw actually you could, by taking advantage of the federation, for example by using a blockchain inspired datastore to actually store the usernames or to exchange them between instances, IE amending the protocol to support that 'feature'.
But it becomes complicated and almost impractical to code and scale, and there's way more important to do now IMHO.
@gled Using the blockchain still requires individual node operators to respect the blockchain. What mechanism do you have to deal with it when someone decides to just ignore it?
Bitcoin solves this problem by making the financial incentive strong enough that people don't ignore it (fork the chain). Where is the incentive here?
@eqdw the incentive is easy, no respect = no federation.
It creates also other problems ( possible delays to register a new user to make sure the username is unique, need to create a mechanism of verification that a node is playing fair, etc... ).
In the end, yes it would be easier to onboard new users and facilitate search of users, but I'm not sure it is really worth it.
@eqdw Where is the incentive NOT to respect it, if it's what everyone else is doing? You'd be basically defederating yourself from the rest of the network.
@eqdw Also, the issue isn't really about globally unique usernames so much as globally persistent identities. The latter doesn't even require anything like a blockchain, just a PKI style crypto identity. With that, migrating servers might require you to change your username, but not your actual identity - you could still prove that you're the same person, so your followers could auto-follow you across the migration, despite (possibly) having to change usernames.
@kevin_redacted you could use pki but then your id would have to be a derivative of your private key rather than a pretty domain name
@kodo Yes, but your persistent ID could be hidden under the hood, just to allow followers to automatically follow you across a migration. Doesn't ever have to be user-visible.
@kevin_redacted ok, but "under the hood" of what car? that car has to be a centralized authority
@kodo @kevin_redacted Don't think PKI. Think WoT.
@kevin_redacted @kodo WoT == Web of Trust.
"In crypto, a web of trust is a concept used in PGP, GnuPG, and other OpenPGP-compatible systems to establish the authenticity of the binding between a public key and its owner. Its decentralized trust model is an alternative to the centralized trust model of a public key infrastructure (PKI)." - wiki WoT
Practical example, mixable with Mastodon:
@kodo @kevin_redacted I'm thinking more in the likes of a private-public key pair. Status updates signed by a certain key would have the same author regardless of origin node.
@kodo No, it doesn't. Just have a "i have migrated" verb in the protocol, which requires the user to cryptographically prove their identity with their PKI private key. No central authority required.
@kevin_redacted ah so their identifier would be different but there is a "proof" system that binds third party ids to a single identity kinda like keybase.io? or are you saying we should have global names ala something like namecoin where I become just "kodo" instead of "kodo@domain.com"
@kodo Well, global names would be ok, but would require some kind of blockchain-ish solution. I'm talking about something less drastic than that that wouldn't require any global consensus, but would still enable server migration. Yes, kind of like keybase.io, i think.
@eqdw And where is the cost-efficiency? Otherwise, why would anyone even implement it. We're mostly looking for convenience here, as in: 1 single login for access to multiple domains.
@eqdw What could be helpful here is one-way authentication via signed JSON messages. Would still require either clients or the node operator to run a daemon, but it's not blockchain here that could potentially fix it. It's the pubkey namespace.
@eqdw Requires a larger explanation than 500 chars though. Working on it.
@eqdw Network effect of better information by connecting to more nodes is a pretty strong incentive for node operators to retain federation. Also, costs for federation are low here: no mining costs, etc. Just federated information flow (dumb pipes), unlike the blockchain.
@eqdw So there could be an eqdw on every instance?
@eqdw so many people don't understand this
@eqdw Bitcoin wasn't possible before someone coded it either ... just saying.
@eqdw hypocrite that you are, for you trust the centralized authority in your brain to tell you it is centralize authority. all knowledge is ultimately based on that which we cannot prove. will you fight? or will you perish like a dog?
@eqdw that would make it a compromise necessary for a more important feature, not a feature in itself
@eqdw or crypto. Your username is your public key!
@eqdw the uniqueness is a domain. Then you verify connectedness with rel=me links
@eqdw There should at least be some sort of way to bridge your account across instances, just in case an instance gets shut down, etc
You could all just agree to coordinate username uniqueness but this relies on nobody defecting. What do you do to the first node that decides "fuck you I'll name it what I want"?