Skip to content
58 changes: 58 additions & 0 deletions proposals/1943-v3-default-room-version.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Set v3 to be the default room version
Copy link
Member

Choose a reason for hiding this comment

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

If #1884 merges, then we should probably be setting default room to v4 instead.

Copy link
Member

Choose a reason for hiding this comment

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

unconvinced: it will take a while for v4 (whatever it ends up being) to roll out across the federation, whereas v3 has already been out for several weeks.

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've changed my mind here fwiw. If we go to the trouble of implementing #1884 then I can't see sense in shipping v3 as default. Though agree with @richvdh comment that it pushes back the date that we can change default from v1.


Homeservers support multiple room versions, though one version is the default.
All new rooms created by a server are of the default version.
Copy link
Member

Choose a reason for hiding this comment

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

the default is a recommendation; we can't change the behaviour of old servers.

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 don't see a contradiction here, whatever the default the server has, the description is accurate. I've made a change further down to clarify that the default is only a recommendation.

Copy link
Member

Choose a reason for hiding this comment

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

technically speaking /createRoom allows for specifying a room version which is not of the default, making the statement here untrue. However, I don't think this is the thing we need to get stuck on.

Copy link
Member

Choose a reason for hiding this comment

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

ok I think I misread this. All new rooms are inherently created by a server, so I just read it as "All new rooms are of the default version."

I think what you mean is "By default, new rooms created by a server are of the default version for that server", which is somewhat tautologous. I guess I'm just not sure this sentence adds clarity rather than confusion. Perhaps:

Homeservers support multiple room versions. Each server has a default version which is used when creating new rooms.


Room v3 uses the new state resolution algorithm, and replaces event IDs with
hashes, thereby closing a raft of security issues.

This MSC proposes changing the recommended default from v1 to v3.


## Proposal

The default room should be updated to be room v3 from v1.

Until we have greater confidence in the room upgrade UX v1 will continue
to be marked as 'stable'.

By contrast, very few rooms will be of version v2, and this version can be
safely marked as 'unstable'.

This means that new rooms will be created as v3 rooms, but existing rooms will
not prompt admins to upgrade. Separately we intend to deprecate v1, but
doing so will come as part of a separate MSC.

## Tradeoffs

It is likely that the imminent Matrix 1.0 release will require a new room
version. However, before this version can become the default there
must be sufficient take up in the federation so as to avoid locking out old
servers.

Therefore it is worth realising the value of v3 rooms immediately rather than
waiting for the new room version to arrive and proliferate.

## Potential issues

If new rooms are to be v3 some old servers will not be able to participate
since they will not support v3. For context, v3 was introduced in Synapse 0.99.0
on 5th Feb 2019.

Ignoring a long tail of of pre 0.30.0 servers (0.30.0 was released in
May 2018) ~2/3 servers support v3, and practically speaking ~90% of users are
on v3 compatible servers.

It does not seem unreasonable to expect Synapse admins to update to > 0.99.0
server as a means to mitigate any difficulties caused by not supporting v3 rooms.


## Security considerations

The primary driver for this MSC is to address known security vulnerabilities.

## Conclusion

Marking v3 as the default room version is a pragmatic means to improve security
in the Matrix federation. Future MSCs will propose further changing the default
to v4 as well marking v1 and v2 as 'unstable' to encourage all rooms to upgrade.