Skip to content

Conversation

Gnuxie
Copy link
Contributor

@Gnuxie Gnuxie commented Sep 9, 2025

Rendered

Signed-off-by: Gnuxie [email protected]

@Gnuxie Gnuxie changed the title MSC0000: Portable and serverless accounts in rooms. MSC4348: Portable and serverless accounts in rooms. Sep 9, 2025
@Gnuxie Gnuxie changed the title MSC4348: Portable and serverless accounts in rooms. MSC4348: Portable and serverless accounts in rooms Sep 9, 2025
@turt2live turt2live added proposal A matrix spec change proposal s2s Server-to-Server API (federation) needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. requires-room-version An idea which will require a bump in room version room-spec Something to do with the room version specifications unassigned-room-version Remove this label when things get versioned. kind:core MSC which is critical to the protocol's success labels Sep 9, 2025
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementation requirements:

  • Server
  • Complement tests

Comment on lines +46 to +51
- Unlike
[MSC4243](https://github.com/matrix-org/matrix-spec-proposals/4243),
no endpoint or network requests are needed for servers or clients to
verify server ownership over an account, as all events are co-signed
by the room scoped server key. This is both a security and
consistency enhancement.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to be clear about whether servers do own accounts or whether participating in the room from multiple servers at the same time is possible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like there would be no way to enforce this other than through a change in membership otherwise


The domain can be found from MSC4345's `unsigned.server_domain`.

## Potential issues
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like someone to talk to me about E2EE in the context of this MSC because I actually have no idea how tf E2EE already works on Matrix.

- Within the context of MSC4345, the server key can be rotated without
effecting users or the room.

## Proposal
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to specify how precisely the server co-signs the event that has first been signed by the account key. And how this interacts with authorization rules, event creation, and room creation.

- Portable snd serverless accounts accounts are now native to this new room model.
- Pseudo identity is supported in the room model for servers and room
admins that wish to immediately implement it.
- Servers can immediately be implemented as relays for P2P clients.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't necessarily true. There are situations where MSC4345 would require cooperation from an account key.

Comment on lines +139 to +151
### User accounts can move servers

Users that were resident to denied servers can migrate their account
to servers that are participating in the room. We assess this is
acceptable because we expect completing the same registration
requirements on the new server as they would with a brand new user
account will be required to migrate an account.

We expect servers with weak registration requirements or setup for the
use of ban evasion will be identified and removed as they are
currently. However, with the security enhancements of MSC4345, such
servers can no longer join rooms unanticipated. So we have an
advantage.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This implies that the membership event of a user needs explicitly tying to the co-sigining server's participation, and if either the co-singing server key or the account key are revoked, then the membership event cannot be used to authorize events.

I think that it is ok for a new membership event to be created with the same account key co-signed by a new server.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind:core MSC which is critical to the protocol's success needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal requires-room-version An idea which will require a bump in room version room-spec Something to do with the room version specifications s2s Server-to-Server API (federation) unassigned-room-version Remove this label when things get versioned.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants