-
-
Notifications
You must be signed in to change notification settings - Fork 96
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
We need to re-consider splitting users into alias & underlying opaque ID (SPEC-152) #63
Comments
Links exported from Jira: relates to https://github.com/matrix-org/matrix-doc/issues/586 |
One thing that may be worth considering is making the ^opaque_id the hash of some variety of key, and aliases are inserted as Signed(alias || separator || opaque_id), such that the signature is with the key that the opaque_id is the hash of. This avoids the possibility of mappings that the opaque_id's user didn't consent to (both are present in the signature, the id/sig pair is self-certifying), and may be possible to link to e2e, such that keys for an ID are also self-certifying. -- Alex Elsayed |
One other option - rather than '' use '' - all of the benefits of '' apply, with the added bonus that using '' to mean "something user-specific" is a long-standing convention (Unix, mapping public_html, etc). -- Alex Elsayed |
Further arguments in favor of '~':
-- Alex Elsayed |
Why do we want to break the world by using ^ as the sigil for opaque IDs, rather than using the current @user_ids and layering aliases on top? -- @richvdh |
Isn't it the other way around? My understanding was that opaque IDs would be opaque in the sense of https://github.com/matrix-org/matrix-doc/issues/666; the current @-form mxids would transparently grow an opaque-id backing and upgrade to aliases. -- Alex Elsayed |
This bug is quite stale now - who knows if we'd use public keys as the underlying identifier (discovered by a DHT or whatever) or a ^user:domain or a ~user:domain or whatever. I'd be anxious that we keep @user:domain as public-facing user IDs for compatibility with existing conversations etc - and it would then be an indirection through to the underlying ID (which could be hosted on multiple HSes etc). Effectively the @user:domain ID could become a 3PID mapping. Anyway, this is all completely not designed yet and up in the air, other than the desire for decentralised accounts. See https://github.com/matrix-org/GSoC/blob/master/IDEAS.md#decentralised-accounts for other thoughts. -- @ara4n |
Back when we defined rooms as split between aliases and IDs, there was a discussion over also splitting users between aliases and IDs too. At the time, the argument for doing so was "for symmetry", which didn't cut it, but we're starting to see concrete reasons why this could be a good thing to do. This bug is intended to gather together reasons to do so.
Obviously the risks include:
If this idea went ahead, I suggest we adopt a syntax like:
@matthew:matrix.org <-- user alias
^opaque_id:matrix.org <-- user id
I suggest using ^ as the sigil, as it doesn't escape in URLs, doesn't mean anything else, and is easily visually recognisable.
Yes, this would be a major backwards-incompatible change to the event format if we start shoving ^'s everywhere - so we need to decide to do so sooner than later if we are.
I suggest we consider using public key fingerprint as the opaque ID for the user (if this makes any sense at all).
(Imported from https://matrix.org/jira/browse/SPEC-152)
(Reported by @ara4n)
The text was updated successfully, but these errors were encountered: