diff --git a/protocols/matrix.md b/protocols/matrix.md index eddf72f..823c8c8 100644 --- a/protocols/matrix.md +++ b/protocols/matrix.md @@ -14,25 +14,27 @@ Matrix has a federated and a p2p version. #### Federated -Currently, all messages are sent out full-mesh within a conversation. A node broadcasts in parallel to every other node present in the room. Experimental work on stochastic spanning tree "fan-out" approaches are being researched. +In the federated version of Matrix, all messages are currently sent out full-mesh within a conversation. A node broadcasts in parallel to every other node present in the room. Experimental work on stochastic spanning tree "fan-out" approaches to improve efficiency are being researched. -Most users in the public federation are concentrated in a single server, although there are many smaller servers as well. +30% of publicly visible users are on the matrix.org home server. There are many smaller servers as well. #### P2p -Matrix has released a p2p version that runs client-side over libp2p. +Matrix has released a p2p version that runs client-side. P2p Matrix avoids the problem of homeservers accumulating metadata, and simplifies signup by not requiring new users to pick a homeserver. The new p2p implementation runs the homeserver on the client. The p2p network is currently separate from the federated network, but the end goal is to connect the two in a hybrid federated/p2p model. Network transports being considered for p2p Matrix include libp2p, Yggdrasil, or hyperswarm. -https://fosdem.org/2020/schedule/event/dip_p2p_matrix/ +https://matrix.org/blog/2020/06/02/introducing-p-2-p-matrix ### Identity -Matrix has a more flexible identity solution than most decentralized protocols - users have a Matrix user ID, but can also use 3rd party IDs. +Matrix has a more flexible identity solution than many decentralized protocols - users have a Matrix user ID, but can also use 3rd party IDs. -A matrix user id includes the username along with the user's homeserver. For example: +A matrix user ID includes the username along with the user's homeserver. For example: `@bob:matrix.org` -As for 3rd party ids, a Matrix account can link to ids such as email addresses, social accounts, and phone numbers. A globally federated cluster of trusted identity servers verify and replicate the mappings, although this is considered a stopgap solution until a fully decentralized identity solution is adopted. +As for 3rd party IDs, a Matrix account can link to IDs such as email addresses, social accounts, and phone numbers. A globally federated cluster of trusted identity servers verify and replicate the mappings, although this is considered a stopgap solution until a fully decentralized identity solution is adopted. + +User IDs used in conversations will soon be decoupled from permanent IDs, allowing one to decorrelate users from their messages. ### Moderation/Reputation @@ -44,13 +46,15 @@ Users in a room have 'power levels', a number between 0 and 100 that indicates h ### Social/Discovery -Most conversation on Matrix takes place through rooms, which people must be invited to. +All conversations on Matrix take place through rooms, which people either join (if public), peek into (if viewable), or are invited to. -Features supporting more advanced social functionality are still under research and development, such as this proposal for tracking events related to existing events: +Features supporting more advanced social functionality are being developed, such as this proposal for tracking events related to existing events: [Proposal for Aggregation via Relations](https://github.com/matrix-org/matrix-doc/blob/matthew/msc1849/proposals/1849-aggregations.md) ### Privacy and Access Control +Matrix homeservers have access to metadata about conversations, because the homeservers of all users in a given conversation have to store that conversation's metadata. P2p Matrix mitigates this privacy issue. + Matrix recently introduced end-to-end encryption by default for private messages. This was on the roadmap since the beginning, because conversations are replicated over every server participating in a room, and there is no guarantee against servers looking into conversations. [olm e2e encryption](https://matrix.org/blog/2016/11/21/matrixs-olm-end-to-end-encryption-security-assessment-released-and-implemented-cross-platform-on-riot-at-last) @@ -66,7 +70,7 @@ Matrix can be bridged with IRC, Slack, Discord, Telegram and others. ### Applications -The public network currently (Feb 2020) has 14.7M known addressable users, with many others in private federations or on servers which don't report stats. +The public network currently (Feb 2020) has 17.9M known addressable users (as of June 2020), with more in private federations or on servers which don't report stats. Matrix supports multiple clients (most notably [Riot](https://riot.im), the flagship app from the core team), and has bridges to many other chat systems (IRC, Slack, Discord, Telegram etc).