<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Matrix.org - General</title>
    <subtitle>The Matrix.org Foundation</subtitle>
    <link href="https://c956b204.matrix-website.pages.dev/category/general/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://c956b204.matrix-website.pages.dev"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-03-26T10:00:00+00:00</updated>
    <id>https://c956b204.matrix-website.pages.dev/category/general/atom.xml</id>
    
    
    
    
<entry xml:lang="en">
    <title>Solidarity Social operates a Bluesky PDS and uses Matrix for private DMs</title>
    <published>2026-03-26T10:00:00+00:00</published>
    <updated>2026-03-26T10:00:00+00:00</updated>
    <author>
      <name>Amandine Le Pape</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2026/03/solidarity-social/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2026/03/solidarity-social/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;solidarity.social&#x2F;&quot;&gt;Solidarity Social&lt;&#x2F;a&gt;, a Bluesky community based on use of the Solidar App and Solidar personal data server (PDS), is combining the AT Protocol and Matrix open standards to offer Bluesky users an app with end-to-end encrypted direct messages. It intends to be a hub within Bluesky for people building solidarity and organising action for progress on social justice, human rights, human dignity and democracy.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;The Solidar app is derived from the Bluesky app and combines the AT Protocol with the Matrix open standard for secure decentralised communications. The app allows individuals to store their user profile, posts, follows and other social network data on a Solidar PDS, and use a Matrix server of their choice for secure direct messaging.&lt;&#x2F;p&gt;
&lt;p&gt;Users can opt for Solidarity Social’s default Matrix server, or their own existing Matrix account (and server) - a concept Solidarity Social calls Bring Your Own Matrix Account (BYOMA). The Matrix account used can be switched to another at any time. No other social network offers direct control of the servers used for encrypted messaging.&lt;&#x2F;p&gt;
&lt;p&gt;The default Matrix server for Solidarity Social is Element Server Suite Pro managed by Element Creations Ltd on behalf of The Matrix Foundation. The Solidar app roadmap includes adding Matrix-based group chat, and Matrix-based voice and video calls.&lt;&#x2F;p&gt;
&lt;p&gt;Solidarity Social is a space where movements advancing justice, democracy and resisting authoritarianism around the globe can find each other, collaborate safely, and rise together. The combination of a Bluesky PDS and Matrix end-to-end encrypted communication enables novel modes for public engagement by linking public facing social networking to secure chat.&lt;&#x2F;p&gt;
&lt;p&gt;Solidarity Social works with security and privacy of civic groups, unions, electoral campaigns, organizers, and communities, to provide an alternative to centralised collaboration tools that are subject to service denial and surveillance. Solidarity Social helps movements like &lt;a href=&quot;https:&#x2F;&#x2F;www.nokings.org&#x2F;&quot;&gt;No Kings&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;maydaystrong.org&#x2F;&quot;&gt;May Day Strong&lt;&#x2F;a&gt;, and trainers like &lt;a href=&quot;https:&#x2F;&#x2F;freedomtrainers.net&#x2F;&quot;&gt;Freedom Trainers&lt;&#x2F;a&gt;, to expand the organiser toolbox with online actions in order to build solidarity faster and at greater scale.&lt;&#x2F;p&gt;
&lt;p&gt;The service runs without investors or advertising. It is supported by &lt;a href=&quot;https:&#x2F;&#x2F;solidarity.social&#x2F;pricing&quot;&gt;usage-based pricing&lt;&#x2F;a&gt; that works out to approximately $8 USD per year (less than $1 USD per month), for most Bluesky users.&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Welcoming Discord users amidst the challenge of Age Verification</title>
    <published>2026-02-12T14:00:00+00:00</published>
    <updated>2026-02-12T14:00:00+00:00</updated>
    <author>
      <name>Matthew Hodgson</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2026/02/welcome-discord/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2026/02/welcome-discord/</id>
    <content type="html">&lt;p&gt;Hi all,&lt;&#x2F;p&gt;
&lt;p&gt;We’ve seen a huge spike of signups on the &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;homeserver&#x2F;about&#x2F;&quot;&gt;matrix.org homeserver&lt;&#x2F;a&gt; over the last few days due to &lt;a href=&quot;https:&#x2F;&#x2F;discord.com&#x2F;press-releases&#x2F;discord-launches-teen-by-default-settings-globally&quot;&gt;Discord announcing its plans to age-verify all users as of next month&lt;&#x2F;a&gt;. We’d like to give a warm welcome to the massive influx of users currently trying Matrix as an open decentralised alternative to centralised platforms like Discord. We wish we had more time and resources to develop all the features needed for mainstream adoption (see &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=lkCKhP1jxdk&quot;&gt;The Road To Mainstream Matrix&lt;&#x2F;a&gt; from last year’s FOSDEM), but we&#x27;re happy to welcome you anyway!&lt;&#x2F;p&gt;
&lt;p&gt;The biggest difference between Matrix and Discord is that Matrix is an open standard, like email or the Web. There’s a wide range of both clients and servers, and anyone can run their own server on their own terms while participating in the global Matrix network.&lt;&#x2F;p&gt;
&lt;p&gt;However, it’s important to note that server admins are still subject to the law in the jurisdiction where they operate.&lt;&#x2F;p&gt;
&lt;p&gt;Practically speaking, that means that people and organisations running a Matrix server with open registration must verify the ages of users in countries which require it. Last summer we &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2025&#x2F;07&#x2F;terms-update&#x2F;&quot;&gt;announced&lt;&#x2F;a&gt; a series of changes to the terms and conditions of the Matrix.org homeserver instance, to ensure UK-based users are handled in alignment with the UK’s Online Safety Act (OSA). Since then Australia, New Zealand and the EU have introduced similar legislation, with movement in the US and Canada too. If you’ve been around for a while, you will have seen that we started &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2021&#x2F;05&#x2F;19&#x2F;how-the-uk-s-online-safety-bill-threatens-matrix&#x2F;&quot;&gt;raising the alarm&lt;&#x2F;a&gt; about the dangers and potential risks of the OSA back in 2021 - but the reality is that these laws already apply, and the consequences of getting it wrong are serious.&lt;&#x2F;p&gt;
&lt;p&gt;From our perspective, the matrix.org homeserver instance has never been a service aimed at children, which our terms of use reflect by making it clear that users need to be at least 18 years old to use the server. However, the various age-verification laws require stricter forms of age verification measures than a self-declaration. Our Safety team and DPO are evaluating options that preserve your privacy while satisfying the age verification requirements in the jurisdictions where we have users. As a free service, we also have to be mindful of the cost of age-verification compliance. Paying for a matrix.org &lt;a href=&quot;http:&#x2F;&#x2F;account.matrix.org&quot;&gt;Premium account&lt;&#x2F;a&gt; with a credit card is one approach which would verify your account and support our work. &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;homeserver&#x2F;pricing&#x2F;&quot;&gt;Premium accounts&lt;&#x2F;a&gt; are currently going through a phased roll out, so if you’re on an older account you might not see the option to convert your account yet, you can mail &lt;a href=&quot;mailto:billing-support@matrix.org&quot;&gt;billing-support@matrix.org&lt;&#x2F;a&gt; if you wish to be upgraded.&lt;&#x2F;p&gt;
&lt;p&gt;We also want to make it easy for users to move their account to another server with a feature called account portability. Account portability would give users more freedom to choose a server that matches their needs, and it would reduce the load on our matrix.org server. This takes significant work, but there should be some new Matrix Spec Change proposals (MSCs) in the coming weeks showing the direction of travel.&lt;&#x2F;p&gt;
&lt;p&gt;Finally: we’re painfully aware that none of the Matrix clients available today provide a full drop-in replacement for Discord yet. All the ingredients are there, and the initial goal for the project was always to provide a decentralised, secure, open platform where communities and organisations could communicate together. However, the reality is that the team at Element who originally created Matrix have had to focus on providing deployments for the public sector (see &lt;a href=&quot;https:&#x2F;&#x2F;www.euractiv.com&#x2F;news&#x2F;commission-trials-european-open-source-communications-software&#x2F;&quot;&gt;here&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;www.theregister.com&#x2F;2026&#x2F;02&#x2F;09&#x2F;matrix_element_secure_chat&#x2F;&quot;&gt;here&lt;&#x2F;a&gt;) to be able to pay developers working on Matrix. Some of the key features expected by Discord users have yet to be prioritised (game streaming, push-to-talk, voice channels, custom emoji, extensible presence, richer hierarchical moderation, etc). Meanwhile no other organisation stepped up to focus on the “communication tool for communities” use case and provide a production ready Discord alternative, but clients like &lt;a href=&quot;https:&#x2F;&#x2F;cinny.in&quot;&gt;Cinny&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;commet.chat&quot;&gt;Commet&lt;&#x2F;a&gt; may feel much closer to Discord. On the other hand, Matrix goes far beyond Discord in other areas: both messages, files and calls are end-to-end-encrypted; we have read receipts; Matrix is an open protocol everyone can extend, and in the end, most Matrix clients are open source; there is nothing stopping developers from starting their own project based on existing ones and adding the missing features themselves. They may even eventually get accepted in the original projects!&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, TL;DR: Welcome to everyone trying Matrix for the first time; please understand that public Matrix servers will also have to uphold age verification laws, as misguided as they might be. However, at least in Matrix you have the opportunity to run your own servers as you wish: we actively encourage you to make your own assessments and seek legal advice where needed.&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Matrix on Cloudflare Workers</title>
    <published>2026-01-28T01:00:00+00:00</published>
    <updated>2026-01-28T01:00:00+00:00</updated>
    <author>
      <name>Matthew Hodgson</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2026/01/28/matrix-on-cloudflare-workers/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2026/01/28/matrix-on-cloudflare-workers/</id>
    <content type="html">&lt;p&gt;There’s been a lot of attention over Cloudflare publishing a well-intentioned but rather flawed &lt;a href=&quot;https:&#x2F;&#x2F;blog.cloudflare.com&#x2F;serverless-matrix-homeserver-workers&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; demonstrating how one might go about running a Matrix server in TypeScript on Cloudflare Workers as a serverless architecture.&lt;&#x2F;p&gt;
&lt;p&gt;On the Matrix side, we’d like to welcome Cloudflare to the ecosystem anyway - we just wish it had been a smoother entrance! Thank you for building on Matrix. The good news is that the demo successfully serves its purpose to illustrate how Cloudflare Workers operate, and the code could certainly be used as the basis for a working server in future.  Meanwhile, there’s a whole host of other places where Matrix and Cloudflare could play nice together - e.g. &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;04&#x2F;12&#x2F;this-week-in-matrix-2024-04-12&#x2F;#matrix-dart-sdk-website&quot;&gt;td’s proof of concept&lt;&#x2F;a&gt; for using Cloudflare Calls as a MatrixRTC backend, and meanwhile Cloudflare’s CDN has been invaluable in protecting &lt;a href=&quot;http:&#x2F;&#x2F;matrix.org&quot;&gt;matrix.org&lt;&#x2F;a&gt;’s web traffic over the years.&lt;&#x2F;p&gt;
&lt;p&gt;We’re deeply flattered that a company with the size and reputation of Cloudflare is paying attention to Matrix and publishing implementations - and the post is a very cool demo, and does demonstrate effectively how you might go about implementing a Matrix server on Workers.  On the other hand, it’s unfortunate that the post severely overclaimed the scope of the project: to be clear, the code doesn’t yet implement any of Matrix’s core features which allow you to federate safely, and so doesn’t yet constitute a functional Matrix server, let alone a production-grade one which you should consider deploying.  It doesn’t model rooms as a replicated graph of events; it doesn’t check permissions or uphold power levels: it’s the equivalent of a filesystem which ignores permissions, or a blockchain which doesn’t implement a consensus mechanism.&lt;&#x2F;p&gt;
&lt;p&gt;Honestly, we feel a bit bad for the author: if you’re using an LLM to prototype an implementation of an unfamiliar protocol, you might not know where to check where the agent is overstating the truth - and you might not be aware how sensitive folks are to problems caused by overenthusiastic use of LLMs, especially if they have invested lots of time and effort into understanding and building functional Matrix implementations themselves.  And while some criticism is justified here, we’re not at all fans of the pile-on which has happened, and we sincerely hope the author can bounce back stronger from this.&lt;&#x2F;p&gt;
&lt;p&gt;Finally, it’s worth noting that The Matrix Foundation depends entirely on membership fees to fund our work to build out the missing communication layer of the open Web - a mission which is more important today than ever before.  And while the number of organisational members has doubled in the last year, the Foundation is not yet financially sustainable - seriously undermining our ability to fund work on improving the spec, improving our trust &amp;amp; safety tooling, or supporting and growing a healthy and broad Matrix ecosystem.  All it takes is for a few large organisations like Cloudflare who benefit from Matrix to &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;membership&#x2F;&quot;&gt;join the Foundation as members&lt;&#x2F;a&gt; and we will be able to accelerate once more - to the direct benefit of everyone in the ecosystem.  So, we sincerely hope that folks like Cloudflare who see the value in using Matrix to promote and power their products will consider joining up, and so help accelerate Matrix to the point that it can truly provide a mainstream alternative to the centralised incumbents.&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>The 2025 Matrix Holiday Special</title>
    <published>2025-12-24T18:00:00+00:00</published>
    <updated>2025-12-24T18:00:00+00:00</updated>
    <author>
      <name>Matthew Hodgson, Amandine Le Pape</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/12/24/matrix-holiday-special/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/12/24/matrix-holiday-special/</id>
    <content type="html">&lt;p&gt;Hi all,&lt;&#x2F;p&gt;
&lt;p&gt;2025 has been another bumper year for Matrix, and I’m happy to say that we’re ending it on a distinctly positive note.&lt;&#x2F;p&gt;
&lt;p&gt;Frankly, it feels like the gamble to secure the future of Matrix may be paying off.  We’re seeing more and more uptake of Matrix in the wild, especially in massive public sector deployments like ZenDiS’s &lt;a href=&quot;https:&#x2F;&#x2F;www.opendesk.eu&#x2F;en&#x2F;about&quot;&gt;openDesk&lt;&#x2F;a&gt; in Germany and the &lt;a href=&quot;https:&#x2F;&#x2F;mathstodon.xyz&#x2F;@Pol&#x2F;115173504011566267&quot;&gt;European Commission&lt;&#x2F;a&gt;; we’re now tracking over 25(!) countries who are actively deploying Matrix in order to maintain true digital sovereignty over their communication - and we’re at the point where dedicated Matrix vendors like Element are starting to get sustainable, allowing them in turn to contribute more to the Foundation and the development of the protocol and ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;On the other hand, the Foundation itself is still not independently sustainable yet: while memberships have doubled over the last year, work on independently safeguarding the core of the protocol (especially Trust &amp;amp; Safety, Security, Spec and Advocacy work) is painfully underfunded.  &lt;strong&gt;If your organisation (particularly public sector orgs, vendors and integrators) depends on Matrix, &lt;em&gt;please&lt;&#x2F;em&gt; &lt;a href=&quot;http:&#x2F;&#x2F;matrix.org&#x2F;membership&quot;&gt;join the Foundation&lt;&#x2F;a&gt; as a paying member to ensure it can thrive.&lt;&#x2F;strong&gt;  All it takes is a few more gold members and the Foundation will be able to actually accelerate rather than operating on a shoestring, and Matrix will improve for everyone as a result.  Huge thanks in particular go to DINUM and Rocket.Chat the largest Silver members who have joined the Foundation this year, Automattic&#x2F;Beeper and Gematik for renewing their, respectively, Gold and large Silver memberships - and thanks indeed to all our 20 &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;membership&#x2F;&quot;&gt;funding organisational members&lt;&#x2F;a&gt;. Meanwhile, we’ve also started experimenting with providing &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;06&#x2F;funding-homeserver-premium&#x2F;&quot;&gt;paid accounts&lt;&#x2F;a&gt; on the &lt;a href=&quot;http:&#x2F;&#x2F;Matrix.org&quot;&gt;Matrix.org&lt;&#x2F;a&gt; homeserver to try to cover the costs of running the homeserver.&lt;&#x2F;p&gt;
&lt;p&gt;Overall, 2025 has been a year of maturity.  Putting together the keynote for the 2025 Matrix Conference in Strasbourg was a real eyeopener - realising that on the clientside alone, Matrix now has mature independent implementations across &lt;a href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;2y8qtRLgalQ?list=PLl5dnxRMP1hUgnYEbpEsEEhIqY_KlO3NG&amp;amp;t=90&quot;&gt;pretty much every platform&lt;&#x2F;a&gt;.  On the serverside, things have moved on too - Synapse is more and more mature; Element launched &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;en&#x2F;server-suite&#x2F;community&quot;&gt;ESS Community&lt;&#x2F;a&gt; as a long-awaited official AGPL’d distribution of Synapse (complete with &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;element-admin&quot;&gt;Element Admin&lt;&#x2F;a&gt; as an official admin web interface - check out the &lt;a href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;TZgcdgv2NXk?list=PLl5dnxRMP1hUgnYEbpEsEEhIqY_KlO3NG&amp;amp;t=789&quot;&gt;speed run&lt;&#x2F;a&gt;!), and &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;en&#x2F;server-suite&#x2F;synapse-pro&quot;&gt;Synapse Pro&lt;&#x2F;a&gt; continues to add scalability and paid support for large deployments (alongside &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;en&#x2F;server-suite&#x2F;pro&quot;&gt;ESS Pro&lt;&#x2F;a&gt;, following the philosophy that features which empower end-users end up in FOSS but features which empower enterprises end up in Pro).  At the same time, the Conduit family of native-rust homeservers has continued to expand and accelerate - from &lt;a href=&quot;http:&#x2F;&#x2F;conduit.rs&quot;&gt;Conduit&lt;&#x2F;a&gt; to &lt;a href=&quot;https:&#x2F;&#x2F;continuwuity.org&#x2F;&quot;&gt;Continuwuity&lt;&#x2F;a&gt; to &lt;a href=&quot;https:&#x2F;&#x2F;grapevine.computer.surgery&#x2F;&quot;&gt;Grapevine&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-construct&#x2F;tuwunel&quot;&gt;Tuwunel&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;2025 is also the year that the &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;foundation&#x2F;governing-board&#x2F;&quot;&gt;Governing Board&lt;&#x2F;a&gt; really started to flourish as one of the main vehicles of open governance in Matrix, with 4 &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;foundation&#x2F;working-groups&#x2F;&quot;&gt;working groups&lt;&#x2F;a&gt; stepping up to take on critical tasks such as running The Matrix Conference, maintaining the &lt;a href=&quot;http:&#x2F;&#x2F;matrix.org&quot;&gt;matrix.org&lt;&#x2F;a&gt; website itself, and coordinating Trust &amp;amp; Safety work across the ecosystem, and more to come like the Matrix for Public Sector Working Group (to be published soon) and new ideas brewing like the Fundraising Working Group to support the fundraising effort of the Foundation. Don’t hesitate to pop up in the &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#foundation-office:matrix.org&quot;&gt;Office of the Foundation room&lt;&#x2F;a&gt; to express interest for a given WG or propose new ones! We &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;10&#x2F;farewell-robin&#x2F;&quot;&gt;bade farewell&lt;&#x2F;a&gt; to Robin as the inaugural Managing Director of the Foundation back in November, but their work operationalising the Foundation’s open governance is a fantastic legacy and unlocks a huge amount of momentum for Matrix.&lt;&#x2F;p&gt;
&lt;p&gt;Talking of which, &lt;a href=&quot;http:&#x2F;&#x2F;2025.matrix.org&quot;&gt;The Matrix Conference&lt;&#x2F;a&gt; itself was a great success this year, with incredible talks from across the whole ecosystem - especially highlighting all the Public Sector uptake Matrix is seeing in support of nations pursuing digital sovereignty.  The event itself was a real triumph of opening up the governance of Matrix via the Governing Board, with the Events Working Group organising the whole event and even turning a profit - not least due to the huge amounts of volunteering that the community stepped up to provide.  If you missed the talks, go check them out on &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLl5dnxRMP1hUgnYEbpEsEEhIqY_KlO3NG&quot;&gt;YouTube&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;media.ccc.de&#x2F;c&#x2F;matrix-conf-2025&quot;&gt;media.ccc.de&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Then on Matrix itself, we have had some major wins: the great &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;04&#x2F;morg-now-running-mas&#x2F;&quot;&gt;migration&lt;&#x2F;a&gt; to &lt;a href=&quot;https:&#x2F;&#x2F;areweoidcyet.com&quot;&gt;next generation auth via OpenID Connect&lt;&#x2F;a&gt; happened successfully (and indeed ended up shipping in Matrix 1.15, ahead of 2.0); we landed the first and most important phase of &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;08&#x2F;project-hydra-improving-state-res&#x2F;&quot;&gt;Project Hydra&lt;&#x2F;a&gt; in Room Version 12 to improve state resolution and reduce state resets (see &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=m_2ZBs_4RbE&quot;&gt;Kegan’s conference talk&lt;&#x2F;a&gt; for more); MatrixRTC has seen major improvements in the form of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;blob&#x2F;kegan&#x2F;persist-edu&#x2F;proposals&#x2F;4354-sticky-events.md&quot;&gt;Sticky Events&lt;&#x2F;a&gt; for simpler reliable signalling and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;blob&#x2F;toger5&#x2F;matrixRTC&#x2F;proposals&#x2F;4143-matrix-rtc.md#matrixrtc-slot-and-constraining-slots&quot;&gt;Slots&lt;&#x2F;a&gt; for improved permissions, which put it tantalisingly close to formally landing in the spec; and loads of MSCs from the wider community - including extensible profiles landing from Tom Foster in Matrix 1.16 via &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4133&quot;&gt;MSC4133&lt;&#x2F;a&gt;.  We’re still polishing the remaining MSCs slated for Matrix 2.0, but as soon as they’re ready we’ll finally pull the lever and bump the version number.  Finally, there has been major steps forward in improving the footprint of metadata that Matrix stores on servers - with an encrypted state event implementation landing in labs on Element Web via &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4362&quot;&gt;MSC4362&lt;&#x2F;a&gt;, and all the new MatrixRTC work being built to minimise serverside metadata.&lt;&#x2F;p&gt;
&lt;p&gt;It’s not been a perfect year though; Trust &amp;amp; Safety has been a &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;&quot;&gt;big focus&lt;&#x2F;a&gt; - although with the public release of &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;12&#x2F;policyserv&#x2F;&quot;&gt;policyserv&lt;&#x2F;a&gt; a few days ago, the ongoing collaboration with &lt;a href=&quot;https:&#x2F;&#x2F;roost.tools&#x2F;&quot;&gt;ROOST&lt;&#x2F;a&gt;, the &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;04&#x2F;introducing-policy-servers&#x2F;&quot;&gt;improvements earlier in the year&lt;&#x2F;a&gt;, and lots more work on cross-ecosystem collaboration with &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;the-draupnir-project&#x2F;Draupnir&quot;&gt;Draupnir&lt;&#x2F;a&gt; and the &lt;a href=&quot;https:&#x2F;&#x2F;the-draupnir-project.github.io&#x2F;draupnir-documentation&#x2F;moderator&#x2F;managing-policy-lists&quot;&gt;Community Moderation Effort&lt;&#x2F;a&gt;, we’ve certainly made some progress.  There is still much to be done though.  The painful truth of Trust &amp;amp; Safety is that &lt;strong&gt;it is the one thing which will determine the success or failure of Matrix in the long term&lt;&#x2F;strong&gt;.  One of the most dizzying realisations we ever had was back in 2016, when Matrix first started to get momentum and we realised that the actual long-term problem we had to solve was not decentralised communication, but instead empowering users and communities to protect themselves from abuse, spam, disinformation and propaganda… and effectively find a way to map real-life societal antiabuse mechanisms onto online communities.&lt;&#x2F;p&gt;
&lt;p&gt;We naively assumed that this would rapidly get solved given the attention it started to receive, but here we are 10 years later and if anything the Web has become more and more weaponized for information warfare since, especially in a world where LLMs can spew abuse at superhuman rates.  The good news is that folks like ROOST have recently appeared to work on this precise problem, and the Bluesky team are taking it seriously too with their composable moderation and user-selectable algorithmic feeds.  But the race is on to get to the point in Matrix where a full set of privacy-preserving decentralised reputation tools that users and communities can use to defend themselves are available in the protocol - letting users say “by default, please filter out invites and content from randoms (be they human or bot) who nobody vouches for in my community”.&lt;&#x2F;p&gt;
&lt;p&gt;We’ve also had our fair share of operational &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;07&#x2F;postgres-corruption-postmortem&#x2F;&quot;&gt;fun&lt;&#x2F;a&gt; &amp;amp; &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;10&#x2F;post-mortem&#x2F;&quot;&gt;games&lt;&#x2F;a&gt; with the &lt;a href=&quot;http:&#x2F;&#x2F;matrix.org&quot;&gt;matrix.org&lt;&#x2F;a&gt; homeserver, and seen &lt;a href=&quot;https:&#x2F;&#x2F;gist.github.com&#x2F;ara4n&#x2F;190ad712965d0f06e17f508d1a45b554&quot;&gt;a lot of frustration&lt;&#x2F;a&gt; at the speed of the transition to Matrix 2.0 - be that because the MSCs are still being finalised, or because some Element users are still stuck on the Classic app, unaware that Element X exists.&lt;&#x2F;p&gt;
&lt;p&gt;However, the reality is that the lived experience of Matrix today (at least for us!) is genuinely unrecognisably improved from even a few years ago. Unable to decrypt messages are massively reduced (assuming users don’t lose their recovery key or delete all their devices).  When using Element X, you get an app not just for tech-savvy people but for everyone, with super-glossy liquid glass UI on iOS26 and a &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=3Axa0Kw3XPI&quot;&gt;newly super-performant&lt;&#x2F;a&gt; app on Android; built on the super-stable Rust SDK with a beautiful event cache for offline support and message echoing&#x2F;queuing; complete now with threads and spaces (in labs), which &lt;a href=&quot;https:&#x2F;&#x2F;mastodon.matrix.org&#x2F;deck&#x2F;@Joseph_of_Earth@fosstodon.org&#x2F;115713412735285974&quot;&gt;is overall a genuine joy to use&lt;&#x2F;a&gt;.  Other clients building on rust-sdk like &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.gnome.org&#x2F;World&#x2F;fractal&quot;&gt;Fractal&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ulyssa&#x2F;iamb&quot;&gt;iamb&lt;&#x2F;a&gt; (and in the near future, &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;blog&#x2F;element-x-web-a-glimpse-into-the-future&#x2F;&quot;&gt;Element Web&lt;&#x2F;a&gt;) directly benefit from the same underlying engine - and meanwhile clients on other stacks like &lt;a href=&quot;https:&#x2F;&#x2F;fluffychat.im&#x2F;&quot;&gt;FluffyChat&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;trixnity.gitlab.io&#x2F;trixnity&#x2F;&quot;&gt;Trixnity&lt;&#x2F;a&gt; have been busy trailblazing too.  There may have been a lot of criticism over the last year, but we can’t help but feel that there have also been some huge steps forwards (perhaps making the remaining gaps all the more obvious). If you’re using Matrix today and enjoying it, please don’t take it for granted! Write a blog post, tell &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;twim-guide&#x2F;&quot;&gt;TWIM&lt;&#x2F;a&gt;, tell the world, tell us what we can improve, and don’t let the bad experiences drown out the positive ones.&lt;&#x2F;p&gt;
&lt;p&gt;Talking of remaining gaps: alas, they do exist.  Obvious ones include Synapse resource usage: while the Element team spiked out a demonstration of &lt;a href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;D5zAgVYBuGk?t=1851&quot;&gt;how Synapse could reduce its database usage by 100x&lt;&#x2F;a&gt; or so, they’ve been too busy with stuff like Hydra and other robustness work to go and make this a reality yet.  Another sore point is that Sliding Sync performance has in matrix-rust-sdk and Synapse regressed relative to the first implementations a few years ago, thanks to simplifications on the clientside to improve maintainability as well as changes on the server.  The sync performance is good, but it’s not the ~100ms “instant sync” that we had back in the &lt;a href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;eUPJ9zFV5IE?t=653&quot;&gt;first beta&lt;&#x2F;a&gt; at FOSDEM 2023, and it would be amazing to get back to that point.  Relatedly, the only other missing piece of the Sliding Sync puzzle in matrix-rust-sdk is ensuring that push notifications update the client’s event cache and application badge, so you don’t have to wait for the client to sync to read messages you were just pushed about. This work should now be unblocked by the latest event matrix-rust-sdk event cache improvements.&lt;&#x2F;p&gt;
&lt;p&gt;On the encryption side, we still have our work cut out for us.  While unable-to-decrypt messages have significantly improved (at least on synapse + matrix-rust-sdk and matrix-js-sdk clients), we still see a lot of users complaining that they can’t decrypt history due to losing their recovery key.  There’s a lot of work that could be done here: we’ve been experimenting with storing the recovery key in a WebAuthn Passkey and&#x2F;or hardware token, or simply deriving it clientside in the OIDC identity provider (if you trust the JavaScript the IdP serves you).  We also need to finish shipping the ability to share history when inviting users to a room via &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4268&quot;&gt;MSC4268&lt;&#x2F;a&gt;, and excluding untrusted devices by default via &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4153&quot;&gt;MSC4153&lt;&#x2F;a&gt; (planned for &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;blog&#x2F;verifying-your-devices-is-becoming-mandatory-2&#x2F;&quot;&gt;April 2026&lt;&#x2F;a&gt;).  Other big stuff that needs to be addressed includes finally imposing client-controlled group membership; progressing MLS as an alternative to Olm&#x2F;Megolm; progressing Post Quantum encryption (with or without MLS), and actually getting some kind of transitive trust in place rather than requiring all users having to explicitly verify each other out of band (heck, even PGP has transitive trust!).&lt;&#x2F;p&gt;
&lt;p&gt;Then, on the core protocol side, we have phase 2 and phase 3 of Hydra to progress: improving robustness further, and then introducing finality to avoid problems caused by backdating events. This should also (at last!) switch user IDs to be public keys as per &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4243&quot;&gt;MSC4243&lt;&#x2F;a&gt;, removing the final wrinkle from Matrix’s GDPR by eliminating directly identifiable personal information from matrix IDs, as well as paving the way towards long-awaited account portability.  Somewhat related to this, Element is still hopeful to do some very pragmatic &lt;a href=&quot;https:&#x2F;&#x2F;youtu.be&#x2F;2y8qtRLgalQ?list=PLl5dnxRMP1hUgnYEbpEsEEhIqY_KlO3NG&amp;amp;t=1590&quot;&gt;P2P Matrix&lt;&#x2F;a&gt; work in 2026, after an initial spike back in November - watch this space for details.&lt;&#x2F;p&gt;
&lt;p&gt;Finally on the clientside, we’re finally at the point where some of the auxiliary APIs are becoming the bottleneck. Having a standard way to query cross-server user directories or shared address books would be amazing, especially now we have extensible profiles in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4133&quot;&gt;MSC4133&lt;&#x2F;a&gt;. Likewise privacy-preserving contact lookup could be transformative for mainstream Matrix uptake.  There’s also a whole ocean of work to be done to improve how we integrate external apps into Matrix - be that via Widgets, or looking at recent developments in &lt;a href=&quot;https:&#x2F;&#x2F;webxdc.org&#x2F;&quot;&gt;WebXDC&lt;&#x2F;a&gt; and other initiatives.&lt;&#x2F;p&gt;
&lt;p&gt;Who knows which of these will actually happen in 2026! A lot of it depends on whether more organisations step up and put money behind by the bar by &lt;a href=&quot;http:&#x2F;&#x2F;matrix.org&#x2F;membership&quot;&gt;joining the Foundation&lt;&#x2F;a&gt; or help fund development. Needless to say, we will keep plugging away trying to fill the gaps whatever - but the question is one of speed: the more funding available, the faster it will happen.  For instance, I’m painfully aware that we’ve been aiming for decentralised accounts since, uh, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2015&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-special&#x2F;#epilogue&quot;&gt;2015&lt;&#x2F;a&gt;… but this just goes to show: if the Foundation is operating on a shoestring, then the juicier stuff gets starved out, to everyone’s detriment.&lt;&#x2F;p&gt;
&lt;p&gt;Anyway, things overall feel more positive than they have for years.  We’d like to massively thank the Foundation’s members, both individual and organisational, for helping get the Foundation spread its wings as far as it has - hopefully 2026 will be the year where we can truly fly!  Thanks also to the Governing Board and everyone contributing to the Working Groups for increasingly effectively sharing the load of pushing Matrix forwards: it’s great to see the fruits of open governance working out.  And finally: thanks to all the developers and users who continue to use and support Matrix.  The world needs secure, decentralised communication more than ever right now, and thank you for keeping the faith to make it happen via Matrix.&lt;&#x2F;p&gt;
&lt;p&gt;Happy holidays!&lt;&#x2F;p&gt;
&lt;p&gt;- Matthew &amp;amp; Amandine, on behalf of everyone working on Matrix.&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Project Hydra: Improving state resolution in Matrix</title>
    <published>2025-08-14T00:00:00+00:00</published>
    <updated>2025-08-14T00:00:00+00:00</updated>
    <author>
      <name>Kegan Dougal</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/08/project-hydra-improving-state-res/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/08/project-hydra-improving-state-res/</id>
    <content type="html">&lt;p&gt;Hi all,&lt;&#x2F;p&gt;
&lt;p&gt;On July 16th 2025 we issued a &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2025&#x2F;07&#x2F;security-predisclosure&#x2F;&quot;&gt;pre-disclosure&lt;&#x2F;a&gt; for vulnerabilities in the federation protocol, and &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2025&#x2F;08&#x2F;security-release&#x2F;&quot;&gt;announced new releases&lt;&#x2F;a&gt; of Matrix homeservers on Mon August 11. Today we are ending the embargo and disclosing the remaining MSCs. This post will go into more detail about the changes and what led up to them.&lt;&#x2F;p&gt;
&lt;p&gt;This project has the codename “Hydra” and is an ongoing exercise in improving the security of the federation protocol. Given the security-sensitive nature of this work, it was done under embargo by the backend team at Element, the Matrix.org Security Team, the Spec Core Team, alongside Timo Kösters (who privately reported a related vulnerability, helping jumpstart the project) and Florian Jacob (at Karlsruher Institut für Technologie). The work was subsequently shared, reviewed and MSC’d under embargo with maintainers of all known Matrix homeserver implementations which implement State Resolution 2.0 on June 13th, so they could prepare for the coordinated release on August 11. We have then given server admins 3 more days to upgrade before lifting the embargo and disclosing the vulnerability details here.&lt;&#x2F;p&gt;
&lt;p&gt;This entire process has been highly unusual for the ecosystem, and it’s unfortunate that we were unable to make these changes out in the open. Where possible, we moved to release redacted versions of the MSCs as soon as we were comfortable from a security perspective (e.g. releasing &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4289&quot;&gt;MSC4289&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4291&quot;&gt;MSC4291&lt;&#x2F;a&gt; ahead of time, with redacted sections). Furthermore, we’d like to apologise for the disruption in landing a new stable room version and specification release with immediate effect rather than allowing for a period of public review. Going forwards, normal MSC work will continue in public as it ever has, along with normal on-cycle specification releases.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;key-information&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#key-information&quot; aria-label=&quot;Anchor link for: key-information&quot;&gt;🔗&lt;&#x2F;a&gt;Key Information&lt;&#x2F;h2&gt;
&lt;p&gt;The MSCs added under embargo were:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4289&quot;&gt;MSC4289&lt;&#x2F;a&gt;: Explicitly privilege room creators&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4291&quot;&gt;MSC4291&lt;&#x2F;a&gt;: Room IDs as hashes of the create event, which resolves &lt;a href=&quot;https:&#x2F;&#x2F;www.cve.org&#x2F;CVERecord?id=CVE-2025-54315&quot;&gt;CVE-2025-54315&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4297&quot;&gt;MSC4297&lt;&#x2F;a&gt;: State Resolution v2.1, which resolves &lt;a href=&quot;https:&#x2F;&#x2F;www.cve.org&#x2F;CVERecord?id=CVE-2025-49090&quot;&gt;CVE-2025-49090&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4304&quot;&gt;MSC4304&lt;&#x2F;a&gt;: Room Version 12&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Supporting these MSCs are:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Server-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;complement&#x2F;blob&#x2F;dd9b896fead36504c97e35456fe3c0e09fc7328d&#x2F;tests&#x2F;v12_test.go&quot;&gt;Complement tests&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec&#x2F;pull&#x2F;2193&quot;&gt;The specification PR introducing room version 12&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;docs&#x2F;spec-guides&#x2F;state-res-2.1&#x2F;&quot;&gt;The implementor’s guide to State Res 2.1&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;docs&#x2F;spec-guides&#x2F;creator-power-level&#x2F;&quot;&gt;Creator power level in room version 12&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;These changes fixed the following vulnerabilities:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.cve.org&#x2F;CVERecord?id=CVE-2025-49090&quot;&gt;CVE-2025-49090&lt;&#x2F;a&gt;: The Matrix State Resolution algorithm before version 2.1 exhibits undesirable behavior in certain edge conditions, resulting in state resets: the scenario of a room&#x27;s state resetting to an earlier or incorrect state in the absence of revocation events that would validly result in that state. This allows a malicious participating homeserver to potentially corrupt a room&#x27;s state by sending a crafted sequence of Matrix events and API responses. Room version 12 resolves the issue by switching to State Resolution v2.1&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.cve.org&#x2F;CVERecord?id=CVE-2025-54315&quot;&gt;CVE-2025-54315&lt;&#x2F;a&gt;: Matrix rooms before version 12 do not strongly (i.e. cryptographically) enforce the uniqueness of a room&#x27;s creation event. While mitigating mechanisms exist which prevent exploitation of the issue in practice, this is a protocol soundness issue. Matrix room version 12 fixes this by making the room ID equal to the hash of the room&#x27;s creation event.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;impact&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#impact&quot; aria-label=&quot;Anchor link for: impact&quot;&gt;🔗&lt;&#x2F;a&gt;Impact&lt;&#x2F;h2&gt;
&lt;p&gt;These issues only affect servers which are federating with untrusted or potentially malicious servers, such as participating in the public Matrix network.  Servers which are not federated, or which federate in private trusted networks such as BwMessenger, Tchap or TI-Messenger are not affected.&lt;&#x2F;p&gt;
&lt;p&gt;The impact of these issues is rated as ‘high’ rather than ‘critical’ as they do not result in data compromise or exposure. Instead, the risk here is of a malicious homeserver operator corrupting the chatroom’s state by resetting it to a prior value (e.g. reverting access control or room membership to an earlier configuration). This does &lt;strong&gt;not&lt;&#x2F;strong&gt; expose conversation history nor any additional data.
We are not aware of these issues being exploited, but would recommend server admins to upgrade immediately if they are operating rooms with users participating from untrusted servers, as per &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2025&#x2F;08&#x2F;security-release&#x2F;&quot;&gt;Monday’s announcement&lt;&#x2F;a&gt;. Room admins should then upgrade such rooms to version 12 to guard against these attacks in future - see the &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;docs&#x2F;communities&#x2F;administration&#x2F;#room-upgrades&quot;&gt;new room upgrade guide&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;summary-of-changes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#summary-of-changes&quot; aria-label=&quot;Anchor link for: summary-of-changes&quot;&gt;🔗&lt;&#x2F;a&gt;Summary of changes&lt;&#x2F;h2&gt;
&lt;p&gt;This project has resulted in four new Matrix Spec Change proposals to the protocol. At high level, these are:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4289&quot;&gt;MSC4289&lt;&#x2F;a&gt;: “Explicitly privilege room creators”. This makes explicit the fact that room creators have &#x27;infinite&#x27; power level. The reason we&#x27;ve done this is because in practice the creator’s server can already effectively control a room by backdating events: access control requires a hierarchy, and the creator is at the top of this hierarchy.  This also adds the concept of multiple creators, to avoid control of rooms being centralised on a single server, and to support rooms where ownership genuinely needs to be shared between multiple users (e.g. DMs).  It’s worth noting this does &lt;em&gt;not&lt;&#x2F;em&gt; impact decentralisation – the creators can still sit on multiple servers, and the room itself is replicated equally over participating servers.  Instead, it’s just recognising that access control requires someone to be at the top of the hierarchy, and that person is the room creator.  Separately, we’re looking at approaches to prevent backdating in general by adding ‘finality’ to Matrix.&lt;&#x2F;p&gt;
&lt;p&gt;This MSC also solves the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec&#x2F;issues&#x2F;165&quot;&gt;age-old problem&lt;&#x2F;a&gt; where admins could lose control of their own rooms by promoting other users to admin or demoting themselves: now, the creator can always fix such situations. If creators go rogue or disappear, the solution is to establish a new creator by either upgrading the room or creating a new one. Given whoever upgrades a room becomes its new creator, we&#x27;ve changed the default power level needed to upgrade a room to be 150, referred to as &#x27;owner&#x27; power level. This allows the room creator to effectively delegate permission to upgrade the room (and so become the new creator) to specific admins by explicitly giving them power level 150.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4291&quot;&gt;MSC4291&lt;&#x2F;a&gt;: “Room IDs as hashes of the create event”. This changes the format of room IDs so that they are literally the same as the event ID of the create event. This is a precautionary measure to prevent a potential theoretical class of attacks where malicious server admins could try to introduce false m.room.create events into a room in order to hijack it.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4297&quot;&gt;MSC4297&lt;&#x2F;a&gt;: “State Resolution v2.1”.  This is an incremental change over the current State Resolution 2.0 algorithm, which protects against various classes of &#x27;state resets&#x27;, where delayed federation traffic could cause key-value state associated with a room to revert to an earlier state. This caused symptoms such as users being re-added into a room they have left, or the server no longer recognising users as being present in a room, or access control resetting to a previous state. The new algorithm works by changing the starting state on top of which conflicting events are replayed and it replays more events than previously (replaying not just the conflicted events but all the events in between any two conflicted events—the conflicted state subgraph). This fixes state resets observed in the rooms including: #rust, the Office of the Matrix.org Foundation, the TWIM room, Techlore and Furrytech.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4304&quot;&gt;MSC4304&lt;&#x2F;a&gt;: “Room Version 12”. This simply defines the combination of the previous 3 MSCs as room version 12.&lt;&#x2F;p&gt;
&lt;p&gt;For full technical details, please read the actual MSCs: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4289&quot;&gt;MSC4289&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4291&quot;&gt;MSC4291&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4297&quot;&gt;MSC4297&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4304&quot;&gt;MSC4304&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;history&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#history&quot; aria-label=&quot;Anchor link for: history&quot;&gt;🔗&lt;&#x2F;a&gt;History&lt;&#x2F;h2&gt;
&lt;p&gt;Matrix optimistically applies changes to room state without waiting for all servers to achieve consensus. This means that sometimes servers will update the room state (e.g. modify the room name) while concurrently, they lose their permission to set said room state (e.g. the user changing the room name is banned). When this happens, the room name change gets rolled back to its previous value. Counterintuitively this can happen even when there is no specific event that causes the user to lose their permission to set room state. This unexpected class of rollbacks is called a “state reset”.&lt;&#x2F;p&gt;
&lt;p&gt;Work on fixing known cases of state resets in the current State Resolution 2.0 algorithm began in 2022 when &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;DMRobertson&quot;&gt;David Robertson&lt;&#x2F;a&gt; on Element’s backend team investigated known occurrences of the problem that were happening on the public network. He made good progress on identifying the root causes of these occurrences, resulting in the State Resolution v2.1 algorithm. Unfortunately, &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2023&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-update-2023&#x2F;&quot;&gt;lack of funding&lt;&#x2F;a&gt; meant work had to be paused. (N.B. if your organisation is operationally dependent on Matrix’s security, &lt;strong&gt;please&lt;&#x2F;strong&gt; contribute financially by &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;support&#x2F;&quot;&gt;joining the Foundation as a member&lt;&#x2F;a&gt; in order to fund security work like this.)&lt;&#x2F;p&gt;
&lt;p&gt;The project was then resumed at the end of 2024 as part of a general security review by Element’s backend team and the Matrix Foundation security team which ultimately resulted in &lt;a href=&quot;http:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4297&quot;&gt;MSC4297&lt;&#x2F;a&gt;. Broadly speaking, State Resolution v2.1 makes two changes: it changes the starting state on top of which conflicting events are replayed and it replays more events than previously (replaying not just the conflicted events but all the events in between any two conflicted events—the &lt;em&gt;conflicted state subgraph&lt;&#x2F;em&gt;). This fixes state resets observed in public rooms including: #rust, the Office of the Matrix.org Foundation, the TWIM room, Techlore and Furrytech.&lt;&#x2F;p&gt;
&lt;p&gt;This work coincided with Timo Kösters highlighting an issue to &lt;a href=&quot;mailto:security@matrix.org&quot;&gt;security@matrix.org&lt;&#x2F;a&gt; that the room creator always has had complete power over the room and dominates other admins. This works even if the creator had left the room or gave away their admin permissions in the past. This spurred the creation of &lt;a href=&quot;http:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4289&quot;&gt;MSC4289&lt;&#x2F;a&gt; which formally acknowledges the power that creators have over every other member in the room. We’d like to thank Timo for reporting these points to &lt;a href=&quot;mailto:security@matrix.org&quot;&gt;security@matrix.org&lt;&#x2F;a&gt; and we will be adding him to the Security Hall of Fame.&lt;&#x2F;p&gt;
&lt;p&gt;The security review also brought to light another potentially serious vulnerability in the federation protocol. Our on-paper analysis suggested it may be possible to replace the create event in the room. If so, this would have grave consequences as all permissions in the room are derived from the create event.&lt;&#x2F;p&gt;
&lt;p&gt;However, when we tried to reproduce the vulnerability in real implementations we found that they were not vulnerable due to the way those implementations handled rejected events. Nevertheless, the protocol was missing a strong guarantee that there can never be multiple create events for the same room. This was sufficiently worrying as a soundness issue to warrant fixing, and so &lt;a href=&quot;http:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4291&quot;&gt;MSC4291&lt;&#x2F;a&gt; was created to guarantee that each room has exactly one immutable create event.&lt;&#x2F;p&gt;
&lt;p&gt;We took the unusual decision to embargo these MSCs due to risk of exploitation, taking each in turn:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4289&quot;&gt;MSC4289&lt;&#x2F;a&gt;: The risk of a room created by a user on a server that is no longer trusted, using their creator powers to disrupt the room&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4291&quot;&gt;MSC4291&lt;&#x2F;a&gt;: The risk of an unknown vector allowing multiple create events to be accepted into a room, allowing rooms to be taken over.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4297&quot;&gt;MSC4297&lt;&#x2F;a&gt;: The risk of manipulation of the federation re-sync mechanism allowing state resets to be intentionally triggered.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;These MSCs were reviewed under embargo by the SCT and server implementors, and passed final comment period for merge. These MSCs are bundled up into &lt;a href=&quot;https:&#x2F;&#x2F;spec.matrix.org&#x2F;unstable&#x2F;rooms&#x2F;v12&#x2F;&quot;&gt;room version 12&lt;&#x2F;a&gt;, expected to be released formally in Matrix 1.16 later this month.&lt;&#x2F;p&gt;
&lt;p&gt;This work fixes the most common set of state resets we’ve seen in the wild, although we’re continuing work on Hydra. We’ll be doing as much of this work as possible in the open to minimise any future embargoes. We’d like to thank all the server implementors (&lt;a href=&quot;https:&#x2F;&#x2F;conduit.rs&#x2F;&quot;&gt;Conduit&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;continuwuity.org&#x2F;&quot;&gt;Continuwuity&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.ejabberd.im&#x2F;index.html&quot;&gt;ejabberd&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;element-hq.github.io&#x2F;dendrite&#x2F;&quot;&gt;Dendrite&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.rocket.chat&#x2F;&quot;&gt;Rocket.chat&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;synapse&quot;&gt;Synapse&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;server-suite&#x2F;synapse-pro&quot;&gt;Synapse Pro&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-construct&#x2F;tuwunel&quot;&gt;Tuwunel&lt;&#x2F;a&gt;) who took the time to make these changes at such short notice.&lt;&#x2F;p&gt;
&lt;p&gt;We’d also like to thank the client&#x2F;bot&#x2F;bridge implementors for accommodating the client-side breaking changes introduced in room version 12, particularly around the new power level semantics and room ID format change.&lt;&#x2F;p&gt;
&lt;p&gt;Finally, we’d like to thank the community at large, particularly those who have been disrupted and have had to upgrade rooms in response to this work. Thanks all for your patience, and we look forward to a talk all about this at the &lt;a href=&quot;https:&#x2F;&#x2F;conference.matrix.org&#x2F;&quot;&gt;Matrix Conference&lt;&#x2F;a&gt; in October!&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>How we discovered, and recovered from, Postgres corruption on the matrix.org homeserver</title>
    <published>2025-07-23T00:00:00+00:00</published>
    <updated>2025-07-23T00:00:00+00:00</updated>
    <author>
      <name>Richard van der Hoff</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/07/postgres-corruption-postmortem/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/07/postgres-corruption-postmortem/</id>
    <content type="html">&lt;p&gt;Greetings from Element&#x27;s backend&#x2F;SRE team, who run the &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;homeserver&#x2F;&quot;&gt;&lt;code&gt;matrix.org&lt;&#x2F;code&gt; homeserver&lt;&#x2F;a&gt; on behalf of the Matrix.org Foundation.&lt;&#x2F;p&gt;
&lt;p&gt;Recently users of the &lt;code&gt;matrix.org&lt;&#x2F;code&gt; homeserver began &lt;a href=&quot;https:&#x2F;&#x2F;status.matrix.org&#x2F;incidents&#x2F;8gljb3gtlv11&quot;&gt;seeing problems where rooms would simply stop working&lt;&#x2F;a&gt;. Operations such as sending a new message, or joining the room as a new member, would fail for mysterious reasons. Where an error message was shown at all, it tended to be something cryptic like &quot;No create event in auth events&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;After a couple of weeks of hard work by a team of Element staff including backend developers and systems engineers, we were able to repair almost all of the affected rooms. Although we&#x27;re still investigating exactly what went wrong and checking that everything is now working as it should, we&#x27;d like to share some details about what we know and the work we&#x27;ve done to date.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ll be diving into some quite technical details. Hopefully you&#x27;ll find it interesting learning a bit about how Synapse works, how Postgres works, and the work we sometimes find ourselves doing to keep the &lt;code&gt;matrix.org&lt;&#x2F;code&gt; homeserver running.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;tl-dr&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#tl-dr&quot; aria-label=&quot;Anchor link for: tl-dr&quot;&gt;🔗&lt;&#x2F;a&gt;TL;DR&lt;&#x2F;h2&gt;
&lt;p&gt;Let&#x27;s start with a high-level summary.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;code&gt;matrix.org&lt;&#x2F;code&gt; homeserver is backed by a large PostgreSQL database instance. Parts of an index on one of tables in this database had become corrupted. We are unsure exactly what caused this corruption, but believe it happened at least a year ago, and likely significantly longer.&lt;&#x2F;p&gt;
&lt;p&gt;The nature of this corruption was such that it had little or no effect at first. However, a background maintenance task which removes old, unreferenced data from this table recently started working on the corrupted region. Due to the corrupt index, the maintenance task incorrectly removed &lt;em&gt;active&lt;&#x2F;em&gt; data from the table, in effect corrupting rooms.&lt;&#x2F;p&gt;
&lt;p&gt;Having identified the problem, we rebuilt the corrupted index, and then restored the data that had been incorrectly removed, from database backups.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;initial-investigations-or-what-exactly-is-a-state-group&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#initial-investigations-or-what-exactly-is-a-state-group&quot; aria-label=&quot;Anchor link for: initial-investigations-or-what-exactly-is-a-state-group&quot;&gt;🔗&lt;&#x2F;a&gt;Initial investigations, or &quot;what exactly is a state group?&quot;&lt;&#x2F;h2&gt;
&lt;p&gt;We were first alerted to the problem via a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;synapse&#x2F;issues&#x2F;18606&quot;&gt;bug report&lt;&#x2F;a&gt; from a user, and similar reports in public Matrix rooms and other social media. As more anecdotal reports came in, we started to investigate what was going on.&lt;&#x2F;p&gt;
&lt;p&gt;To understand what we found, you&#x27;ll need to understand what we mean by a &quot;state group&quot;.&lt;&#x2F;p&gt;
&lt;p&gt;As most readers probably know, Matrix allows applications to associate &quot;state&quot; with a room. In contrast to &quot;message&quot; events which are normal messages that fit at one particular point in the timeline, state sticks around, visible to all, until it is replaced. One example of state is a user&#x27;s room membership — whether or not they are currently a member of that room. Another example is &lt;code&gt;m.room.name&lt;&#x2F;code&gt;, which, as the name implies, holds the room&#x27;s name.&lt;&#x2F;p&gt;
&lt;p&gt;Yet another type of state is the &quot;create event&quot;: this is the very first event that happened in a room. The create event is somewhat special in that it can never be changed, but we still always expect it to be part of the room state.&lt;&#x2F;p&gt;
&lt;p&gt;Obviously, the state of a room changes over time. What may be less obvious is that a homeserver often needs to know what the state of a room was at some point in the past, to answer questions such as &quot;should this user be allowed to see this event&quot; or &quot;should I accept this event that has been sent to me over federation from another homeserver&quot;. Whilst in theory we could figure out what the state was at any given point in history by replaying each event that happened in the room before that point, that would be extremely computationally intensive. So in practice, homeservers end up storing what amounts to a snapshot of the room state at each historical event.&lt;&#x2F;p&gt;
&lt;p&gt;Of course, regular events don&#x27;t change the state of the room, so there is no point actually storing the state at each of those events. So, at last we can understand what a &quot;state group&quot; is: Synapse groups together a set of events in a given room, where the state in that room remained unchanged. In other words, a run of &lt;code&gt;m.room.message&lt;&#x2F;code&gt; events (normal room messages) will likely all share the same &quot;state group&quot;. Once somebody changes the room state (for example, by joining the room), we&#x27;ll start a new state group, and subsequent events will be part of that new state group.&lt;&#x2F;p&gt;
&lt;p&gt;The diagram below illustrates this. Blue creates a new room, and Yellow joins. The first few events each change the state of the room, meaning that each new event goes into a new state group. But events &lt;code&gt;F&lt;&#x2F;code&gt; and &lt;code&gt;G&lt;&#x2F;code&gt; are regular messages, meaning they don&#x27;t change the state of the room. The room state after each of events &lt;code&gt;E&lt;&#x2F;code&gt;, &lt;code&gt;F&lt;&#x2F;code&gt; and &lt;code&gt;G&lt;&#x2F;code&gt; is the same, so they can all be in state group 5.&lt;&#x2F;p&gt;
&lt;p&gt;Things get a bit more complicated at &lt;code&gt;H&lt;&#x2F;code&gt; and &lt;code&gt;I&lt;&#x2F;code&gt;: both Yellow and Blue try to change the name at the same time, so the state after &lt;code&gt;H&lt;&#x2F;code&gt; includes &lt;code&gt;H&lt;&#x2F;code&gt; and the state after &lt;code&gt;I&lt;&#x2F;code&gt; includes &lt;code&gt;I&lt;&#x2F;code&gt;. The state resolution algorithm determines that &lt;code&gt;I&lt;&#x2F;code&gt; ends up &quot;winning&quot;, so the state after &lt;code&gt;J&lt;&#x2F;code&gt; includes &lt;code&gt;I&lt;&#x2F;code&gt; and not &lt;code&gt;H&lt;&#x2F;code&gt;, meaning that &lt;code&gt;J&lt;&#x2F;code&gt; (and &lt;code&gt;K&lt;&#x2F;code&gt;) can share state group 7 with &lt;code&gt;I&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;blog&#x2F;img&#x2F;stategroups.png&quot; alt=&quot;State-groups diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Now, when we started investigating the rooms where people had reported problems, we found clear signs of corrupted state groups. For example, the state in some of the state groups in affected rooms was completely empty. As I said earlier, the room&#x27;s create event is always part of the state of a room, and it can never change, so finding state groups whose state does not at least include a create event was a big red flag.&lt;&#x2F;p&gt;
&lt;p&gt;This also gives a clue to the meaning of that error I mentioned earlier: when we decide whether to accept an event into the room, we check the state of the room. One of the things we check for is the presence of a create event: &quot;No create event in auth events&quot; means Synapse rejected the new event because there was no create event in the room state.&lt;&#x2F;p&gt;
&lt;p&gt;There&#x27;s one more wrinkle we&#x27;ll need to understand about state groups. As you can see in the diagram above, most state groups only differ very slightly (typically by a single piece of state) from the previous state group in the same room. Storing a complete snapshot of the state every time the state in a room changes would be very expensive in terms of storage. So instead, Synapse normally just stores the difference from an earlier state group; then, to stop lookups becoming too expensive, we store a complete snapshot every 100 state groups or so.&lt;&#x2F;p&gt;
&lt;p&gt;Again, you can see that &quot;compression&quot; technique at play in the diagram above. Most state groups have a grey arrow representing the link to the previous state group, meaning that each state group only needs to store the delta from the previous state group (shown in bold whilst those states implied by the &quot;previous&quot; link are greyed out). State groups 1 and 8 are stored as complete snapshots.&lt;&#x2F;p&gt;
&lt;p&gt;Synapse stores all this data in its database: the &lt;code&gt;event_to_state_groups&lt;&#x2F;code&gt; table tells us which state group each event is in, &lt;code&gt;state_groups_state&lt;&#x2F;code&gt; stores the actual state snapshot or delta for that state group, and &lt;code&gt;state_group_edges&lt;&#x2F;code&gt; gives us the previous state group for delta-stored state groups.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-hunt-for-suspects&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-hunt-for-suspects&quot; aria-label=&quot;Anchor link for: the-hunt-for-suspects&quot;&gt;🔗&lt;&#x2F;a&gt;The hunt for suspects&lt;&#x2F;h2&gt;
&lt;p&gt;Thanks to the way Matrix works, once Synapse has created a state group, we very rarely ever have to change it. (If more events arrive, they may be assigned to an existing state group, but the state group itself, and the room state for that state group, remain unchanged). The only exceptions are:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;rust-synapse-compress-state&quot;&gt;state compressor&lt;&#x2F;a&gt;, which rewrites state groups so that they can be stored more efficiently.&lt;&#x2F;li&gt;
&lt;li&gt;purge operations, where all or part of a room&#x27;s history is removed from the database, making the corresponding state groups redundant.&lt;&#x2F;li&gt;
&lt;li&gt;a cleanup job which removes state groups which were created but never used.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;... and of course, the creation of the state group in the first place.&lt;&#x2F;p&gt;
&lt;p&gt;At least that gave us a place to start looking, but since we hadn&#x27;t made any changes to those areas of the code recently, we were still at a bit of a loss.&lt;&#x2F;p&gt;
&lt;p&gt;The state compressor was easy to rule out, at least, since it runs as a separate process and we were certain it wasn&#x27;t running on &lt;code&gt;matrix.org&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;As a precaution, we temporarily disabled the cleanup job that removes redundant state groups. We couldn&#x27;t figure out how it could cause the problem, but better safe than sorry, and disabling it would just mean we used a bit more disk space for a while.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;more-evidence-comes-to-light&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#more-evidence-comes-to-light&quot; aria-label=&quot;Anchor link for: more-evidence-comes-to-light&quot;&gt;🔗&lt;&#x2F;a&gt;More evidence comes to light&lt;&#x2F;h2&gt;
&lt;p&gt;Our next step was to try and figure out when the problem started. Searching the logs for one Synapse process gave some clear, and worrying, results:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;2025-06-24: 0 results for “No create event”&lt;&#x2F;li&gt;
&lt;li&gt;2025-06-25: 0 results for “No create event”&lt;&#x2F;li&gt;
&lt;li&gt;2025-06-26: 0 results for “No create event”&lt;&#x2F;li&gt;
&lt;li&gt;2025-06-27: 48 results for “No create event”&lt;&#x2F;li&gt;
&lt;li&gt;2025-06-28: 1100 results for “No create event”&lt;&#x2F;li&gt;
&lt;li&gt;2025-06-29: 3610 results for “No create event”&lt;&#x2F;li&gt;
&lt;li&gt;2025-06-30: 6902 results for “No create event”&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;So, we double-checked for changes that had been made around 27th June, and still didn&#x27;t find anything. We considered rolling back Synapse to an older version, but since we couldn&#x27;t figure out what had changed, we didn&#x27;t know how far we would have to roll back.&lt;&#x2F;p&gt;
&lt;p&gt;What&#x27;s more, we found state groups that must have been fine initially (say, on 2025-06-29) were now corrupt: in other words, this confirmed that the problem wasn&#x27;t that we were creating new, invalid state groups, but there was a process somewhere in the system that was corrupting &lt;em&gt;existing&lt;&#x2F;em&gt; state groups.&lt;&#x2F;p&gt;
&lt;p&gt;The diagram below illustrates the problem. The state in state group 4 has been corrupted, meaning that that state group (and state groups 5, 6, and 7 which all reference it) are now missing an important part of the room state, and events will not be authorised.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;blog&#x2F;img&#x2F;stategroups-borked.png&quot; alt=&quot;Broken state-groups diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;some-remedial-steps&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#some-remedial-steps&quot; aria-label=&quot;Anchor link for: some-remedial-steps&quot;&gt;🔗&lt;&#x2F;a&gt;Some remedial steps&lt;&#x2F;h2&gt;
&lt;p&gt;Now that we knew we were dealing with data loss, it seemed likely that we would need to restore data from backup, so started the process of restoring the database backup from 26th June into a new Postgres instance hosted in Amazon EC2. The restore process takes several hours, so we wanted to get it started. On the other hand, it would leave the Matrix Foundation an EC2 bill of hundreds of USD per day for an EC2 instance large enough to host the database!&lt;&#x2F;p&gt;
&lt;p&gt;We also set up a guard against further corruption: we &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;synapse&#x2F;blob&#x2F;64126ac9797895ce24734b4093cb849b4f9c5468&#x2F;synapse&#x2F;storage&#x2F;schema&#x2F;state&#x2F;delta&#x2F;92&#x2F;08_no_empty_state_groups.sql.postgres&quot;&gt;added&lt;&#x2F;a&gt; a Postgres &quot;constraint&quot; which would reject any SQL queries which attempted to delete the state from a state group while that state group was still in use.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-culprit-emerges&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#a-culprit-emerges&quot; aria-label=&quot;Anchor link for: a-culprit-emerges&quot;&gt;🔗&lt;&#x2F;a&gt;A culprit emerges&lt;&#x2F;h2&gt;
&lt;p&gt;By this point, it was the morning of 3rd July. The cleanup job had been disabled for 24 hours, and we hadn&#x27;t seen any further corruption. Now that we had the protective constraint in place, we decided to re-enable the cleanup job, and see what happened. Almost immediately, we could see that the cleanup job was hitting the constraint. From the Postgres logs:&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;code&gt;&lt;span&gt;2025-07-03 12:30:38.250 UTC [matrix background_worker1] ERROR: Deleting state_groups_state row when it still exists in state_groups_edges: prev_state_group = 963361509
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;... meaning it was trying to delete the state for state group &lt;code&gt;963361509&lt;&#x2F;code&gt; while that state group was still in use. The Synapse logs, meanwhile, suggested it was actually trying to delete completely different state groups. Was it a bug in Synapse? Or the &lt;a href=&quot;https:&#x2F;&#x2F;pypi.org&#x2F;project&#x2F;psycopg2&#x2F;&quot;&gt;Python Postgres driver&lt;&#x2F;a&gt;?&lt;&#x2F;p&gt;
&lt;p&gt;We spent a while narrowing down the problem, even resorting to &lt;a href=&quot;https:&#x2F;&#x2F;www.tcpdump.org&#x2F;&quot;&gt;tcpdump&lt;&#x2F;a&gt; to see what was happening between Synapse and the database. With &lt;code&gt;tcpdump&lt;&#x2F;code&gt;, we could see &lt;code&gt;DELETE&lt;&#x2F;code&gt; queries being made, but none which would affect state group &lt;code&gt;963361509&lt;&#x2F;code&gt;. Maybe this was actually a bug in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;postgresml&#x2F;pgcat&quot;&gt;PgCat&lt;&#x2F;a&gt;, which we use to pool Postgres connections? Or even in Postgres itself?&lt;&#x2F;p&gt;
&lt;p&gt;We tried replaying the query that &lt;code&gt;tcpdump&lt;&#x2F;code&gt; had captured. Here&#x27;s a screenshot from our ops room:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;blog&#x2F;img&#x2F;oh-wow.png&quot; alt=&quot;A transcript from our ops room, in which Erik notes that a DELETE query deletes different rows, and everyone else expresses astonishment&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Oh wow indeed. That shouldn&#x27;t happen. We narrowed the problem down to one particular state group: &lt;code&gt;483128098&lt;&#x2F;code&gt;. What happens if we just try and read that state group from the database?&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;code&gt;&lt;span&gt;matrix=&amp;gt; SELECT state_group, room_id FROM state_groups_state WHERE state_group = 483128098;
&lt;&#x2F;span&gt;&lt;span&gt;state_group |            room_id
&lt;&#x2F;span&gt;&lt;span&gt;------------+----------------------------------------
&lt;&#x2F;span&gt;&lt;span&gt;  483128098 | !XtFbidoIcAVPuQtXcG:matrix.org
&lt;&#x2F;span&gt;&lt;span&gt;  963361875 | !IvVovpFpWhKsKMCGCO:irc.snt.utwente.nl
&lt;&#x2F;span&gt;&lt;span&gt;  483128098 | !XtFbidoIcAVPuQtXcG:matrix.org
&lt;&#x2F;span&gt;&lt;span&gt;(3 rows)
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Oh dear. Once your database starts returning nonsense results, you&#x27;re going to be in for a bad time.&lt;&#x2F;p&gt;
&lt;p&gt;What it meant here was that, although the cleanup job was (correctly) trying to clean up state group &lt;code&gt;483128098&lt;&#x2F;code&gt;, Postgres would &lt;em&gt;also&lt;&#x2F;em&gt; delete the data for state group &lt;code&gt;963361875&lt;&#x2F;code&gt;. Suddenly things started to make sense: rooms were getting corrupted by cleanup jobs for &lt;em&gt;completely unrelated&lt;&#x2F;em&gt; rooms.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve encountered Postgres index corruption &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;synapse&#x2F;issues&#x2F;6696&quot;&gt;before&lt;&#x2F;a&gt;, and this matched the symptoms perfectly. In short: the index entries for state group &lt;code&gt;483128098&lt;&#x2F;code&gt; point to the wrong place in the main table data (the &quot;heap&quot;). So, if we did a query that Postgres could answer by &lt;em&gt;just&lt;&#x2F;em&gt; looking at the index, we&#x27;d get plausible-looking results:&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;code&gt;&lt;span&gt;matrix=&amp;gt; SELECT state_group, type FROM state_groups_state WHERE state_group = 483128098;
&lt;&#x2F;span&gt;&lt;span&gt;state_group | type
&lt;&#x2F;span&gt;&lt;span&gt;------------+--------------
&lt;&#x2F;span&gt;&lt;span&gt;  483128098 | m.room.member
&lt;&#x2F;span&gt;&lt;span&gt;  483128098 | m.room.member
&lt;&#x2F;span&gt;&lt;span&gt;  483128098 | m.room.member
&lt;&#x2F;span&gt;&lt;span&gt;(3 rows)
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;... but as soon as Postgres had to look at the heap, it would return nonsense, as above.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;give-it-to-me-straight-doc&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#give-it-to-me-straight-doc&quot; aria-label=&quot;Anchor link for: give-it-to-me-straight-doc&quot;&gt;🔗&lt;&#x2F;a&gt;Give it to me straight, doc&lt;&#x2F;h2&gt;
&lt;p&gt;The good news, such as it was, was that we could now be reasonably certain that other homeservers would not be affected: this was data corruption on the &lt;code&gt;matrix.org&lt;&#x2F;code&gt; Postgres instance.&lt;&#x2F;p&gt;
&lt;p&gt;On the other hand, we had no idea how extensive the corruption was, when it had happened, or if it was still happening.&lt;&#x2F;p&gt;
&lt;p&gt;We did several things to try to assess the damage.&lt;&#x2F;p&gt;
&lt;p&gt;The first thing to check was whether both Postgres instances had the same problem. (We replicate all our data to a warm standby server using &lt;a href=&quot;https:&#x2F;&#x2F;www.postgresql.org&#x2F;docs&#x2F;current&#x2F;warm-standby.html#STREAMING-REPLICATION&quot;&gt;streaming replication&lt;&#x2F;a&gt; so that we can fail over rapidly in the event of a hardware failure.) As far as we could tell, both servers had identical corruption.&lt;&#x2F;p&gt;
&lt;p&gt;Secondly, we wrote a script which sampled the &lt;code&gt;state_groups_state&lt;&#x2F;code&gt; table to look for corruption. It told us that the problem was worryingly large: millions of state groups were affected. But for some reason, it only seemed to affect state groups in the range 147M - 541M. (State group 541M was created in January 2021. As of July 2025, we&#x27;re now up to 1040M.)&lt;&#x2F;p&gt;
&lt;p&gt;We also ran &lt;a href=&quot;https:&#x2F;&#x2F;www.postgresql.org&#x2F;docs&#x2F;current&#x2F;app-pgamcheck.html&quot;&gt;pg_amcheck&lt;&#x2F;a&gt; on the affected index. This is a tool that forms part of the Postgres distribution, and it checks for inconsistencies in all or part of a database. It took a while, but didn&#x27;t return any problems. This mostly told us that &lt;code&gt;amcheck&lt;&#x2F;code&gt; couldn&#x27;t detect this sort of corruption, but one thing it checks is that all rows in the table also appear in the index; so now we knew that we weren&#x27;t &lt;em&gt;missing&lt;&#x2F;em&gt; any index rows — we just had &lt;em&gt;extra&lt;&#x2F;em&gt; ones.&lt;&#x2F;p&gt;
&lt;p&gt;Meanwhile, we tried &lt;a href=&quot;https:&#x2F;&#x2F;www.postgresql.org&#x2F;message-id&#x2F;flat&#x2F;CAPo1J60Vcu%2B5G0EvvAZtYgTn6U6ADij3aVJ8WFVz77jP%2BBd_Tw%40mail.gmail.com&quot;&gt;reaching out&lt;&#x2F;a&gt; to the helpful folks on the &lt;code&gt;pgsql-general&lt;&#x2F;code&gt; mailing list. We figured if anyone knew what could have caused this, they would.&lt;&#x2F;p&gt;
&lt;p&gt;The final thing we did at this point was to take a look at the actual index data with &lt;a href=&quot;https:&#x2F;&#x2F;www.postgresql.org&#x2F;docs&#x2F;current&#x2F;pageinspect.html&quot;&gt;pageinspect&lt;&#x2F;a&gt;, to see if there were any clues there. It didn&#x27;t really tell us anything we didn&#x27;t already know (i.e., that the index rows were pointing at the wrong place in the heap), but it was interesting to check out the structure of the index.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-deeper-dive-into-postgres-indexes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#a-deeper-dive-into-postgres-indexes&quot; aria-label=&quot;Anchor link for: a-deeper-dive-into-postgres-indexes&quot;&gt;🔗&lt;&#x2F;a&gt;A deeper dive into Postgres indexes&lt;&#x2F;h2&gt;
&lt;p&gt;On the morning of 4th July, our backup from 26th June at last finished restoring. That meant two things: first, we could check if it had the same index corruption as our primary and secondary servers (it did), and secondly, we could start to think about how to repair the damage.&lt;&#x2F;p&gt;
&lt;p&gt;We noticed something else interesting, though. On the production servers, some index entries pointed to state groups which didn&#x27;t yet exist on 26th June:&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;code&gt;&lt;span&gt;-- On the production database
&lt;&#x2F;span&gt;&lt;span&gt;matrix=&amp;gt; SELECT state_group, type, ctid FROM state_groups_state WHERE state_group = 353864583;
&lt;&#x2F;span&gt;&lt;span&gt; state_group |           type            |      ctid      
&lt;&#x2F;span&gt;&lt;span&gt;-------------+---------------------------+----------------
&lt;&#x2F;span&gt;&lt;span&gt;   353864583 | m.room.member             | (39060361,12)
&lt;&#x2F;span&gt;&lt;span&gt;  1034753774 | m.room.member             | (264925234,54)
&lt;&#x2F;span&gt;&lt;span&gt;  1034753810 | im.vector.modular.widgets | (264925240,54)
&lt;&#x2F;span&gt;&lt;span&gt;  1034753803 | m.room.member             | (264925252,54)
&lt;&#x2F;span&gt;&lt;span&gt;  1034753803 | m.room.member             | (264925252,55)
&lt;&#x2F;span&gt;&lt;span&gt;(5 rows)
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;(&lt;code&gt;ctid&lt;&#x2F;code&gt;, or &quot;current tuple ID&quot; is Postgres&#x27;s internal identifier for a row in a table: the format is a &lt;a href=&quot;https:&#x2F;&#x2F;www.postgresql.org&#x2F;docs&#x2F;current&#x2F;storage-page-layout.html&quot;&gt;page&lt;&#x2F;a&gt; number, followed by an offset within that page. We&#x27;ll return to &lt;code&gt;ctid&lt;&#x2F;code&gt;s in a minute.)&lt;&#x2F;p&gt;
&lt;p&gt;Those state groups (&lt;code&gt;1034753774&lt;&#x2F;code&gt; etc.) were only created on 3rd July, so clearly the backup will look different. Indeed:&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;code&gt;&lt;span&gt;-- On the restored backup
&lt;&#x2F;span&gt;&lt;span&gt;matrix=# SELECT state_group, type, ctid FROM state_groups_state WHERE state_group = 353864583;
&lt;&#x2F;span&gt;&lt;span&gt; state_group |     type      |     ctid      
&lt;&#x2F;span&gt;&lt;span&gt;-------------+---------------+---------------
&lt;&#x2F;span&gt;&lt;span&gt;   353864583 | m.room.member | (39060361,12)
&lt;&#x2F;span&gt;&lt;span&gt;(1 row)
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Did that mean that the corruption was ongoing? Time for another look with &lt;code&gt;pageinspect&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;As with most Postgres indexes, this one is a &lt;a href=&quot;https:&#x2F;&#x2F;www.postgresql.org&#x2F;docs&#x2F;current&#x2F;indexes-types.html#INDEXES-TYPES-BTREE&quot;&gt;B-Tree&lt;&#x2F;a&gt;. To find a specific entry, you start at the &quot;root&quot; of the tree (a single page which covers the whole table, but with very coarse index entries: there might be one sub-page for all the A&#x27;s, for example, and another for all the B&#x27;s), and work down the tree until you get to the right &quot;leaf&quot; page.&lt;&#x2F;p&gt;
&lt;p&gt;On our restored backup, we manually walked the tree to find the leaf index pages for state group &lt;code&gt;353864583&lt;&#x2F;code&gt;. Turned out, there were several pages of entries: it seems like, at some point in the past, this state group had lots of state associated with it. Anyway, the interesting page was this:&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;code&gt;&lt;span&gt;-- On the restored backup
&lt;&#x2F;span&gt;&lt;span&gt;matrix=# select ctid, left(data, 77) as data from bt_page_items(&amp;#39;state_groups_state_type_idx&amp;#39;, 192904826);
&lt;&#x2F;span&gt;&lt;span&gt;      ctid      |                                     data                                      
&lt;&#x2F;span&gt;&lt;span&gt;----------------+-------------------------------------------------------------------------------
&lt;&#x2F;span&gt;&lt;span&gt; (264925236,41) | 87 8b 17 15 00 00 00 00 1d 6d 2e 72 6f 6f 6d 2e 6d 65 6d 62 65 72 35 40 66 72
&lt;&#x2F;span&gt;&lt;span&gt; (264925234,54) | 87 8b 17 15 00 00 00 00 1d 6d 2e 72 6f 6f 6d 2e 6d 65 6d 62 65 72 4b 40 66 72
&lt;&#x2F;span&gt;&lt;span&gt; (264925235,54) | 87 8b 17 15 00 00 00 00 1d 6d 2e 72 6f 6f 6d 2e 6d 65 6d 62 65 72 47 40 66 72
&lt;&#x2F;span&gt;&lt;span&gt;(3 rows)
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Being a leaf index page, the &lt;code&gt;ctid&lt;&#x2F;code&gt; points to the actual row in the heap. This is an index on &lt;code&gt;(state_group, type, state_key)&lt;&#x2F;code&gt;, so the &lt;code&gt;data&lt;&#x2F;code&gt; here is:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;a little-endian 64-bit representation of &lt;code&gt;353864583&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;a length&#x2F;flags byte (&lt;code&gt;1d&lt;&#x2F;code&gt; =&amp;gt; 13 bytes of uncompressed text)&lt;&#x2F;li&gt;
&lt;li&gt;the event type (&lt;code&gt;m.room.member&lt;&#x2F;code&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;another length&#x2F;flags byte&lt;&#x2F;li&gt;
&lt;li&gt;the &lt;code&gt;state_key&lt;&#x2F;code&gt;: a user ID, which I&#x27;ve truncated in the above for brevity and privacy.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The point is, even in the backup, we have index rows pointing to heap tuple &lt;code&gt;(264925234,54)&lt;&#x2F;code&gt;. And what is at that heap tuple?&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;code&gt;&lt;span&gt;matrix=# SELECT * FROM heap_page_items(get_raw_page(&amp;#39;state_groups_state&amp;#39;, 264925234));
&lt;&#x2F;span&gt;&lt;span&gt; lp | lp_off | lp_flags | lp_len | t_xmin | t_xmax | t_field3 | t_ctid | t_infomask2 | t_infomask | t_hoff | t_bits | t_oid | t_data 
&lt;&#x2F;span&gt;&lt;span&gt;----+--------+----------+--------+--------+--------+----------+--------+-------------+------------+--------+--------+-------+--------
&lt;&#x2F;span&gt;&lt;span&gt;  1 |      0 |        0 |      0 |        |        |          |        |             |            |        |        |       | 
&lt;&#x2F;span&gt;&lt;span&gt;(1 row)
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Nothing at all. That tuple doesn&#x27;t exist. It&#x27;s just empty space in the table data.&lt;&#x2F;p&gt;
&lt;p&gt;Finally, we can understand a bit about what&#x27;s happened here. The corruption is &lt;strong&gt;not&lt;&#x2F;strong&gt; ongoing. Rather, the index was already corrupt at the time the backup was taken, but the index rows point into empty space -- and apparently Postgres ignores such index rows.&lt;&#x2F;p&gt;
&lt;p&gt;Then, on 3rd July, that empty space got used for state group &lt;code&gt;1034753774&lt;&#x2F;code&gt;, meaning that the index entry for state group &lt;code&gt;353864583&lt;&#x2F;code&gt; now points to the data for state group &lt;code&gt;1034753774&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;This tells us something else interesting: this corruption could have been there for months or years, without anyone noticing. It was only once Postgres started populating that bit of table space that any problem would have been observable.&lt;&#x2F;p&gt;
&lt;p&gt;So why was the index entry pointing at empty space? That&#x27;s a great question, and something we spent a long time discussing. Presumably, at some point in the past, we used to have lots of entries in &lt;code&gt;state_groups_state&lt;&#x2F;code&gt; for state group &lt;code&gt;353864583&lt;&#x2F;code&gt;. Then, most of these entries were removed (likely by the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;rust-synapse-compress-state&quot;&gt;state compressor&lt;&#x2F;a&gt;), causing a bunch of free space to be created in the table data -- but for some reason, the index entries for those rows didn&#x27;t get correctly cleaned up, leaving them dangling.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;repairing-the-damage&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#repairing-the-damage&quot; aria-label=&quot;Anchor link for: repairing-the-damage&quot;&gt;🔗&lt;&#x2F;a&gt;Repairing the damage&lt;&#x2F;h2&gt;
&lt;p&gt;We now had enough information to start to get things working again.&lt;&#x2F;p&gt;
&lt;p&gt;The first priority was to get Postgres back to a consistent state. That meant rebuilding the index, which in itself wasn&#x27;t trivial, given the index takes up over 4 TB — but we had just enough spare disk, so we set the reindex going overnight.&lt;&#x2F;p&gt;
&lt;p&gt;Next, we needed to repair any state groups which were incorrectly modified by the cleanup job due to the corrupt index. To do this, we considered the range of state groups that the cleanup job had been working on, and wrote a script which queried each of those state groups on our restored backup, noting down the targets of any bogus data: this was the list of potential victims of incorrect cleanup.&lt;&#x2F;p&gt;
&lt;p&gt;We then cross-referenced that list of &lt;em&gt;potential&lt;&#x2F;em&gt; victims against the production database, checking for &lt;code&gt;state_groups_state&lt;&#x2F;code&gt; entries which had been removed but where the state group was still in use: this gave us the &lt;em&gt;actual&lt;&#x2F;em&gt; victim list. Each of those victims had to be re-inserted into the production database.&lt;&#x2F;p&gt;
&lt;p&gt;We started those scripts running on 5th July, but due to the amount of data involved, it took nearly a week before we were able to announce on 11th July that the majority of rooms were repaired.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;assessing-the-root-cause&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#assessing-the-root-cause&quot; aria-label=&quot;Anchor link for: assessing-the-root-cause&quot;&gt;🔗&lt;&#x2F;a&gt;Assessing the root cause&lt;&#x2F;h2&gt;
&lt;p&gt;So, what went wrong to cause those index pages to get corrupted? The short answer is, we don&#x27;t know.&lt;&#x2F;p&gt;
&lt;p&gt;First, some timeframes. We know for certain that corruption happened &lt;em&gt;after&lt;&#x2F;em&gt; January 2021 (or at least, that corruption was still ongoing at that point), since it affected state groups created at that time. And we know that it happened &lt;em&gt;before&lt;&#x2F;em&gt; July 2025, since corruption was present in the backup from the end of June. It&#x27;s hard to be any more certain than that.&lt;&#x2F;p&gt;
&lt;p&gt;The one thing we can be sure it&#x27;s &lt;em&gt;not&lt;&#x2F;em&gt; is a bug in Synapse or PgCat: there is no way that an application should be able to cause internal corruption within a Postgres database.&lt;&#x2F;p&gt;
&lt;p&gt;One possibility is a Postgres bug, but Postgres is an extremely robust piece of software, and the Postgres team treats corruption bugs extremely seriously. We were using Postgres 10.12 in January 2021, and we&#x27;ve looked through the Postgres release notes for every version since then, and not found any bug fixes that would fit this pattern.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s worth noting that Postgres relies heavily on its underlying filesystem, as well as the device drivers and hardware, to behave correctly: in particular, if the filesystem claims that data has been persisted, it really has been persisted. Problems in this area are far from unknown — back in 2018, the Postgres team discovered that their 20-year-old assumptions about how &lt;code&gt;fsync&lt;&#x2F;code&gt; worked were incorrect (&lt;a href=&quot;https:&#x2F;&#x2F;wiki.postgresql.org&#x2F;wiki&#x2F;Fsync_Errors&quot;&gt;wiki page&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;archive.fosdem.org&#x2F;2019&#x2F;schedule&#x2F;event&#x2F;postgresql_fsync&#x2F;&quot;&gt;FOSDEM presentation&lt;&#x2F;a&gt;). But the fixes to that were backported to Postgres 10.7 so that problem can&#x27;t explain this corruption.&lt;&#x2F;p&gt;
&lt;p&gt;So that really leaves kernel or disk firmware bugs, and hardware failures. Our filesystem is nothing fancy, just &lt;code&gt;ext4&lt;&#x2F;code&gt;, and we&#x27;re using stock Debian kernels. Some sort of hardware problem seems like the most plausible cause. We&#x27;re somewhat surprised that hardware failure would cause extensive damage to a single index, whilst apparently leaving all other data intact, but it&#x27;s at least possible.&lt;&#x2F;p&gt;
&lt;p&gt;For the curious: our current generation of database servers run Linux kernel 6.1, and each server uses eight 15TB Intel NVME SSDs in a RAID10 configuration to give us 64TB of storage. The previous generation (retired in November 2023) used 8TB SSDs with LVM and no RAID, on Linux 4.19. Of course, we have checked &lt;code&gt;fsck&lt;&#x2F;code&gt;, &lt;code&gt;smartctl&lt;&#x2F;code&gt; and &lt;code&gt;mdadm&lt;&#x2F;code&gt; for any errors on the current disks: none have shown up.&lt;&#x2F;p&gt;
&lt;p&gt;There was a disk failure on the primary database server in October 2021, which caused us to fail over to the secondary, so it&#x27;s conceivable that the dying disk lost some writes, though it would have to have been doing so for a while for the corruption to have made it onto the secondary. We&#x27;re not entirely satisfied with this explanation.&lt;&#x2F;p&gt;
&lt;p&gt;If you&#x27;ve got any ideas, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#synapse:matrix.org&quot;&gt;let us know&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusions&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#conclusions&quot; aria-label=&quot;Anchor link for: conclusions&quot;&gt;🔗&lt;&#x2F;a&gt;Conclusions&lt;&#x2F;h2&gt;
&lt;p&gt;Incidents like this happen from time to time when running software services, particularly relatively large scale ones like the &lt;code&gt;matrix.org&lt;&#x2F;code&gt; homeserver. They are impossible to plan for and often, as in this case, take significant time and effort from people who would otherwise be developing features or fixing bugs.&lt;&#x2F;p&gt;
&lt;p&gt;We know that there are plenty of users out there who will have been affected by the problem, and found themselves unable to communicate as a result. We very much share your frustration, and we&#x27;d like to apologise for the disruption to service.&lt;&#x2F;p&gt;
&lt;p&gt;With that said, we&#x27;re glad that we were able to get to the bottom of most of the problem, and get the lost data restored within a relatively short time. If nothing else, hopefully this blog post will be of use to future generations faced with Postgres index corruption!&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Pre-disclosure: Upcoming coordinated security fix for all Matrix server implementations</title>
    <published>2025-07-16T00:00:00+00:00</published>
    <updated>2025-07-16T00:00:00+00:00</updated>
    <author>
      <name>Matthew Hodgson</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/07/security-predisclosure/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/07/security-predisclosure/</id>
    <content type="html">&lt;p&gt;Hi all,&lt;&#x2F;p&gt;
&lt;p&gt;Over the last 6 months a major project has been underway by the Element server team and the Matrix.org Foundation security team to investigate “state resets”: scenarios where Matrix’s state resolution algorithm can give unexpected results.  As part of this work we’ve identified two high severity protocol vulnerabilities (CVE-2025-49090; the other not yet allocated a CVE).&lt;&#x2F;p&gt;
&lt;p&gt;Given the security implications of a federation protocol vulnerability, we’ve shared details under embargo over the last 4 weeks with all known active server implementations, and are now aiming for a coordinated security release across all Matrix server implementations on &lt;del&gt;&lt;strong&gt;Tuesday Jul 22nd&lt;&#x2F;strong&gt;&lt;&#x2F;del&gt; &lt;strong&gt;Monday Aug 11th 2025 at 17:00 UTC&lt;&#x2F;strong&gt;.  If you run a Matrix server in an untrusted federation (e.g. the public federation), please be prepared to upgrade as soon as the patched versions are available.&lt;&#x2F;p&gt;
&lt;p&gt;These vulnerabilities have been addressed via MSCs which have been shared, reviewed and are in the final comment period (disposition merge) with the Spec Core Team and server implementor community, under embargo.  This will result in an off-cycle Matrix spec release (1.16) introducing a new room version (&lt;strong&gt;12&lt;&#x2F;strong&gt;) to address the vulnerabilities in question, requiring a room upgrade of existing rooms.  Having given server and room admins time to upgrade, we are then planning to un-embargo the MSCs and complement tests on &lt;del&gt;Friday Jul 25th&lt;&#x2F;del&gt; Thursday Aug 14th 2025 at 17:00 UTC.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE: Jul 18th 16:45 UTC&lt;&#x2F;strong&gt;: We&#x27;ve heard a lot of feedback that 6 days isn&#x27;t enough for clients&#x2F;bots&#x2F;bridge&#x2F;tooling developers to test the changes introduced by room v12, and that it also doesn&#x27;t give enough time for community admins to prepare for the necessary room upgrades. Underestimating the time needed here for client&#x2F;community testing is entirely our fault, due to being overfocused on coordinating the significant serverside work needed. &lt;strong&gt;As a result, we&#x27;ve pushed back the coordinated server release date to Aug 11th&lt;&#x2F;strong&gt;, to give everyone more time to test and prepare.  We&#x27;ve also opened up registration on the &lt;code&gt;beta.matrix.org&lt;&#x2F;code&gt; homeserver, which is already running v12 rooms by default, to make it easier for client developers to test their clients.  We&#x27;ve also made one clarification below for client developers, explaining the new permissions needed to send &lt;code&gt;m.room.tombstone&lt;&#x2F;code&gt; events.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;CLARIFICATION: Jul 16 17:30 UTC&lt;&#x2F;strong&gt;: Room admins should plan to upgrade rooms at their convenience, similar to previous security-related room version upgrades (e.g. v1 to v2).  Much like installing an operating system patch, sooner is better, but as these are not Critical Severity vulnerabilities, there is no requirement for room admins to upgrade rooms immediately on Jul 22nd. For instance, the Matrix.org Foundation will likely upgrade its public rooms at some point after Jul 25th (having given server admins a chance to upgrade, and having given any server implementations running late a chance to release).  N.B. Only rooms which include users on potentially malicious servers (e.g. publicly joinable rooms on untrusted federations) are vulnerable.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Important information for client developers:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Client developers should review &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;blob&#x2F;matthew&#x2F;msc4291&#x2F;proposals&#x2F;4291-room-ids-as-hashes.md&quot;&gt;MSC4291: “Room IDs as hashes of the create event”&lt;&#x2F;a&gt; to ensure their clients can accept the new proposed format of room IDs, and no longer expects &lt;code&gt;content.predecessor.event_id&lt;&#x2F;code&gt; in &lt;code&gt;m.room.create&lt;&#x2F;code&gt; events.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;One of the other changes coming in v12 is that room creators will be privileged over other users in the room. Therefore clients which restrict user behaviour based on power level will need to be updated to be aware that room creators effectively have infinite power level. Creators are &lt;strong&gt;not&lt;&#x2F;strong&gt; listed in the users block of the &lt;code&gt;m.room.power_levels&lt;&#x2F;code&gt; event, and are instead defined as the &lt;code&gt;sender&lt;&#x2F;code&gt; field of the &lt;code&gt;m.room.create&lt;&#x2F;code&gt; event, or entries in a new optional &lt;code&gt;additional_creators&lt;&#x2F;code&gt; array field in the &lt;code&gt;content&lt;&#x2F;code&gt; of the create event. Full details will be released in the MSCs when embargo lifts.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Finally, clients which use &lt;code&gt;power_level_content_override&lt;&#x2F;code&gt; when creating rooms MUST NOT assign a power level to the room creator, otherwise the &lt;code&gt;&#x2F;createRoom&lt;&#x2F;code&gt; request will fail.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;UPDATE: Jul 18th&lt;&#x2F;strong&gt;: We should have mentioned that the default power level in room v12 for sending &lt;code&gt;m.room.tombstone&lt;&#x2F;code&gt; events to upgrade rooms is 150. This stops normal admins from upgrading the room (and so assuming creator privileges) - instead, a creator has to explicitly boost an admin&#x27;s power level to 150 in order to let them upgrade the room and effectively assume creator rights going forwards.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This has been an exceptionally complicated project to coordinate and its security implications required us to deviate from our usual MSC process and develop the changes under embargo. This and the expedited release of a new stable room version are exceptional choices that are far from ideal, which we’re having to take to keep the ecosystem secure.  To be clear, normal MSC development and process will continue in the open, just as it always has. We’d like to sincerely thank the Matrix server implementor community for their impressive support in preparing the coordinated security releases - both in terms of vital MSC review, and then working together to implement the necessary changes. Matrix’s server heterogeneity has never looked healthier. We’d also like to thank Timo Kösters for helping precipitate the project in the first place.&lt;&#x2F;p&gt;
&lt;p&gt;We’ll follow up with more details on Aug 11th (assuming the disclosure timeline doesn’t slip further).&lt;&#x2F;p&gt;
&lt;p&gt;Thanks all for your time, patience and understanding while we ship this protocol upgrade (the first coordinated upgrade since &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2019&#x2F;03&#x2F;15&#x2F;matrix-1-0-https-arewereadyyet-com&#x2F;&quot;&gt;Matrix 1.0&lt;&#x2F;a&gt; back in 2019!)&lt;&#x2F;p&gt;
&lt;p&gt;Matthew&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Demystifying SBGs</title>
    <published>2025-06-26T00:00:00+00:00</published>
    <updated>2025-06-26T00:00:00+00:00</updated>
    <author>
      <name>Matthew Hodgson</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/06/demystifying-sbgs/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/06/demystifying-sbgs/</id>
    <content type="html">&lt;p&gt;We’ve noticed a fair bit of confusion (aka misinformation) around Secure Border Gateways (SBGs) recently, which this blog post aims to clarify.&lt;&#x2F;p&gt;
&lt;p&gt;First off, Secure Border Gateways are not defined in the Matrix specification. The term is actually a product name from Element, rather than anything intrinsic to Matrix.&lt;&#x2F;p&gt;
&lt;p&gt;However the concept of a border gateway is well established. In a Matrix world, it means any kind of &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Application-level_gateway&quot;&gt;&lt;strong&gt;application-layer firewall&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt; which intercepts APIs between Matrix components in order to provide defence-in-depth or apply additional policy rules, to bring an extra - &lt;strong&gt;but optional -&lt;&#x2F;strong&gt; layer of control within a federation. It is, in short, an optional way to provide more control over federated traffic.&lt;&#x2F;p&gt;
&lt;p&gt;So conceptually it’s the Matrix equivalent to application layer gateways for email. Without them, email works absolutely fine, and always has. However, it’s still a desirable optional extra for some enterprise deployments. For instance, it can help protect both server misconfigurations or buggy servers: literally providing defence-in-depth in traditional ‘castle and keep’ style.&lt;&#x2F;p&gt;
&lt;p&gt;That there is an ecosystem of 3rd party software vendors building additional components such as Secure Border Gateways reflects the strength and maturity of Matrix as an open standard. It’s clear evidence that a genuine open source initiative, based on an open standard, not only ensures digital sovereignty but also &lt;strong&gt;drives competitive innovation&lt;&#x2F;strong&gt;. Meanwhile it’s excellent to see other chat vendors like &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mattermost&#x2F;mattermost-plugin-matrix-bridge&quot;&gt;Mattermost&lt;&#x2F;a&gt; working on first-party Matrix support again (and so in turn will benefit from capabilities like Secure Border Gateways or Cross Domain Gateways).&lt;&#x2F;p&gt;
&lt;h2 id=&quot;examples-of-border-gateways&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#examples-of-border-gateways&quot; aria-label=&quot;Anchor link for: examples-of-border-gateways&quot;&gt;🔗&lt;&#x2F;a&gt;Examples of Border Gateways&lt;&#x2F;h2&gt;
&lt;p&gt;Let’s take a look at ‘SBGs’ in the wild. Probably the most widespread example right now is in &lt;a href=&quot;https:&#x2F;&#x2F;www.gematik.de&#x2F;anwendungen&#x2F;ti-messenger&quot;&gt;TI-Messenger&lt;&#x2F;a&gt;, Germany’s healthcare messaging system based on Matrix (targeting 150,000 organisations and almost all German citizens, due to go live in mid-July). Here, gematik chose to require SBGs (called “TI-Messenger Proxies” in its parlance) for each deployment in order to integrate Matrix with TI-Messenger’s FHIR-standard and address book system.&lt;&#x2F;p&gt;
&lt;p&gt;As a result, a whole ecosystem of SBG implementations has emerged: starting with the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tim-ref&#x2F;messenger-proxy&quot;&gt;entirely open source TI-Messenger Proxy reference implementation&lt;&#x2F;a&gt; from gematik - but also additional implementations from certified TI-Messenger vendors including Akquinet, Awesome Technologies, CompuGroup Medical, Element, Famedly, Gedisa, samedi and Xtension.&lt;&#x2F;p&gt;
&lt;p&gt;As an example, Element’s TI-Messenger Proxy implementation is built on &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;server-suite&#x2F;secure-border-gateways&quot;&gt;Element’s generic SBG&lt;&#x2F;a&gt; implementation, which provides a configurable pipeline for functionality like:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Proxying (terminating and re-originating) Matrix traffic&lt;&#x2F;li&gt;
&lt;li&gt;Apply rules based on HTTP headers&lt;&#x2F;li&gt;
&lt;li&gt;Apply rules based on room membership&lt;&#x2F;li&gt;
&lt;li&gt;Enforcing classification labels&lt;&#x2F;li&gt;
&lt;li&gt;Enforce closed federation based on a domain allow list.&lt;&#x2F;li&gt;
&lt;li&gt;Enforce usage of specific clients.&lt;&#x2F;li&gt;
&lt;li&gt;Enforce certain parameters when creating a room.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;tl-dr&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#tl-dr&quot; aria-label=&quot;Anchor link for: tl-dr&quot;&gt;🔗&lt;&#x2F;a&gt;TL;DR&lt;&#x2F;h2&gt;
&lt;p&gt;Whether you call them Secure Border Gateways, TI-Messenger Proxies or something else: it is possible to add an application layer firewall that brings an additional layer of control to a Matrix federation. But let’s not forget:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Matrix servers already let you lock down your federation - e.g. all of Synapse’s &lt;a href=&quot;https:&#x2F;&#x2F;element-hq.github.io&#x2F;synapse&#x2F;latest&#x2F;usage&#x2F;configuration&#x2F;config_documentation.html#federation&quot;&gt;federation configuration&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;SBGs are not part of the Matrix specification, because Matrix works perfectly well without them&lt;&#x2F;li&gt;
&lt;li&gt;SBGs are an &lt;strong&gt;optional&lt;&#x2F;strong&gt; extra for organisations and federations that might require them, based on their use-case, external integration points (e.g. FHIR) and overall security posture&lt;&#x2F;li&gt;
&lt;li&gt;SBGs are not required for a private federation&lt;&#x2F;li&gt;
&lt;li&gt;SBGs are not required for public federation either&lt;&#x2F;li&gt;
&lt;li&gt;SBGs do not make Matrix closed&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;It’s a hugely positive sign of Matrix’s maturity that there’s an ecosystem of 3rd party software vendors building additional optional components like SBGs&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Dispelling myths and misinformation</title>
    <published>2025-06-20T00:00:00+00:00</published>
    <updated>2025-06-20T00:00:00+00:00</updated>
    <author>
      <name>Robin Riley</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/06/dispelling-myths/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/06/dispelling-myths/</id>
    <content type="html">&lt;p&gt;We’ve seen several articles published in the last week that are, at best, misinformed, and at worst, attempts to protect a single communication company’s bottom line by attacking Matrix.&lt;&#x2F;p&gt;
&lt;p&gt;We thought we should take the time to set the record straight, lest anyone be taken by this naked attempt to sow fear, uncertainty, and doubt (FUD).&lt;&#x2F;p&gt;
&lt;p&gt;But before we do, let’s be clear: this is not the first time a single vendor open source project – which may be under an open source license but is unilaterally controlled by a single for-profit company – has resorted to desperate measures to attack their community-driven competitors, and it won’t be the last time.&lt;&#x2F;p&gt;
&lt;p&gt;Matrix is not just an open standard for secure communication, it’s an openly governed and collaboratively developed ecosystem of projects powered by a growing community of volunteers and vendors. In this way, Matrix exemplifies the open source ethos, encourages greater innovation, and defies those who would try to build businesses based on extractive behavior and vendor lock-in.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;governance-legal-allegations&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#governance-legal-allegations&quot; aria-label=&quot;Anchor link for: governance-legal-allegations&quot;&gt;🔗&lt;&#x2F;a&gt;Governance &amp;amp; legal allegations&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;neutral-and-independent-stewardship&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#neutral-and-independent-stewardship&quot; aria-label=&quot;Anchor link for: neutral-and-independent-stewardship&quot;&gt;🔗&lt;&#x2F;a&gt;Neutral and independent stewardship&lt;&#x2F;h3&gt;
&lt;p&gt;The claim has been made that Matrix is effectively controlled by one company. It’s a bold claim, especially when it comes from a for-profit that exerts unilateral control over their eponymous open source project – and it’s patently false.&lt;&#x2F;p&gt;
&lt;p&gt;Open source is one of those terms that has become overloaded with meaning. Something can be accurately described as “open source” when it’s placed under a license that’s been approved by the Open Source Initiative. However, colloquial use of “open source” tends to imply that something is open source licensed, has an open collaboration model, is guided through open governance, and housed within a neutral nonprofit entity.&lt;&#x2F;p&gt;
&lt;p&gt;Matrix is open source in the fullest sense of the word.&lt;&#x2F;p&gt;
&lt;p&gt;The Matrix protocol is open source, and it evolves through the &lt;a href=&quot;https:&#x2F;&#x2F;spec.matrix.org&#x2F;proposals&#x2F;&quot;&gt;Matrix Spec Change process&lt;&#x2F;a&gt;. Anyone can submit a proposal, and anyone can help vet those proposals. The &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;foundation&#x2F;about&#x2F;#the-spec-core-team&quot;&gt;Spec Core Team&lt;&#x2F;a&gt;, a volunteer body made up of people with a range of expertise and several different employers, facilitates this process, merges in successful proposals, and manages new releases of the specification.&lt;&#x2F;p&gt;
&lt;p&gt;And the Spec Core Team is just one of the multi-member volunteer bodies that govern Matrix under the auspices of an explicitly not-for-profit legal entity. The other body is the &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;foundation&#x2F;governing-board&#x2F;&quot;&gt;Governing Board&lt;&#x2F;a&gt;, the most recent evolution in our open governance.&lt;&#x2F;p&gt;
&lt;p&gt;The Governing Board is an elected body of representatives from multiple constituencies: those who build projects with Matrix, those who use Matrix, and those who fund Matrix.&lt;&#x2F;p&gt;
&lt;p&gt;The Governing Board provides input to the Spec Core Team, has a role in approving budgets, major expenses, and any new revenue sources the Matrix.org Foundation may seek to pursue. It also has leeway to venture into all manner of subject matter, and it does so through its committees and working groups, which span Trust &amp;amp; Safety, Governance, Events, Finance, and more.&lt;&#x2F;p&gt;
&lt;p&gt;Speaking of the Matrix.org Foundation, it’s a not-for-profit corporate entity that is legally bound to the community benefit described in its mission statement. It holds community assets, such as software projects that are foundational to the ecosystem and the Matrix trademark, so that participants and downstream users can be confident those will not be withdrawn or leveraged against them for the benefit of a single company. It is also required to submit &lt;a href=&quot;https:&#x2F;&#x2F;find-and-update.company-information.service.gov.uk&#x2F;company&#x2F;11648710&#x2F;filing-history&quot;&gt;annual reports&lt;&#x2F;a&gt; with an overview of its financial accounts and activities.&lt;&#x2F;p&gt;
&lt;p&gt;Further, the Foundation has a dedicated staff that I, Robin Riley, currently lead as an &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;foundation&#x2F;about&#x2F;#the-staff-of-the-foundation&quot;&gt;independent Managing Director&lt;&#x2F;a&gt;, and I have a track record of fighting moneyed interests to protect the open source commons – and, critically, I have no financial stake in any Matrix vendor.&lt;&#x2F;p&gt;
&lt;p&gt;I have not only done the work of operationalizing open governance, I have also been hard at work behind the scenes separating out the Foundation’s infrastructure – which was previously completely subsidized by Element – and fundraising so that it is increasingly independent and self-sustaining.&lt;&#x2F;p&gt;
&lt;p&gt;Some may point to Element’s relicensing of Synapse as proof positive that the Foundation is not independent, but there’s nothing stopping anyone from doing the same with permissively licensed software from other open source foundations – something that happens frequently – and no one is claiming those foundations are not independent.&lt;&#x2F;p&gt;
&lt;p&gt;Some may point to the Foundation’s move to monetize the matrix.org homeserver, which is indeed operated under contract by Element, as evidence that the Foundation is in trouble. But seen in the cool light of the day and in context of the facts, this is simply a move to help close a budget gap that has been openly discussed for several years. It may also contribute to de-centering the homeserver and give rise to more community operated alternatives. We’d rather try to defray the cost of operating the homeserver than let it impact our ability to continue facilitating ever more open governance and collaboration.&lt;&#x2F;p&gt;
&lt;p&gt;It is true to say that Matrix has further to go in its open governance journey and on the path to full independence and sustainability.&lt;&#x2F;p&gt;
&lt;p&gt;However, if one surveys the landscape of open source foundations, it becomes clear that these are journeys that are measured not just in years, but in decades. And whereas some projects get further enclosed and less democratic over time, there’s a fact pattern here that shows Matrix is getting ever more open, independent, and collaborative.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;legal-allegations&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#legal-allegations&quot; aria-label=&quot;Anchor link for: legal-allegations&quot;&gt;🔗&lt;&#x2F;a&gt;Legal allegations&lt;&#x2F;h3&gt;
&lt;p&gt;It has been suggested that because the Matrix.org Foundation is incorporated in the UK, Matrix is incompatible with EU Data Protection laws, like the GDPR, and subject to the Investigatory Powers Act (IPA) in the UK.&lt;&#x2F;p&gt;
&lt;p&gt;Well, the GDPR is a regulation governing the use of personal data which predates Brexit and is fully incorpoorated and implemented in UK law as part of the Data Protection Act 2018. Whilst it recommends things like Privacy by Design and other requirements which influence software development, it does not directly govern it. Any code written in the UK and hosted (or used by people) in the EU will have to be compliant with EU legislation – this is the beauty of an open standard which supports digital sovereignty.&lt;&#x2F;p&gt;
&lt;p&gt;Second, jurisdictional exposure related to cases like Schrems II is associated with data transfers to third-countries. The UK is not a third-country, it currently has an adequacy decision which has just been extended. Yes, there is a risk that this adequacy decision might be revoked and we even agree with some of the concerns raised in the linked article about some of the recent decisions in the UK – again, we have been incredibly vocal about most of the concerns raised and continue to work on these topics, including the risk of TCNs.&lt;&#x2F;p&gt;
&lt;p&gt;And finally, the Investigatory Powers Act (IPA) is a piece of legislation in the UK focused on governing investigatory powers and law enforcement which has been in place since 1998. The UK government can apply IPA globally to individuals based in the UK, as per &lt;a href=&quot;https:&#x2F;&#x2F;www.bbc.com&#x2F;news&#x2F;articles&#x2F;c20g288yldko&quot;&gt;the Technical Capability Notice (TCN) it has served Apple&lt;&#x2F;a&gt;, so whether you are using Matrix (governed by a UK-based Foundation) or not is irrelevant.&lt;&#x2F;p&gt;
&lt;p&gt;In the end, of all the technologies, Matrix is one of those that are the best positioned to give the users their digital sovereignty and data protection, thanks to its open source and decentralised nature.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;technical-allegations&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#technical-allegations&quot; aria-label=&quot;Anchor link for: technical-allegations&quot;&gt;🔗&lt;&#x2F;a&gt;Technical allegations&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;on-the-relevance-of-matrix-s-open-federation-for-private-deployments&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#on-the-relevance-of-matrix-s-open-federation-for-private-deployments&quot; aria-label=&quot;Anchor link for: on-the-relevance-of-matrix-s-open-federation-for-private-deployments&quot;&gt;🔗&lt;&#x2F;a&gt;On the relevance of Matrix’s open federation for private deployments&lt;&#x2F;h3&gt;
&lt;p&gt;With the open Matrix network including 180 million addressable users and hosting a wide variety of players, not all with good intentions, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;&quot;&gt;we are facing a clear challenge of ensuring this open network is kept safe for our users&lt;&#x2F;a&gt;, and it is a primary focus for the Foundation.&lt;&#x2F;p&gt;
&lt;p&gt;On the other hand, Matrix is also widely used by governments and public sector organisations, which have all deployed their own private federations, potentially connecting them to one another via appropriate Secure Border Gateways (SBG) and enforcing strict access control, in order to maintain the security of their deployments and to prevent access from unauthorised users. Several organisations develop SBGs, some being commercial and proprietary (like Element’s) and other freely available open-source (like DINUM’s). Gematik also specifies a TI-proxy (SBG) for TI-Messenger, although it doesn&#x27;t develop an implementation. SBGs are policy controllers rather than privacy enforcers.&lt;&#x2F;p&gt;
&lt;p&gt;All these deployments are integrated to appropriate single-sign one setups and the public Matrix.org homeserver also mandates either email or a social log-in to validate the account.&lt;&#x2F;p&gt;
&lt;p&gt;It is also worth noting that the fact the federation is open or closed is orthogonal to whether the deployment is scalable or not. The scalability is determined by the server implementation which is used, and there is no limit to how many servers can federate with one another. Meanwhile the French government’s Tchap Matrix installation is a private federation of around 350K active users. Bundeswehr’s Matrix-based BwMessenger private federation supports 100K+ users. Gematik’s (Matrix-based) TI-Messenger private federation will support literally millions of German citizens.&lt;&#x2F;p&gt;
&lt;p&gt;Being a decentralised network, Matrix was designed to be Byzantine Fault Tolerant, resilient to malicious instances by design. In an open federation, malicious actors can spin up rogue homeservers and interact with legitimate ones but they can’t harm the legitimate ones, beyond spam attacks, which (again) is a failure mode with &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;&quot;&gt;a lot of focus&lt;&#x2F;a&gt; from the Foundation’s Trust and Safety team today. Meanwhile there are also plenty of options around content scanning and anti-virus to protect private federations, whether that’s from various Matrix vendors, FOSS or in-house development.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;on-end-to-end-encryption&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#on-end-to-end-encryption&quot; aria-label=&quot;Anchor link for: on-end-to-end-encryption&quot;&gt;🔗&lt;&#x2F;a&gt;On end-to-end encryption&lt;&#x2F;h3&gt;
&lt;p&gt;Matrix is encryption agnostic and today uses Olm, its own implementation of the Signal protocol, with Megolm for group scalability. Whilst Olm is now mature and well-understood  end-to-end encryption (developed and used by Signal, and used by WhatsApp, Facebook Messenger and others) it does have some scalability limitations for very big group chats (tens of thousands of users). Meanwhile, IETF’s MLS standard (&lt;a href=&quot;https:&#x2F;&#x2F;datatracker.ietf.org&#x2F;doc&#x2F;rfc9420&#x2F;&quot;&gt;RFC9420&lt;&#x2F;a&gt;) provides better scalability in exchange for some tradeoffs around centralisation - work continues apace on how to best integrate MLS with Matrix (e.g. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4256&quot;&gt;MSC4256&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4244&quot;&gt;MSC4244&lt;&#x2F;a&gt;, and all our existing work at &lt;a href=&quot;https:&#x2F;&#x2F;arewemlsyet.com&quot;&gt;https:&#x2F;&#x2F;arewemlsyet.com&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;We’ve seen claims that Matrix lacks forward secrecy today, which is plain false: Olm provides perfect forward secrecy by nature of being an implementation of the Signal Protocol - if an attacker captures the current keys they can’t decrypt previous messages.&lt;&#x2F;p&gt;
&lt;p&gt;Similarly, if an attacker captures the current keys they also can’t decrypt future messages - this provides post-compromise security.  Olm is used to share the “Megolm” keys used to encrypt messages, and similarly, if you capture a Megolm key you cannot decrypt any previous messages.  By default a given Megolm key is used to generate keys for up to 100 consecutive messages, but this is configurable, and is reset whenever the group membership changes or after a week. Nothing stops an admin from rotating on every message if they like: &lt;a href=&quot;https:&#x2F;&#x2F;spec.matrix.org&#x2F;v1.14&#x2F;client-server-api&#x2F;#mroomencryption&quot;&gt;https:&#x2F;&#x2F;spec.matrix.org&#x2F;v1.14&#x2F;client-server-api&#x2F;#mroomencryption&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Practically speaking almost all Matrix clients keep all the Megolm keys (to read back history), because users of a chat application (especially in a collaboration context) expect history to be accessible. Though there is nothing inherent in Matrix that would prevent throwing the keys away on ratchet.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;on-metadata-availability&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#on-metadata-availability&quot; aria-label=&quot;Anchor link for: on-metadata-availability&quot;&gt;🔗&lt;&#x2F;a&gt;On metadata availability&lt;&#x2F;h3&gt;
&lt;p&gt;Matrix currently exposes the metadata of who’s talking in which rooms to the admins of the servers whose users are in a given conversation. It is &lt;strong&gt;transport encrypted&lt;&#x2F;strong&gt; and random (non-participating) network observers most certainly cannot access it nor “easily” track users across conversations.&lt;&#x2F;p&gt;
&lt;p&gt;We are in the process of minimising metadata by default (e.g. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4014&quot;&gt;MSC4014&lt;&#x2F;a&gt; exists and was implemented in Dendrite) but it’s worth noting that sometimes metadata is a requirement: in practice a lot of professional Matrix users (i.e. large government installations) often actually want to know who’s talking to who on their servers for compliance and access control reasons. Meanwhile other approaches are in flight right now, e.g. BWI’s &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4256&quot;&gt;MSC4256&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;It is worth noting that other collaboration apps who claim to be more secure than Matrix are hitting the same problem of having to be compliant when selling to the public sector. For example, &lt;a href=&quot;https:&#x2F;&#x2F;wire-docs.wire.com&#x2F;download&#x2F;Wire+Privacy+Whitepaper.pdf&quot;&gt;Wire&#x27;s privacy whitepaper&lt;&#x2F;a&gt; directly states their servers have access to the group participant lists and leaks the conversation’s name to the server. Besides the &lt;a href=&quot;https:&#x2F;&#x2F;www.rfc-editor.org&#x2F;rfc&#x2F;rfc9420.html#name-confidentiality-of-group-me&quot;&gt;MLS RFC&lt;&#x2F;a&gt; (RFC9420, section 16.4, used by Wire) clearly states MLS itself does not intrinsically provide confidentiality to a large subset of messages and that a party observing these (i.e. the delivery service = Wire&#x27;s backend servers) can infer group membership.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#why&quot; aria-label=&quot;Anchor link for: why&quot;&gt;🔗&lt;&#x2F;a&gt;Why?&lt;&#x2F;h2&gt;
&lt;p&gt;All in all, it sounds like the German public sector appearing to be &lt;a href=&quot;https:&#x2F;&#x2F;www.heise.de&#x2F;en&#x2F;news&#x2F;Matrix-replacing-MJP-ZBP-Co-Will-state-mailbox-chaos-belong-to-the-past-10449857.html&quot;&gt;converging on Matrix&lt;&#x2F;a&gt; as an open standard for secure communications has triggered some defensive reaction with other European players in the market. It is a shame that small European players feel the need to fight one another rather than collaborate via open source software against the bigger non-European and proprietary players.&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Introducing premium accounts to fund the matrix.org homeserver</title>
    <published>2025-06-13T14:00:00+00:00</published>
    <updated>2025-06-13T14:00:00+00:00</updated>
    <author>
      <name>Amandine Le Pape</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/06/funding-homeserver-premium/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/06/funding-homeserver-premium/</id>
    <content type="html">&lt;h2 id=&quot;tl-dr&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#tl-dr&quot; aria-label=&quot;Anchor link for: tl-dr&quot;&gt;🔗&lt;&#x2F;a&gt;TL;DR&lt;&#x2F;h2&gt;
&lt;p&gt;As we need to take more concrete steps to improve the financial situation of the Foundation, we will be rolling out a freemium offer for the matrix.org homeserver users. The alternative is to turn off the server, which we want to avoid doing. The goal is for the most active users to support the cost of the service. Free users will have limits on how they can use the service (mostly around media). The change can be supported by any client with limited to no development. Premium plans will be rolled out over the summer, and we will be iterating on the exact scope in the first few weeks. The Homeserver Terms and Privacy Policy will be updated accordingly and deployed in the coming weeks.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;the-full-story&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-full-story&quot; aria-label=&quot;Anchor link for: the-full-story&quot;&gt;🔗&lt;&#x2F;a&gt;The full story&lt;&#x2F;h2&gt;
&lt;p&gt;We have been communicating on the lack of funds in the Foundation for a while now, the latest being &lt;a href=&quot;&#x2F;blog&#x2F;2025&#x2F;02&#x2F;crossroads&#x2F;&quot;&gt;here&lt;&#x2F;a&gt;. And whilst we’ve been working hard to gather new members and are happy to see the &lt;a href=&quot;&#x2F;support&#x2F;#supporters&quot;&gt;number of logos increasing&lt;&#x2F;a&gt; (thank you all for seeing the need for Matrix to stay independent and safe, and the value in supporting it!), none of the big players in the ecosystem have actually committed to one of the higher membership tiers, so we need to find other ways towards sustainability.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;a href=&quot;&#x2F;foundation&#x2F;about&#x2F;#mission&quot;&gt;Foundation’s mission&lt;&#x2F;a&gt; can basically be summarised by 4 main goals:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Ensure the specification of the protocol stays canonical and unencumbered, to avoid fragmentation and being overridden by a single player.&lt;&#x2F;li&gt;
&lt;li&gt;Ensure that all players in the ecosystem are at a level playing field, helping them succeed by giving them visibility and listening to their needs.&lt;&#x2F;li&gt;
&lt;li&gt;Promote the Matrix standard, as the value of Matrix is directly proportional to the size of the public network and how much it is used and commercialised.&lt;&#x2F;li&gt;
&lt;li&gt;Ensure the public network is safe by building moderation tools that can be used by the server admins, for the sake of our users and making sure the network is attractive.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;In practice, it means that we are currently spending money on:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;A small team of developers and moderators, to develop Trust &amp;amp; Safety tooling, moderate the matrix.org server, and redirect people who do not understand the decentralised nature of Matrix reporting abuse to us towards the appropriate server admins.&lt;&#x2F;li&gt;
&lt;li&gt;The infrastructure of the matrix.org homeserver, including the SRE team, who are on call to keep it running, and the support team.&lt;&#x2F;li&gt;
&lt;li&gt;Organise and sponsor events to promote and evangelise the protocol.&lt;&#x2F;li&gt;
&lt;li&gt;A tiny team to run the Foundation itself, including the support of external contractors for the administrative side (finance, legal, tax). The staff works on governance (organising the governing board elections, running the meetings, liaising between the different teams), raises money and brings members in, manages social media and liaises with the community, keeps the website up and up to date, publishes TWIMs and blogs, organises the events, etc. This team whose day job is to keep the Foundation running is also supported by a lot of volunteer (and sometimes sponsored by employer) time from the Governing Board and its Working Groups, the Spec Core team, the Guardians, and other external staff.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We haven’t gotten to the point of publishing the public financial report (although it should be almost finalised now), because we are frantically trying to focus on closing the financial gap, but here is an overview of the split of expenditures in the last year:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;blog&#x2F;img&#x2F;foundation-expenses-graph.png&quot; alt=&quot;A pie chart showing the Foundation&amp;#39;s expenses: 30% Trust &amp;amp; Safety, 20% Server Infrastructure, 14.2% Management, 12.5% Events, 20% Other staff, 2.5% Other expenses&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;As you can see, 20% of the Foundation’s expenditure goes towards hosting the matrix.org free and public homeserver. If we add in the cost of the moderation work done by the Trust and Safety team, the total share of the costs attributable to the matrix.org homeserver account for almost 50% of all expenditure. Meanwhile, today, only 50% of the spending of the Foundation is covered by its revenues (donations and memberships), and we are working hard towards reducing this gap.&lt;&#x2F;p&gt;
&lt;p&gt;We’ve kept the matrix.org homeserver around so far, despite its costs, as we consider it essential to seed the network in support of the nurturing part of the Foundation’s mission: despite Matrix being decentralised by design, users need a trusted place to create a free Matrix account to try it out in the first place.&lt;&#x2F;p&gt;
&lt;p&gt;However, we can’t continue to bear the cost of the server as is, and before we get to the extreme position of being forced to turn it off leaving its 370k monthly active users in the awkward position of finding a new home for their account, we’ve decided to try to alleviate some of these costs by setting-up a freemium offering and proposing premium plans in addition to the free ones. The goal is to get the server to an at least financially break-even position. If, by any chance, it was ending up profitable, the profit would directly be invested in &lt;a href=&quot;&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;&quot;&gt;Trust and Safety&lt;&#x2F;a&gt;, or other new programmes which can support the ecosystem. As a reminder, the Foundation is a Community Interest Company, i.e. a limited company which operates to provide a benefit to the community it serves rather than private profit.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;what-will-the-freemium-offer-look-like&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-will-the-freemium-offer-look-like&quot; aria-label=&quot;Anchor link for: what-will-the-freemium-offer-look-like&quot;&gt;🔗&lt;&#x2F;a&gt;What will the freemium offer look like?&lt;&#x2F;h3&gt;
&lt;p&gt;The idea is to set some limits for users on the free plans, which would be lifted for users on the premium plans in exchange for an affordable membership.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;We are still iterating (and will do for a while) on how it looks,&lt;&#x2F;strong&gt; but users can expect limits around media sizes and&#x2F;or volumes. The goal is to ensure that the most active users participate in covering the costs of the service, in return for the access to a fully encrypted and decentralised open network.&lt;&#x2F;p&gt;
&lt;p&gt;We are limited in scope and design by the fact we need to ship a minimum viable product as soon as possible (we need to reduce costs now) and by not wanting to impose too much development (if any) to Matrix client developers.&lt;&#x2F;p&gt;
&lt;p&gt;Obviously we would have preferred to keep everything free of charge. We will never sell our users’ data or cripple our services with ads, so we need to find ethical sources of revenue.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;when-will-the-new-plans-take-effect&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#when-will-the-new-plans-take-effect&quot; aria-label=&quot;Anchor link for: when-will-the-new-plans-take-effect&quot;&gt;🔗&lt;&#x2F;a&gt;When will the new plans take effect?&lt;&#x2F;h3&gt;
&lt;p&gt;The roll-out will happen progressively, starting in the coming weeks and hopefully completing in the summer of 2025. We will start by opening up premium plans to new users only, before progressively migrating all existing accounts to a free plan which will give them the option to upgrade to a premium plan. Users will of course be notified ahead of their account being migrated.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;will-this-work-with-whatever-matrix-client-i-use&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#will-this-work-with-whatever-matrix-client-i-use&quot; aria-label=&quot;Anchor link for: will-this-work-with-whatever-matrix-client-i-use&quot;&gt;🔗&lt;&#x2F;a&gt;Will this work with whatever Matrix client I use?&lt;&#x2F;h3&gt;
&lt;p&gt;Yes. The plan management will be handled via the &lt;a href=&quot;https:&#x2F;&#x2F;account.matrix.org&#x2F;account&#x2F;&quot;&gt;My Account&lt;&#x2F;a&gt; screens provided by the Matrix Authentication Service (MAS), and notifications to users will be sent in a dedicated room using the &lt;a href=&quot;https:&#x2F;&#x2F;spec.matrix.org&#x2F;v1.14&#x2F;client-server-api&#x2F;#server-notices&quot;&gt;Server Notices&lt;&#x2F;a&gt; feature built into the Matrix protocol – already used by the homeserver to send automatic messages to the user – so should be seamless for every client.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;i-am-a-matrix-client-developer-do-i-need-to-do-anything&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#i-am-a-matrix-client-developer-do-i-need-to-do-anything&quot; aria-label=&quot;Anchor link for: i-am-a-matrix-client-developer-do-i-need-to-do-anything&quot;&gt;🔗&lt;&#x2F;a&gt;I am a Matrix client developer, do I need to do anything?&lt;&#x2F;h3&gt;
&lt;p&gt;There are two considerations from a Matrix client point of view:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;support for the &lt;a href=&quot;https:&#x2F;&#x2F;spec.matrix.org&#x2F;v1.14&#x2F;client-server-api&#x2F;#server-notices&quot;&gt;Server Notices&lt;&#x2F;a&gt; feature&lt;&#x2F;li&gt;
&lt;li&gt;if the client is distributed via the Apple App Store, then support for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4286&quot;&gt;MSC4286&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If the client doesn&#x27;t show server notices at all then, whilst the client will remain usable with the matrix.org homeserver, your users will have a degraded UX as they won&#x27;t receive notifications when encountering usage limits.&lt;&#x2F;p&gt;
&lt;p&gt;Apple places &lt;a href=&quot;https:&#x2F;&#x2F;developer.apple.com&#x2F;app-store&#x2F;review&#x2F;guidelines&#x2F;#in-app-purchase&quot;&gt;restrictions&lt;&#x2F;a&gt; on how payments are implemented by iOS (et al) apps that are distributed via the App Store.&lt;&#x2F;p&gt;
&lt;p&gt;We expect that most, if not all, apps that fall within scope would be classified as what Apple calls “&lt;a href=&quot;https:&#x2F;&#x2F;developer.apple.com&#x2F;app-store&#x2F;review&#x2F;guidelines&#x2F;#free-stand-alone-apps&quot;&gt;Free Stand-alone Apps&lt;&#x2F;a&gt;”. Such apps do not need to use in-app purchases so long as “there is no purchasing inside the app, or calls to action for purchase outside of the app”.&lt;&#x2F;p&gt;
&lt;p&gt;In order to meet these requirements we have proposed &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4286&quot;&gt;MSC4286&lt;&#x2F;a&gt; which provides a way for a homeserver (such as the matrix.org homeserver) to flag parts of messages as containing a call to action and for affected clients to be able to hide that content. Example implementations are linked in the MSC.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;i-am-already-supporting-the-foundation-by-paying-an-individual-membership-will-i-have-to-pay-for-a-premium-plan-too&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#i-am-already-supporting-the-foundation-by-paying-an-individual-membership-will-i-have-to-pay-for-a-premium-plan-too&quot; aria-label=&quot;Anchor link for: i-am-already-supporting-the-foundation-by-paying-an-individual-membership-will-i-have-to-pay-for-a-premium-plan-too&quot;&gt;🔗&lt;&#x2F;a&gt;I am already supporting the Foundation by paying an individual membership, will I have to pay for a premium plan too?&lt;&#x2F;h3&gt;
&lt;p&gt;No, &lt;a href=&quot;&#x2F;membership&quot;&gt;individual members&lt;&#x2F;a&gt; of the Foundation will get access to the premium features at no extra cost. This benefit will be implemented as part of the process of migrating existing accounts to the free plan.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;what-else-will-be-changing&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-else-will-be-changing&quot; aria-label=&quot;Anchor link for: what-else-will-be-changing&quot;&gt;🔗&lt;&#x2F;a&gt;What else will be changing?&lt;&#x2F;h3&gt;
&lt;p&gt;In order to support these changes we will be releasing updates to the Homeserver Terms and the Privacy Policy in the coming weeks. Users of the matrix.org homeserver will be notified and will need to accept the new terms. The scope of change will be clearly highlighted in the release note, but essentially you can expect new terms around payment and additional information on the types of information we will collect about your account, as well as the processors we will use to enable payments.&lt;&#x2F;p&gt;
&lt;p&gt;We realise this is quite a big change, but our position is that a slightly limited service is better than no service at all, so we chose to ask for financial contribution rather than turn off the server. Paying a subscription for the matrix.org homeserver is basically a way to support Matrix, ensuring the Foundation can continue to play its role of neutral custodian, enabler and safeguardian of the protocol and the network. We will be publishing more details and a proper FAQ as the roll-out happens, so watch this space for more details.&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Introducing Policy Servers</title>
    <published>2025-04-17T17:00:00+00:00</published>
    <updated>2025-04-17T17:00:00+00:00</updated>
    <author>
      <name>Jim Mackenzie, VP Trust &amp; Safety — The Matrix.org Foundation</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/04/introducing-policy-servers/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/04/introducing-policy-servers/</id>
    <content type="html">&lt;p&gt;Last week, we shared details about &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;04&#x2F;11&#x2F;this-week-in-matrix-2025-04-11&#x2F;#dept-of-trust-safety-ok-woman&quot;&gt;ongoing attacks on Matrix&lt;&#x2F;a&gt;. Over the past week or so, we’ve tested some new tooling to help combat abuse on matrix.org.&lt;&#x2F;p&gt;
&lt;p&gt;If you run your own Synapse server and your users are present in the Foundation’s community rooms, you can benefit from this tooling by installing an experimental Synapse module. You can find the code and installation instructions &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;policyserv_spam_checker&quot;&gt;here&lt;&#x2F;a&gt;. We’re deliberately taking the bold step of announcing a tool and also announcing its deprecation in the same post. This is experimental work, and we are iterating quickly. We expect to have an implementation in Synapse shortly, so the module will be discontinued around May 21.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-are-policy-servers&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-are-policy-servers&quot; aria-label=&quot;Anchor link for: what-are-policy-servers&quot;&gt;🔗&lt;&#x2F;a&gt;What are policy servers?&lt;&#x2F;h2&gt;
&lt;p&gt;Policy servers are an overlapping layer of protection with existing community moderation tools such as &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;the-draupnir-project&#x2F;Draupnir&quot;&gt;Draupnir&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;mjolnir&quot;&gt;Mjolnir&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;maunium&#x2F;meowlnir&quot;&gt;Meowlnir&lt;&#x2F;a&gt;. Rooms can opt-in to this new layer of protection, recommending that servers participating in the room check events with a given policy server &lt;em&gt;before&lt;&#x2F;em&gt; they are sent to their clients. The policy server will pass an opinion on each event, recommending servers in the room to accept the event, or to reject it. For people in the room, this should be effectively invisible. Events which pass the check will be shown as normal, while ones which don’t will never make it through to their clients.&lt;&#x2F;p&gt;
&lt;p&gt;The Foundation intends to offer a policy server to room admins, but we hope that in time other providers will offer alternative policy servers. The Foundation is already running an experimental implementation for some of its public rooms, which we will release once we have confidence in the approach. We also expect that for many rooms, a policy server isn’t necessary, or spends most of the time in a low-power or disabled state. Element and the Foundation are exploring these ideas over the coming weeks.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;get-involved&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#get-involved&quot; aria-label=&quot;Anchor link for: get-involved&quot;&gt;🔗&lt;&#x2F;a&gt;Get involved&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4284&quot;&gt;MSC4284&lt;&#x2F;a&gt; is now open to support this work. Please get involved in the MSC, and help us to improve this addition to safety tooling for the network. We’d especially like to see implementations for non-Synapse servers.&lt;&#x2F;p&gt;
&lt;p&gt;Folks who run communities on Matrix who would like to test our policy server, reach out to us at &lt;a href=&quot;mailto:abuse@matrix.org?subject=policy-server-alpha&quot;&gt;abuse@matrix.org&lt;&#x2F;a&gt;, using the subject &lt;code&gt;policy-server-alpha&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>We&#x27;re at a crossroads</title>
    <published>2025-02-20T14:30:00+00:00</published>
    <updated>2025-02-20T14:30:00+00:00</updated>
    <author>
      <name>Thib, Robin Riley</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/02/crossroads/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/02/crossroads/</id>
    <content type="html">&lt;p&gt;After a &lt;a href=&quot;&#x2F;blog&#x2F;2024&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-special-2024&#x2F;&quot;&gt;successful 2024 with a lot to be proud of&lt;&#x2F;a&gt;, and a Matrix Conference that brought our community together to celebrate 10 years of Matrix, we step into 2025 with a light budget and a mighty team poised to make the most of it!&lt;&#x2F;p&gt;
&lt;p&gt;Our priorities remain to make Matrix a safer network, keep growing the ecosystem, make the most of our Governing Board, and drive a fruitful and friendly collaboration across all actors.&lt;&#x2F;p&gt;
&lt;p&gt;However, whether we will manage to get there is not fully a given.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;the-foundation-is-key-to-the-success-of-matrix&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-foundation-is-key-to-the-success-of-matrix&quot; aria-label=&quot;Anchor link for: the-foundation-is-key-to-the-success-of-matrix&quot;&gt;🔗&lt;&#x2F;a&gt;The Foundation is key to the success of Matrix&lt;&#x2F;h2&gt;
&lt;p&gt;The Matrix.org Foundation has gone from depending entirely on Element, the company set up by the creators of Matrix, to having half of its budget covered by its &lt;a href=&quot;&#x2F;support&#x2F;&quot;&gt;11 funding members&lt;&#x2F;a&gt;, which is a great success on the road to financial independence! However half of the budget being covered means half of it isn’t. Or in other words: the Foundation is not yet sustainable, despite running on the strictest possible budget, and is burning through its (relatively small) reserves. And we are at the point where the end of the road is in sight.&lt;&#x2F;p&gt;
&lt;p&gt;Why does it matter?&lt;&#x2F;p&gt;
&lt;p&gt;The Foundation has a clear &lt;a href=&quot;&#x2F;foundation&#x2F;about&#x2F;&quot;&gt;mission&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Matrix.org Foundation exists to act as a neutral &lt;strong&gt;custodian for Matrix&lt;&#x2F;strong&gt; and to nurture it as efficiently as possible as &lt;strong&gt;a single unfragmented standard, for the greater benefit of the whole ecosystem&lt;&#x2F;strong&gt;, not benefiting or privileging any single player or subset of players.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Without the Foundation and its programs, the Matrix protocol itself faces existential threats:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Without Trust &amp;amp; Safety efforts, bad actors and communities would proliferate on the network and make it unlivable for the rest.&lt;&#x2F;li&gt;
&lt;li&gt;Without a canonical specification, the shared infrastructure and a Spec Core Team to maintain it, the protocol would become fragmented, losing its effective interoperability – increasing the costs on all downstream users.&lt;&#x2F;li&gt;
&lt;li&gt;Without a neutral entity as the custodian of the specification, the ecosystem would first shatter and then consolidate around the biggest (likely for-profit) actor.&lt;&#x2F;li&gt;
&lt;li&gt;Without advocacy, conferences, documentation and tutorials, Matrix would become a niche protocol used by a few enthusiasts for side projects, whilst big proprietary and siloed networks continue to hold the world’s communications.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;implementing-the-vision&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#implementing-the-vision&quot; aria-label=&quot;Anchor link for: implementing-the-vision&quot;&gt;🔗&lt;&#x2F;a&gt;Implementing the vision&lt;&#x2F;h2&gt;
&lt;p&gt;But there is light at the end of the tunnel! Concretely, the Foundation delivers most of its value by fostering a healthy, fair and fertile ecosystem around Matrix. It needs to strike the right balance between:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Making Matrix accessible &amp;amp; visible.&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;For the general public it means maintaining an easy default onboarding server (Matrix.org).&lt;&#x2F;li&gt;
&lt;li&gt;For server administrators it means providing the right tooling to keep their users (and themselves!) safe.&lt;&#x2F;li&gt;
&lt;li&gt;For developers it means making it easy to develop products using Matrix, via documentation, tutorials, and in-person events.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Making Matrix compelling to build on.&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;This means maintaining the Matrix Specification as a canonical, unencumbered, patent free and royalty free specification.&lt;&#x2F;li&gt;
&lt;li&gt;Being responsive and vendor-neutral when an organisation or individual contributes.&lt;&#x2F;li&gt;
&lt;li&gt;Promoting the good players within the ecosystem.&lt;&#x2F;li&gt;
&lt;li&gt;Ensuring the network grows and attracts more users.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Making Matrix a product that benefits the greater good.&lt;&#x2F;strong&gt;
&lt;ul&gt;
&lt;li&gt;This means ensuring that the general public can easily build safe &amp;amp; easy to use communities on Matrix.&lt;&#x2F;li&gt;
&lt;li&gt;Ensuring that bad actors are proactively chased and discouraged to use Matrix.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;doing-less-to-do-better&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#doing-less-to-do-better&quot; aria-label=&quot;Anchor link for: doing-less-to-do-better&quot;&gt;🔗&lt;&#x2F;a&gt;Doing less to do better&lt;&#x2F;h3&gt;
&lt;p&gt;Matrix has been here for 10 years, and will hopefully be here for many more! But to continue to grow and thrive, it needs the Foundation to be around and healthy, which means carefully allocating its budget in order to continue to exist and fulfill its mission. This is why it needs to focus on critical programs and shut down some of its activities.&lt;&#x2F;p&gt;
&lt;p&gt;We view the following programs as critical to the Foundation’s mission:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Maintaining the canonical, backwards compatible, stable &lt;a href=&quot;https:&#x2F;&#x2F;spec.matrix.org&#x2F;latest&#x2F;&quot;&gt;Matrix Spec&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Developing protocol enhancements and Trust and Safety tooling, making the tools available to the ecosystem and moderating the servers under its control (typically Matrix.org) - &lt;a href=&quot;&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;&quot;&gt;see our recent blog post&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Running the Matrix.org homeserver as an initial home for newcomers&lt;&#x2F;li&gt;
&lt;li&gt;Promoting the Matrix protocol via online content, conferences and meet-ups and other marketing strategies&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We might fine tune our approach, but we can&#x27;t cease any of those programs without severe consequences for the ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;Meanwhile, bridges have been at the heart of Matrix for a long time. Public bridges hosted by the Matrix.org Foundation have been a very good resource to show the power of interoperability, connect communities together, and onboard many people into their Matrix journey.&lt;&#x2F;p&gt;
&lt;p&gt;However, these bridges require regular maintenance as the bridged platforms evolve their APIs, and significant engineering and moderation support to run. Luckily, the Matrix ecosystem is now more mature than it was at the time we spun up those public Slack, XMPP and IRC bridge instances. There are now commercial players like &lt;a href=&quot;https:&#x2F;&#x2F;www.beeper.com&#x2F;&quot;&gt;Beeper&lt;&#x2F;a&gt; providing a user-friendly offering for people who want to get all their conversations in a single app, or &lt;a href=&quot;https:&#x2F;&#x2F;indiehosters.net&#x2F;&quot;&gt;IndieHosters&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;www.fairkom.eu&#x2F;&quot;&gt;Fairkom&lt;&#x2F;a&gt; offering hosting for Matrix server and bridge instances (and much more).&lt;&#x2F;p&gt;
&lt;p&gt;So unless the Foundation manages to raise $100,000 of funding by the end of March 2025, we will have to focus our resources on the critical lines of work, and consequently &lt;strong&gt;we will have to shut down all the remaining bridges hosted by the Matrix.org Foundation. This includes bridges to Slack, XMPP, OFTC (IRC), and Snoonet (IRC).&lt;&#x2F;strong&gt; We will also mark the software behind those bridges as archived, as we don&#x27;t have the resources to accept new contributions.&lt;&#x2F;p&gt;
&lt;p&gt;In practice, the Foundation needs an additional $610K in revenue to break-even, but this $100K would extend our runway 1 month while we work on landing grants and new members. To put this in context, we nearly doubled our revenue in 2024, reaching $561K, but it was also the first year in which we carried the full cost of our operations: $1.2M. To make ends meet, we liquidated $283K worth of cryptocurrency donations and ended the year with a $356K deficit. We are currently on target for $587K revenue in 2025, with a modest increase in expenses.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;growing-the-ecosystem-and-the-network&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#growing-the-ecosystem-and-the-network&quot; aria-label=&quot;Anchor link for: growing-the-ecosystem-and-the-network&quot;&gt;🔗&lt;&#x2F;a&gt;Growing the ecosystem and the network&lt;&#x2F;h2&gt;
&lt;p&gt;Choosing to shut the bridges down is a difficult decision to make, but will allow us to focus on the critical projects which will keep the ecosystem growing. The success of Matrix depends on how widely it is used by the general public and by organisations – preferably natively rather than via bridges.&lt;&#x2F;p&gt;
&lt;p&gt;The more people and organisations rely on Matrix, the more attractive it becomes for organisations to build products and services on top of it, the more funding the Foundation gets, and the more the Foundation can in turn reinvest into the ecosystem and run initiatives that benefit all stakeholders for the growth of the network.&lt;&#x2F;p&gt;
&lt;p&gt;Once the Foundation is cashflow positive, it will be able to accelerate and eventually get on with the multiple projects the team and Governing Board have in mind to make Matrix fun, exciting, reliable, safe, easy to use, and above all useful. And we hope to get there by the end of the year.&lt;&#x2F;p&gt;
&lt;p&gt;Most importantly, despite the Trust and Safety team being the Foundation’s biggest expense, as explained in &lt;a href=&quot;&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;&quot;&gt;our blog post&lt;&#x2F;a&gt;, the team is still underresourced: they are understaffed and under a lot of pressure to deliver protocol improvements, better tooling for server admins, and ensure Matrix.org is a good citizen of the open federation. &lt;strong&gt;T&amp;amp;S will be the first area to see increased funding.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Separately, the Foundation wants to continue executing on its mission! Among others, better connect the doers in the ecosystem with the people and organisations who need their energy, share the successes and learnings from the community: the Matrix Conference was an incredible success and we want to see more of that.&lt;&#x2F;p&gt;
&lt;p&gt;We’ve also seen a clear change in how many users and organisations were adopting Matrix in the last few months: the world needs a decentralised end-to-end encrypted network to communicate more than ever, and it shows! We want to uplift the good players which are driving this growth.&lt;&#x2F;p&gt;
&lt;p&gt;The Foundation would also love to support more public policy efforts, which give an opportunity to shape the world by educating regulators, like for the &lt;a href=&quot;&#x2F;blog&#x2F;2022&#x2F;03&#x2F;29&#x2F;how-do-you-implement-interoperability-in-a-dma-world&#x2F;&quot;&gt;Digital Markets Act&lt;&#x2F;a&gt;; or stronger involvement in standardisation: we had no choice but reduce the effort spent on participating in &lt;a href=&quot;https:&#x2F;&#x2F;datatracker.ietf.org&#x2F;wg&#x2F;mimi&#x2F;about&#x2F;&quot;&gt;MIMI, the IETF working group for instant messaging interoperability&lt;&#x2F;a&gt; due to lack of resources.&lt;&#x2F;p&gt;
&lt;p&gt;There is so much more that we could do to make Matrix better and realise its full potential.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;so-what-now&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#so-what-now&quot; aria-label=&quot;Anchor link for: so-what-now&quot;&gt;🔗&lt;&#x2F;a&gt;So what now?&lt;&#x2F;h2&gt;
&lt;p&gt;Right now, the Foundation urgently needs &lt;a href=&quot;&#x2F;support&#x2F;&quot;&gt;your financial help&lt;&#x2F;a&gt;. For the sake of a safe network, our primary focus today, but also to be able to deliver on the reason we all want Matrix to succeed.&lt;&#x2F;p&gt;
&lt;p&gt;Because we believe that:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;People should have full control over their own communication.&lt;&#x2F;li&gt;
&lt;li&gt;People should not be locked into centralised communication silos, but instead be free to pick who hosts their communication without limiting who they can reach.&lt;&#x2F;li&gt;
&lt;li&gt;The ability to converse securely and privately is a basic human right.&lt;&#x2F;li&gt;
&lt;li&gt;Communication should be available to everyone as a free and open, unencumbered, standard and global network.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;In short:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;If you are an organisation building on top of Matrix&lt;&#x2F;strong&gt;, you can help by &lt;strong&gt;becoming a &lt;a href=&quot;&#x2F;membership&#x2F;&quot;&gt;member&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;, which also gives you the opportunity to be eligible to participate in the Governing Board, and other perks.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;If you are an organisation buying Matrix services or products&lt;&#x2F;strong&gt;, you can help by &lt;strong&gt;ensuring that your vendor is financially contributing back to the project&lt;&#x2F;strong&gt; or becoming a member yourself.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;If you are an individual using Matrix,&lt;&#x2F;strong&gt; you can help by &lt;strong&gt;making a &lt;a href=&quot;&#x2F;support&#x2F;#help-us&quot;&gt;donation&lt;&#x2F;a&gt; or becoming a &lt;a href=&quot;&#x2F;membership&#x2F;&quot;&gt;member&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;If you are a philanthropist or other funder&lt;&#x2F;strong&gt;, you can help by getting in touch with us at &lt;a href=&quot;mailto:funding@matrix.org&quot;&gt;funding@matrix.org&lt;&#x2F;a&gt; to discuss funding options.&lt;&#x2F;p&gt;
&lt;p&gt;It isn’t the &lt;a href=&quot;&#x2F;blog&#x2F;2022&#x2F;12&#x2F;01&#x2F;funding-matrix-via-the-matrix-org-foundation&#x2F;&quot;&gt;first&lt;&#x2F;a&gt; &lt;a href=&quot;&#x2F;blog&#x2F;2024&#x2F;04&#x2F;open-source-publicly-funded-service&#x2F;&quot;&gt;time&lt;&#x2F;a&gt; we’ve rung the alarm bell, and it is no fun to beg for help. We are at a crossroads, where the vibrancy of the ecosystem and enthusiasm around Matrix is not reflected in the support the Foundation gets, and we are at risk of losing this common resource and all it offers.&lt;&#x2F;p&gt;
&lt;p&gt;But all in all, we are optimists – we wouldn’t have begun this journey if we weren’t – and we believe that there are people out there who realise that sovereign and secure communication is as high on the list of today’s essential technology – if not higher – as ensuring AI is safe, so let’s spread the word and let’s continue working on a safer and more sovereign world!&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Switching to Curated Room Directories</title>
    <published>2025-02-20T09:30:00+00:00</published>
    <updated>2025-02-20T09:30:00+00:00</updated>
    <author>
      <name>Jim Mackenzie, VP Trust &amp; Safety — The Matrix.org Foundation</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/02/curated-room-directories/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/02/curated-room-directories/</id>
    <content type="html">&lt;p&gt;As of yesterday, Matrix.org is using a curated room directory. We’re paring down the rooms that are visible to a collection of moderated spaces and rooms. This is an intervention against abuse on the network, and a continuation of work that we started in May 2024.&lt;&#x2F;p&gt;
&lt;p&gt;In early 2024 we noticed an uptick in users creating rooms to share harmful content. After a few iterations to identify these rooms and shut them down, we realised we needed to change tack. We landed on first reducing the discoverability and reach of these rooms - after all, no other encrypted messaging platform provides a room directory service, and unfortunately it can clearly serve as a mechanism to amplify abuse. So, in May 2024 we froze the room directory. Matrix.org users were no longer permitted to publish their rooms to the room directory. We also did some manual intervention to reduce the size of the directory as a whole, and remove harmful rooms ahead of blocking them.&lt;&#x2F;p&gt;
&lt;p&gt;This intervention aimed at three targets:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Lowering the risk of users discovering harmful rooms&lt;&#x2F;li&gt;
&lt;li&gt;Stopping the amplification of abuse via an under-moderated room directory&lt;&#x2F;li&gt;
&lt;li&gt;Reducing the risk for Matrix client developers for app store reviews&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;In truth, the way room discovery works needs some care and attention. Room directories pre-date Spaces, and some of the assumptions don&#x27;t hold up to real world use. From the freeze, and the months since, we&#x27;ve learned a few things. First, the criteria for appearing in a server&#x27;s room directory in the first place is way too broad. Also, abuse doesn&#x27;t happen in a vacuum. Some rooms that were fine at the time of the freeze, are not now. There are a few different causes for that, including room moderators losing interest. We looked for criteria to give us the confidence in removing the freeze, and we hit all the edge cases that make safety work so challenging.&lt;&#x2F;p&gt;
&lt;p&gt;Those lessons led to a realization. One of the values of the Foundation is pragmatism, rather than perfection. We weren&#x27;t living up to that value, so we decided to change. The plan became simpler: move to a curated list of rooms, with a rough first pass of criteria for inclusion. In parallel, we asked the Governing Board to come up with a process for adding rooms in the future, and to refine the criteria. We&#x27;ve completed the first part of the plan today.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-comes-next&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-comes-next&quot; aria-label=&quot;Anchor link for: what-comes-next&quot;&gt;🔗&lt;&#x2F;a&gt;What comes next&lt;&#x2F;h2&gt;
&lt;p&gt;There&#x27;s plenty of scope for refinement here, and we&#x27;ve identified a few places where we can get started:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The Governing Board will publish criteria for inclusion in the Matrix.org room directory. They&#x27;ll also tell you how you can suggest rooms and spaces for the directory.&lt;&#x2F;li&gt;
&lt;li&gt;We&#x27;re going to recommend safer defaults. Servers should not let users publish rooms unless there are appropriate filtering and moderation tools in place, and people to wield them. For instance, Element have made this change to Synapse in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;synapse&#x2F;pull&#x2F;18175&quot;&gt;PR18175&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;We&#x27;re exploring discovery as a topic, including removing the room directory API. One promising idea is to use Spaces: servers could publish a default space, with rooms curated by the server admin. Our recent post includes some other projects we have in this area: &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;&quot;&gt;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;faqs&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#faqs&quot; aria-label=&quot;Anchor link for: faqs&quot;&gt;🔗&lt;&#x2F;a&gt;FAQs&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;What criteria did you use for this first pass?&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
We used a rough rubric: Is the room already in the room directory, and does the Foundation already protect the room with the Matrix.org Mjolnir? From there, we extended to well-moderated rooms and spaces that fit one of the following:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Matrix client and server implementations (e.g. FluffyChat, Dendrite)&lt;&#x2F;li&gt;
&lt;li&gt;Matrix community projects (e.g. t2bot.io)&lt;&#x2F;li&gt;
&lt;li&gt;Matrix homeserver spaces with a solid safety record (e.g. tchncs.de, envs.net)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Why isn&#x27;t the Office of the Foundation in the directory?&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
It didn&#x27;t exist before May 2024, so the Office has never been in the directory. We&#x27;re going to add it in the next few days, with a couple of other examples that fit our rough rubric.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;How do I add my room&#x2F;space to the list?&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
At the moment, you can&#x27;t. The Governing Board will publish the criteria and the flow for getting on the list.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;What do I do if I find a harmful room in the current directory?&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
You shouldn&#x27;t, but if a room does have harmful content, check out &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;#how-you-can-help&quot;&gt;How you can help&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>Building a Safer Matrix</title>
    <published>2025-02-14T14:30:00+00:00</published>
    <updated>2025-02-14T14:30:00+00:00</updated>
    <author>
      <name>Jim Mackenzie, VP Trust &amp; Safety — The Matrix.org Foundation</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2025/02/building-a-safer-matrix/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2025/02/building-a-safer-matrix/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;N.B. this post is also available &lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;#german&quot;&gt;in German&lt;&#x2F;a&gt; below.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;introduction&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot;&gt;🔗&lt;&#x2F;a&gt;Introduction&lt;&#x2F;h2&gt;
&lt;p&gt;Right now, the world needs secure communication more than ever. Waves of security breaches such as the “Salt Typhoon” compromise of the telephone network’s wiretap system have led the &lt;a href=&quot;https:&#x2F;&#x2F;www.npr.org&#x2F;2024&#x2F;12&#x2F;17&#x2F;nx-s1-5223490&#x2F;text-messaging-security-fbi-chinese-hackers-security-encryption&quot;&gt;FBI to advise US citizens to switch to end-to-end-encrypted communication&lt;&#x2F;a&gt;. Geopolitical shifts painfully highlight the importance of privacy-preserving communication for vulnerable minorities, in fear of being profiled or targeted. Meanwhile the &lt;a href=&quot;https:&#x2F;&#x2F;www.bbc.co.uk&#x2F;news&#x2F;articles&#x2F;cjex5w1z02do&quot;&gt;International Rules-Based Order is at risk&lt;&#x2F;a&gt; like never before.&lt;&#x2F;p&gt;
&lt;p&gt;We built Matrix to provide secure communication for &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;about&quot;&gt;everyone&lt;&#x2F;a&gt; - to be the missing communication layer of the Open Web. This is not hyperbole: Matrix is literally layered on top of the Web - letting organisations run their own servers while communicating in a wider network. As a result, Matrix is “decentralised”: the people who built Matrix do not control those servers; they are controlled by the admins who run them - and just as the Web will outlive Tim Berners-Lee, Matrix will outlive us.&lt;&#x2F;p&gt;
&lt;p&gt;Matrix itself is a protocol (like email), defined as an &lt;a href=&quot;https:&#x2F;&#x2F;spec.matrix.org&quot;&gt;open standard&lt;&#x2F;a&gt; maintained by The Matrix.org Foundation C.I.C - a UK non-profit incorporated in 2018 to act as the steward of the protocol; to coordinate the protocol’s evolution and to work on keeping the public Matrix network safe. The Foundation is funded by donations from its &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;support&#x2F;&quot;&gt;members&lt;&#x2F;a&gt; (both individuals and organisations), and also organises the Matrix.org homeserver instance used by many as their initial home on the network.&lt;&#x2F;p&gt;
&lt;p&gt;Much like the Web, Matrix is a powerful technology available to the general public, which can be used both for good and evil.&lt;&#x2F;p&gt;
&lt;p&gt;The vast majority of Matrix’s use is constructive: enabling collaboration for open source software communities such as &lt;a href=&quot;https:&#x2F;&#x2F;wiki.mozilla.org&#x2F;Matrix&quot;&gt;Mozilla&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;community.kde.org&#x2F;Matrix&quot;&gt;KDE&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;wiki.gnome.org&#x2F;GettingInTouch&#x2F;Matrix&quot;&gt;GNOME&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;docs.fedoraproject.org&#x2F;en-US&#x2F;project&#x2F;communications&#x2F;&quot;&gt;Fedora&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;ubuntu.com&#x2F;community&#x2F;communications&#x2F;matrix&quot;&gt;Ubuntu&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;wiki.debian.org&#x2F;Matrix&quot;&gt;Debian&lt;&#x2F;a&gt;, and thousands of smaller projects; providing a secure space for vulnerable user groups; secure collaboration throughout academia (particularly in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-tu-dresden-de&#x2F;Dokumentation&#x2F;blob&#x2F;main&#x2F;static&#x2F;images&#x2F;federation_map.svg&quot;&gt;DACH&lt;&#x2F;a&gt;); &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2021&#x2F;07&#x2F;21&#x2F;germany-s-national-healthcare-system-adopts-matrix&#x2F;&quot;&gt;protecting healthcare communication&lt;&#x2F;a&gt; in Germany; protecting national communication in &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;case-studies&#x2F;tchap&quot;&gt;France&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;blog&#x2F;bundesmessenger-is-a-milestone-in-germanys-ground-breaking-vision&#x2F;&quot;&gt;Germany&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;blog&#x2F;dsam-och-esam-forordar-matrix-for-saker-och-federerad-kommunikation-inom-sveriges-offentliga-sektor&#x2F;&quot;&gt;Sweden&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=EIRuxDuWIDE&quot;&gt;Switzerland&lt;&#x2F;a&gt;; and providing secure communication for &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=4aswIHJRwkk&quot;&gt;NATO&lt;&#x2F;a&gt;, the &lt;a href=&quot;https:&#x2F;&#x2F;www.wyden.senate.gov&#x2F;imo&#x2F;media&#x2F;doc&#x2F;wyden-schmitt_dod_letter.pdf&quot;&gt;US DoD&lt;&#x2F;a&gt; and Ukraine. You can see the scope and caliber of the Matrix ecosystem from the &lt;a href=&quot;https:&#x2F;&#x2F;2024.matrix.org&#x2F;watch&quot;&gt;talks at The Matrix Conference&lt;&#x2F;a&gt; in September.&lt;&#x2F;p&gt;
&lt;p&gt;However, precisely the same capabilities which benefit privacy-sensitive organisations mean that a small proportion of members of the public will try to abuse the system.&lt;&#x2F;p&gt;
&lt;p&gt;We have been painfully aware of the risk of abuse since the outset of the project, and rather than abdicating responsibility in the way that many encrypted messengers do, we’ve worked steadily at addressing it. In the early days, even before we saw significant abuse, this meant speculating on approaches to combat it (e.g. our &lt;a href=&quot;https:&#x2F;&#x2F;archive.fosdem.org&#x2F;2017&#x2F;schedule&#x2F;event&#x2F;matrix_future&#x2F;%20&quot;&gt;FOSDEM 2017&lt;&#x2F;a&gt; talk and subsequent 2020 &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2020&#x2F;10&#x2F;19&#x2F;combating-abuse-in-matrix-without-backdoors&#x2F;%20&quot;&gt;blog post&lt;&#x2F;a&gt; proposing decentralised reputation; now recognisable in &lt;a href=&quot;https:&#x2F;&#x2F;bsky.app&quot;&gt;Bluesky’s&lt;&#x2F;a&gt; successful &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bluesky-social&#x2F;ozone&quot;&gt;Ozone&lt;&#x2F;a&gt; anti-abuse system and composable moderation). However, these posts were future-facing at the time - and these days we have different, concrete anti-abuse efforts in place.&lt;&#x2F;p&gt;
&lt;p&gt;In this post, we’d like to explain where things are at, and how they will continue to improve in future.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-we-do-today&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-we-do-today&quot; aria-label=&quot;Anchor link for: what-we-do-today&quot;&gt;🔗&lt;&#x2F;a&gt;What we do today&lt;&#x2F;h2&gt;
&lt;p&gt;The largest use of our funding as a Foundation is spent on our full-time Safety team, and we expanded that commitment at the end of 2024. On a daily basis, the team triage, investigate, identify and remove harmful content from the Matrix.org server, and remove users who share that material. They also build tooling to prevent, detect and remove harmful content, and to protect the people who work on user reports and investigations.&lt;&#x2F;p&gt;
&lt;p&gt;The humans who make up the Foundation Trust &amp;amp; Safety team are dedicated professionals who put their own mental health and happiness in jeopardy every day, reviewing harmful content added by people abusing the service we provide. Their work exposes them to harms including child sexual exploitation and abuse (CSEA), terrorist content, non-consensual intimate imagery (NCII), harassment, hate, deepfakes, fraud, misinformation, illegal pornography, drugs, firearms, spam, suicide, human trafficking and more. It’s a laundry list of the worst that humanity has to offer. The grim reality is that all online services have to deal with these problems, and to balance the work to detect and remove that content with the rights of their users. We’re committed to that work, and to supporting the Trust &amp;amp; Safety team to the best of our ability — we are very grateful for their sacrifice.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h3 id=&quot;safety-tooling-on-matrix&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#safety-tooling-on-matrix&quot; aria-label=&quot;Anchor link for: safety-tooling-on-matrix&quot;&gt;🔗&lt;&#x2F;a&gt;Safety Tooling on Matrix&lt;&#x2F;h3&gt;
&lt;p&gt;The Safety team tackles safety from two perspectives: keeping the users on the Matrix.org server safe, and helping to make the wider Matrix network as a whole safe, secure and private. For the latter, we contribute to the development of the Matrix specification, engage with the Matrix ecosystem, and consult with governments, law enforcement, civil society groups, academia and industry groups. We also invest in open source tooling to help the ecosystem with this problem. For the former, we employ a mix of proactive and reactive approaches to online harms.&lt;&#x2F;p&gt;
&lt;p&gt;The Matrix Specification includes a system for reporting rooms, messages and users to your homeserver, API endpoints for server admins to lock, suspend and deactivate users, mechanisms for quarantining harmful media and redacting unwanted messages. We use all of these, receiving hundreds of reports per week from users of the Matrix.org server and emails to our reporting address.&lt;&#x2F;p&gt;
&lt;p&gt;Additionally, we scan room names and titles on the Matrix.org server using a variety of keyword lists, and highlight matches for human review. We also maintain a moderation bot called &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;mjolnir&quot;&gt;Mjolnir&lt;&#x2F;a&gt;, which we use to moderate our community rooms, and offer as open source for other communities to use. Behind the scenes, we have tools to help the frontline safety team to investigate rooms, users and messages, and to take action where there is abuse.&lt;&#x2F;p&gt;
&lt;p&gt;When we identified abuse of the Matrix.org server room directory, we froze the directory and removed abusive rooms. In the near future, we’ll be moving to a curated directory, to stop it being used as an advertising system for abuse. It’s worth noting that historically Matrix has unintentionally given a platform to abuse with the concept of these “room directories”, which (unlike other encrypted messengers like Signal or Threema or WhatsApp) allow any user to advertise public chatrooms without needing admin approval - this is a mistake we deeply regret, and will address by switching to curated room directories in general.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;approaches-to-tackling-csea&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#approaches-to-tackling-csea&quot; aria-label=&quot;Anchor link for: approaches-to-tackling-csea&quot;&gt;🔗&lt;&#x2F;a&gt;Approaches to tackling CSEA&lt;&#x2F;h4&gt;
&lt;p&gt;One of our main focuses is tackling child sexual exploitation and abuse. We abhor CSEA, and have always explicitly called it out in our Terms and Conditions as something we work with law enforcement to combat. We deploy tooling and specific techniques to arrest the spread of CSEA on the Matrix.org server:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;We work with the Internet Watch Foundation (IWF), National Center for Missing and Exploited Children (NCMEC), &lt;a href=&quot;http:&#x2F;&#x2F;cybertip.ca&quot;&gt;cybertip.ca&lt;&#x2F;a&gt;, the Australian eSafety Commissioner and other parties. (Element, who runs the Matrix.org server on behalf of the Foundation, has been an active member of &lt;a href=&quot;https:&#x2F;&#x2F;www.iwf.org.uk&#x2F;membership&#x2F;our-members&#x2F;element&#x2F;&quot;&gt;IWF&lt;&#x2F;a&gt; since 2020).&lt;&#x2F;li&gt;
&lt;li&gt;We work with law enforcement in the UK and the US.&lt;&#x2F;li&gt;
&lt;li&gt;We’ve consulted with groups like the Lucy Faithfull Foundation and Columbia SIPA to learn from their expertise.&lt;&#x2F;li&gt;
&lt;li&gt;We use Cloudflare’s &lt;a href=&quot;https:&#x2F;&#x2F;developers.cloudflare.com&#x2F;cache&#x2F;reference&#x2F;csam-scanning&#x2F;&quot;&gt;CSAM detection APIs&lt;&#x2F;a&gt; on unencrypted content on Matrix.org.&lt;&#x2F;li&gt;
&lt;li&gt;We use the IWF Hash, URL and Keyword lists from the IWF on unencrypted content on Matrix.org.&lt;&#x2F;li&gt;
&lt;li&gt;We block rooms, remove media and suspend users who participate in rooms dedicated to sharing CSEA.&lt;&#x2F;li&gt;
&lt;li&gt;We engage productively with and welcome robust critique from civil society groups, and invite them to join us in tackling CSEA. Check out the &lt;strong&gt;&lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;#how-you-can-help&quot;&gt;How you can help&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt; section below for details.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;recent-updates&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#recent-updates&quot; aria-label=&quot;Anchor link for: recent-updates&quot;&gt;🔗&lt;&#x2F;a&gt;Recent Updates&lt;&#x2F;h3&gt;
&lt;p&gt;Over the past six months, we’ve invested in improved tooling for the frontline team who review user reports. We’ve sponsored the addition of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;synapse&#x2F;pull&#x2F;17964&quot;&gt;account suspension&lt;&#x2F;a&gt; to the Matrix Specification, and added a &lt;a href=&quot;https:&#x2F;&#x2F;element-hq.github.io&#x2F;synapse&#x2F;latest&#x2F;admin_api&#x2F;user_admin_api.html#redact-all-the-events-of-a-user&quot;&gt;mass redaction API&lt;&#x2F;a&gt; endpoint for the most popular Matrix server implementation, Synapse, so that both the Matrix.org server and other server instances in the ecosystem can benefit. Suspension gives us reversible account enforcement, which means we can develop more automated systems for faster takedown ahead of investigation. This should reduce the time that illegal material is accessible, while enhancing the rights and protections of our users. We’ve also recently added &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;06&#x2F;26&#x2F;sunsetting-unauthenticated-media&#x2F;&quot;&gt;authenticated media&lt;&#x2F;a&gt;, stopping abuse of Matrix as a content distribution network. We worked with the IWF on this project, following reports of abuse of Matrix servers as a content delivery mechanism for &lt;a href=&quot;https:&#x2F;&#x2F;www.iwf.org.uk&#x2F;annual-report-2023&#x2F;trends-and-data&#x2F;icap-sites&#x2F;&quot;&gt;ICAP sites&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-matrix-community&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-matrix-community&quot; aria-label=&quot;Anchor link for: the-matrix-community&quot;&gt;🔗&lt;&#x2F;a&gt;The Matrix Community&lt;&#x2F;h3&gt;
&lt;p&gt;The wider Matrix community has strong anti-abuse initiatives, which we are deeply encouraged by. In particular, the work on the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;the-draupnir-project&#x2F;Draupnir&quot;&gt;Draupnir&lt;&#x2F;a&gt; moderation bot project and the Community Moderation Effort (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#community-moderation-effort-bl:neko.dev&quot;&gt;CME&lt;&#x2F;a&gt;) are excellent additions to the safety ecosystem on Matrix. At the server tooling level, Awesome Technologies’ &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Awesome-Technologies&#x2F;synapse-admin&quot;&gt;synapse-admin tool&lt;&#x2F;a&gt; and the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;etkecc&#x2F;synapse-admin&quot;&gt;fork by etke.cc&lt;&#x2F;a&gt; are great examples of how open source ecosystems can contribute to safety tooling. We celebrate their work, and hope to see more grass-roots developments in the coming months and years.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-we-are-working-on&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-we-are-working-on&quot; aria-label=&quot;Anchor link for: what-we-are-working-on&quot;&gt;🔗&lt;&#x2F;a&gt;What we are working on&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reporting&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
While we have a functional reporting system, we can make it better. In particular, users will receive updates on their reports and outcomes of those investigations. We’ll improve how users are notified about moderation action taken on their account, and how they can appeal those decisions. The entire ecosystem will benefit from these improvements, as we will contribute them to the Matrix Spec.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Discovery &amp;amp; Project Intercept&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
We’re in the early stages of a project to tackle the search and discovery of CSEA. We’ve had productive conversations with the Lucy Faithfull Foundation and Project Intercept about effective steps to redirect harmful search queries on Matrix.org for that kind of content.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Transparency Reporting&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Accountability is important, so we’re aiming to start releasing transparency reports for Matrix.org this year. The project is nascent, but we’ll share details and invite contributions as we get closer to making it a reality. We’ll be working closely with the &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;category&#x2F;governing-board&#x2F;&quot;&gt;Governing Board&lt;&#x2F;a&gt; on this project. We are hopeful that adding transparency reports will support our applications to join industry groups like &lt;a href=&quot;https:&#x2F;&#x2F;gifct.org&#x2F;&quot;&gt;GIFCT&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;techagainstterrorism.org&#x2F;home&quot;&gt;Tech Against Terrorism&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;www.technologycoalition.org&#x2F;&quot;&gt;Tech Coalition&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Terms of Service updates&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
We’re overhauling our terms of service to make it clearer what content is forbidden, and how to report it to us. Where we use proactive scanning techniques, we’ll make that clear in the terms, including how to appeal decisions made by automated systems.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Open source our tooling&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
As we improve the tooling we use to manage safety on Matrix.org, we want to share our work. We’ll talk more about our goals here in future updates. We’re also engaging with the work of open source safety tooling that &lt;a href=&quot;https:&#x2F;&#x2F;roost.tools&#x2F;partnerships&quot;&gt;ROOST&lt;&#x2F;a&gt; are doing, as one of their partners.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Meeting and beating our obligations under the Online Safety Act&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
We’re based in the UK, and we’ve engaged productively with the Online Safety Act since its conception. That includes our continued robust opposition to threats to end-to-end encryption. We already employ perceptual hash matching for CSEA content in unencrypted rooms, and we will continue to invest in this area, to work towards faster and more accurate takedowns, while respecting the privacy of our users.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Talking about our work, sharing what we learn&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
A fair criticism of the Foundation is that we haven’t shared publicly about what we do to keep Matrix.org users safe enough, nor what we do to ensure that Matrix as a platform has safe foundations. Let’s change that in 2025, starting with this post.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-you-can-help&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-you-can-help&quot; aria-label=&quot;Anchor link for: how-you-can-help&quot;&gt;🔗&lt;&#x2F;a&gt;How you can help&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;as-a-user-of-matrix&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#as-a-user-of-matrix&quot; aria-label=&quot;Anchor link for: as-a-user-of-matrix&quot;&gt;🔗&lt;&#x2F;a&gt;As a user of Matrix&lt;&#x2F;h3&gt;
&lt;p&gt;If you encounter harmful content on Matrix, you can report it in a few ways:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;If you are a Matrix.org homeserver user, you can &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;element-x-ios&#x2F;pull&#x2F;587&quot;&gt;report the content&lt;&#x2F;a&gt; from your client, and it will head to our Trust &amp;amp; Safety team. Matrix clients like Element iOS now allow users to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;element-ios&#x2F;pull&#x2F;7805&quot;&gt;report rooms&lt;&#x2F;a&gt;, and we understand it will be available in Element X, Element Android and Element Web soon.&lt;&#x2F;li&gt;
&lt;li&gt;If you use another Matrix server, you can report to your server administrator from your client too.&lt;&#x2F;li&gt;
&lt;li&gt;If you are not a Matrix user, or if you are a user on another homeserver who wants to let us know about harmful content on Matrix.org, you can email us at &lt;a href=&quot;mailto:abuse@matrix.org&quot;&gt;abuse@matrix.org&lt;&#x2F;a&gt; with the information you have. Room IDs and user IDs are very helpful. Please don&#x27;t send us screenshots of harmful content — we&#x27;ll let you know if we need more information.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;if-you-run-a-matrix-server&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#if-you-run-a-matrix-server&quot; aria-label=&quot;Anchor link for: if-you-run-a-matrix-server&quot;&gt;🔗&lt;&#x2F;a&gt;If you run a Matrix server&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Open registration is &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;synapse&#x2F;commit&#x2F;58367a9da2539abdbfe4dc817fba5b179b95334b&quot;&gt;disabled by default&lt;&#x2F;a&gt; in Synapse, and we support that default. If your server offers open registration, you &lt;strong&gt;must&lt;&#x2F;strong&gt; invest in a safety team to provide appropriate moderation coverage, and mitigate the risks of allowing unknown users to use your server.&lt;&#x2F;li&gt;
&lt;li&gt;Review who is signing up for your server, and the rooms that your server joins.&lt;&#x2F;li&gt;
&lt;li&gt;Review reports from your users, and take action to remove harmful content they report. You should check your legal obligations in the country you host your server.&lt;&#x2F;li&gt;
&lt;li&gt;Work with other server operators to share information about harmful rooms and users. You can reach out to our Safety team at &lt;a href=&quot;mailto:abuse@matrix.org&quot;&gt;abuse@matrix.org&lt;&#x2F;a&gt; to start that conversation.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;civil-society-groups-academia-and-industry-groups&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#civil-society-groups-academia-and-industry-groups&quot; aria-label=&quot;Anchor link for: civil-society-groups-academia-and-industry-groups&quot;&gt;🔗&lt;&#x2F;a&gt;Civil Society Groups, Academia and Industry Groups&lt;&#x2F;h3&gt;
&lt;p&gt;We welcome the help of civil society groups and academics working in this area. Please reach out to &lt;a href=&quot;mailto:abuse@matrix.org&quot;&gt;abuse@matrix.org&lt;&#x2F;a&gt; with your contact details and area of interest, and we&#x27;ll talk. We&#x27;re very interested in bringing on trusted flaggers, so if you want to send us reports, please let us know. Challenging the spread of online harm needs all parts of the puzzle to work together, and we’re looking to be a good example of how tech can work for society. For industry groups, we’d love to work with you, to share experiences and to learn from each other. The barriers to entry for these groups are a challenge, and we’d welcome your help in participating.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;law-enforcement&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#law-enforcement&quot; aria-label=&quot;Anchor link for: law-enforcement&quot;&gt;🔗&lt;&#x2F;a&gt;Law Enforcement&lt;&#x2F;h3&gt;
&lt;p&gt;Please check out our guidelines here: &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;legal&#x2F;law-enforcement-guidelines&#x2F;&quot;&gt;https:&#x2F;&#x2F;matrix.org&#x2F;legal&#x2F;law-enforcement-guidelines&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;funding&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#funding&quot; aria-label=&quot;Anchor link for: funding&quot;&gt;🔗&lt;&#x2F;a&gt;Funding&lt;&#x2F;h3&gt;
&lt;p&gt;The tech industry under-invests in Safety. We’re trying to do things better, and Safety is the largest line item in the Matrix.org Foundation budget. This investment is despite the challenges we face in our &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-special-2024&#x2F;&quot;&gt;ongoing&lt;&#x2F;a&gt; attempts to &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;01&#x2F;2024-roadmap-and-fundraiser&#x2F;&quot;&gt;raise funds&lt;&#x2F;a&gt; to support the development of Matrix &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;04&#x2F;open-source-publicly-funded-service&#x2F;&quot;&gt;and&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;07&#x2F;17&#x2F;ngi-open-letter&#x2F;&quot;&gt;open software generally&lt;&#x2F;a&gt;. We rely on donations to operate. Big public and private organizations use the work we do, often without contributing back to support that work financially. It would be easy to sacrifice Trust &amp;amp; Safety spending given that set of economic constraints, but we’re trying to find a better path through. If you would like to fund our work on safety, please reach out to the Foundation at &lt;a href=&quot;mailto:funding@matrix.org&quot;&gt;funding@matrix.org&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;br &#x2F;&gt;
&lt;h1 id=&quot;german&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#german&quot; aria-label=&quot;Anchor link for: german&quot;&gt;🔗&lt;&#x2F;a&gt;Für mehr Schutz in Matrix&lt;&#x2F;h1&gt;
&lt;h2 id=&quot;einleitung&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#einleitung&quot; aria-label=&quot;Anchor link for: einleitung&quot;&gt;🔗&lt;&#x2F;a&gt;Einleitung&lt;&#x2F;h2&gt;
&lt;p&gt;Gerade jetzt braucht die Welt mehr denn je sichere Kommunikation. Wellen von Sicherheitsverletzungen wie der „Salt Typhoon“, der das Abhörsystem des Telefonnetzes kompromittierte, haben das &lt;a href=&quot;https:&#x2F;&#x2F;www.npr.org&#x2F;2024&#x2F;12&#x2F;17&#x2F;nx-s1-5223490&#x2F;text-messaging-security-fbi-chinese-hackers-security-encryption&quot;&gt;FBI veranlasst, den US-Bürgern zu raten, auf eine Ende-zu-Ende-verschlüsselte Kommunikation umzusteigen&lt;&#x2F;a&gt;. Geopolitische Veränderungen machen schmerzlich deutlich, wie wichtig der Schutz der Privatsphäre bei der Kommunikation für gefährdete Minderheiten ist, die befürchten, profiliert oder ins Visier genommen zu werden. Gleichzeitig ist die &lt;a href=&quot;https:&#x2F;&#x2F;www.bbc.co.uk&#x2F;news&#x2F;articles&#x2F;cjex5w1z02do&quot;&gt;regelbasierte internationale Ordnung so gefährdet&lt;&#x2F;a&gt; wie nie zuvor.&lt;&#x2F;p&gt;
&lt;p&gt;Wir haben Matrix entwickelt, um sichere Kommunikation &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;about&quot;&gt;für alle&lt;&#x2F;a&gt; zu ermöglichen - um die fehlende Kommunikationsschicht des Open Web zu sein. Das ist keine Übertreibung: Matrix ist buchstäblich eine Schicht über dem Web, die es Organisationen ermöglicht, ihre eigenen Server zu betreiben und gleichzeitig in einem größeren Netzwerk zu kommunizieren. Folglich ist Matrix „dezentralisiert“: Die Leute, die Matrix entwickelt haben, kontrollieren diese Server nicht; sie werden von den Administratoren kontrolliert, die sie betreiben - und so wie das Web Tim Berners-Lee überleben wird, wird Matrix uns überleben.&lt;&#x2F;p&gt;
&lt;p&gt;Matrix selbst ist ein Protokoll (wie E-Mail), das als &lt;a href=&quot;http:&#x2F;&#x2F;spec.matrix.org&quot;&gt;offener Standard&lt;&#x2F;a&gt; definiert ist und von der Matrix.org Foundation C.I.C. gepflegt wird - einer gemeinnützigen britischen Stiftung, die 2018 gegründet wurde, um als Verwalterin des Protokolls zu fungieren, die Weiterentwicklung des Protokolls zu koordinieren und das öffentliche Matrix-Netzwerk sicher zu halten. Die Stiftung wird durch Spenden ihrer &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;support&#x2F;&quot;&gt;Mitglieder&lt;&#x2F;a&gt; (sowohl Einzelpersonen als auch Organisationen) finanziert und organisiert auch die Matrix.org-Homeserver-Instanz, die von vielen als erste Heimat im Netzwerk genutzt wird.&lt;&#x2F;p&gt;
&lt;p&gt;Ähnlich wie das Internet ist auch Matrix eine mächtige Technologie, die der Allgemeinheit zur Verfügung steht und sowohl zum Guten als auch zum Bösen eingesetzt werden kann.&lt;&#x2F;p&gt;
&lt;p&gt;Die überwiegende Mehrheit der Matrix-Nutzung ist konstruktiv: Sie ermöglicht Zusammenarbeit in Open-Source-Software-Communities wie &lt;a href=&quot;https:&#x2F;&#x2F;wiki.mozilla.org&#x2F;Matrix&quot;&gt;Mozilla&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;community.kde.org&#x2F;Matrix&quot;&gt;KDE&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;wiki.gnome.org&#x2F;GettingInTouch&#x2F;Matrix&quot;&gt;GNOME&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;docs.fedoraproject.org&#x2F;en-US&#x2F;project&#x2F;communications&#x2F;&quot;&gt;Fedora&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;ubuntu.com&#x2F;community&#x2F;communications&#x2F;matrix&quot;&gt;Ubuntu&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;wiki.debian.org&#x2F;Matrix&quot;&gt;Debian&lt;&#x2F;a&gt; und tausende kleinerer Projekte; sie bietet einen sicheren Raum für gefährdete Benutzergruppen; sichere Zusammenarbeit in der gesamten akademischen Welt (insbesondere in der &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-tu-dresden-de&#x2F;Dokumentation&#x2F;blob&#x2F;main&#x2F;static&#x2F;images&#x2F;federation_map.svg&quot;&gt;DACH-Region&lt;&#x2F;a&gt;); &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2021&#x2F;07&#x2F;21&#x2F;germany-s-national-healthcare-system-adopts-matrix&#x2F;&quot;&gt;Schutz der Kommunikation im Gesundheitswesen&lt;&#x2F;a&gt; in Deutschland; Schutz der nationalen Kommunikation in &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;case-studies&#x2F;tchap&quot;&gt;Frankreich&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;blog&#x2F;bundesmessenger-is-a-milestone-in-germanys-ground-breaking-vision&#x2F;&quot;&gt;Deutschland&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;blog&#x2F;dsam-och-esam-forordar-matrix-for-saker-och-federerad-kommunikation-inom-sveriges-offentliga-sektor&#x2F;&quot;&gt;Schweden&lt;&#x2F;a&gt; und der &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=EIRuxDuWIDE&quot;&gt;Schweiz&lt;&#x2F;a&gt;; und sichere Kommunikation für die &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=4aswIHJRwkk&quot;&gt;NATO&lt;&#x2F;a&gt;, das &lt;a href=&quot;https:&#x2F;&#x2F;www.wyden.senate.gov&#x2F;imo&#x2F;media&#x2F;doc&#x2F;wyden-schmitt_dod_letter.pdf&quot;&gt;US-DoD&lt;&#x2F;a&gt; und die Ukraine. Aus den &lt;a href=&quot;https:&#x2F;&#x2F;2024.matrix.org&#x2F;watch&quot;&gt;Vorträgen auf der Matrix-Konferenz&lt;&#x2F;a&gt; im September ist der Umfang und das Kaliber des Matrix-Ökosystems klar ersichtlich.&lt;&#x2F;p&gt;
&lt;p&gt;Genau die gleichen Fähigkeiten, die datenschutzsensiblen Organisationen zugute kommen, bedeuten jedoch, dass ein kleiner Teil der Öffentlichkeit versuchen wird, das System zu missbrauchen.&lt;&#x2F;p&gt;
&lt;p&gt;Wir waren uns dieses Missbrauchsrisikos von Anfang an bewusst, und anstatt uns der Verantwortung zu entziehen, wie es viele verschlüsselte Messenger tun, haben wir kontinuierlich daran gearbeitet, dieses Problem zu addressieren. In den frühen Tagen, noch bevor wir signifikanten Missbrauch sahen, bedeutete dies, dass wir über Ansätze zur Bekämpfung des Missbrauchs spekulierten (z. B. unser Vortrag auf der &lt;a href=&quot;https:&#x2F;&#x2F;archive.fosdem.org&#x2F;2017&#x2F;schedule&#x2F;event&#x2F;matrix_future&#x2F;%20&quot;&gt;FOSDEM 2017&lt;&#x2F;a&gt; und der darauffolgende &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2020&#x2F;10&#x2F;19&#x2F;combating-abuse-in-matrix-without-backdoors&#x2F;%20&quot;&gt;Blogbeitrag 2020&lt;&#x2F;a&gt;, in dem wir eine dezentrale Reputation vorschlugen; heute erkennbar in &lt;a href=&quot;https:&#x2F;&#x2F;bsky.app&quot;&gt;Blueskys&lt;&#x2F;a&gt; erfolgreichem &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bluesky-social&#x2F;ozone&quot;&gt;Ozone-System zur Missbrauchsbekämpfung&lt;&#x2F;a&gt; und der modularen Moderation). Damals waren diese Beiträge jedoch zukunftsorientiert - und heute wenden wir andere konkrete Methoden zur Missbrauchsbekämpfung an.&lt;&#x2F;p&gt;
&lt;p&gt;In diesem Beitrag möchten wir erklären, wo die Dinge heute stehen und wie sie sich in Zukunft weiter verbessern werden.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;unsere-aktuelle-arbeit&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#unsere-aktuelle-arbeit&quot; aria-label=&quot;Anchor link for: unsere-aktuelle-arbeit&quot;&gt;🔗&lt;&#x2F;a&gt;Unsere aktuelle Arbeit&lt;&#x2F;h2&gt;
&lt;p&gt;Der größte Teil unserer Mittel als Stiftung wird für unser Vollzeit-Trust-&amp;amp;-Safety-Team verwendet, und wir haben dieses Engagement Ende 2024 erweitert. Das Team kümmert sich täglich um die Sichtung, Untersuchung, Identifizierung und Entfernung schädlicher Inhalte vom Matrix.org-Server und entfernt Nutzer, die dieses Material teilen. Darüber hinaus entwickelt es Werkzeuge zur Verhinderung, Erkennung und Entfernung schädlicher Inhalte und zum Schutz der Mitarbeiter, die an den Berichten und Untersuchungen der Nutzer arbeiten.&lt;&#x2F;p&gt;
&lt;p&gt;Die Menschen, die das Trust &amp;amp; Safety Team der Stiftung bilden, sind engagierte Fachleute, die jeden Tag ihre eigene geistige Gesundheit und ihr Wohlbefinden aufs Spiel setzen, indem sie schädliche Inhalte überprüfen, die von Menschen hinzugefügt wurden, die den von uns angebotenen Dienst missbrauchen. Bei ihrer Arbeit sind sie Gefahren ausgesetzt, darunter sexuelle Ausbeutung und Missbrauch von Kindern (CSEA), terroristische Inhalte, nicht einvernehmliche intime Bilder (NCII), Belästigung, Hass, Deepfakes, Betrug, Fehlinformationen, illegale Pornografie, Drogen, Schusswaffen, Spam, Selbstmord, Menschenhandel und mehr. Es ist eine Wäscheliste mit dem Schlimmsten, was die Menschheit zu bieten hat. Die düstere Realität ist, dass sich alle Online-Dienste mit diesen Problemen auseinandersetzen und die Arbeit zur Erkennung und Entfernung dieser Inhalte mit den Rechten ihrer Nutzer in Einklang bringen müssen. Wir haben uns dieser Arbeit verschrieben und unterstützen das Trust &amp;amp; Safety Team nach besten Kräften - wir sind sehr dankbar für ihre Aufopferung.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;schutzwerkzeuge-fur-matrix&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#schutzwerkzeuge-fur-matrix&quot; aria-label=&quot;Anchor link for: schutzwerkzeuge-fur-matrix&quot;&gt;🔗&lt;&#x2F;a&gt;Schutzwerkzeuge für Matrix&lt;&#x2F;h3&gt;
&lt;p&gt;Das Trust &amp;amp; Safety Team befasst sich mit dem Thema Schutz aus zwei Blickwinkeln: Schutz für die Nutzer des Matrix.org-Servers und Schutz für das gesamte Matrix-Netzwerk als Ganzes. Für letzteres tragen wir zur Entwicklung der Matrix-Spezifikation bei, stehen im engen Austausch mit anderen im Matrix-Ökosystem und beraten uns mit Regierungen, Strafverfolgungsbehörden, zivilgesellschaftlichen Gruppen, Hochschulen und Industriegruppen. Wir investieren auch in Open-Source-Werkzeuge, um das Ökosystem bei diesem Problem zu unterstützen. Für ersteres setzen wir eine Mischung aus proaktivem und reaktivem Vorgehen gegen Online-Missbrauch ein.&lt;&#x2F;p&gt;
&lt;p&gt;Die Matrix-Spezifikation umfasst ein System zur Meldung von Räumen, Nachrichten und Nutzern an Ihren Homeserver, API-Endpunkte für Serveradministratoren zum Sperren, Suspendieren und Deaktivieren von Nutzern, Mechanismen zur Quarantäne von schädlichen Medien und zum Entfernen unerwünschter Nachrichten. Wir nutzen all diese Möglichkeiten und erhalten wöchentlich Hunderte von Meldungen von Benutzern des Matrix.org-Servers und E-Mails an unsere Meldeadresse.&lt;&#x2F;p&gt;
&lt;p&gt;Darüber hinaus scannen wir Raumnamen und -titel auf dem Matrix.org-Server anhand einer Reihe von Schlüsselwortlisten und unterziehen Übereinstimmungen einer menschlichen Überprüfung. Wir pflegen auch einen Moderations-Bot namens &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;mjolnir&quot;&gt;Mjolnir&lt;&#x2F;a&gt;, den wir zur Moderation unserer Community-Räume verwenden und als Open Source für andere Communities zur Verfügung stellen. Hinter den Kulissen verfügen wir über Werkzeuge, die dem Trust &amp;amp; Safety Team an vorderster Front helfen, Räume, Benutzer und Nachrichten zu untersuchen und Maßnahmen zu ergreifen, wenn Missbrauch vorliegt.&lt;&#x2F;p&gt;
&lt;p&gt;Als wir den Missbrauch des Serverraumverzeichnisses von Matrix.org feststellten, haben wir das Verzeichnis eingefroren und missbräuchliche Räume entfernt. In naher Zukunft werden wir zu einem kuratierten Verzeichnis wechseln, um zu verhindern, dass es als Werbesystem für Missbrauch genutzt wird. Es ist erwähnenswert, dass Matrix in der Vergangenheit mit dem Konzept dieser „Raumverzeichnisse“ unbeabsichtigt eine Plattform für Missbrauch geschaffen hat, da diese (im Gegensatz zu anderen verschlüsselten Messengern wie Signal oder Threema oder WhatsApp) jedem Nutzer erlauben, öffentliche Chaträume aufzulisten, ohne dass eine Genehmigung des Administrators erforderlich ist - dies ist ein Fehler, den wir zutiefst bedauern und den wir durch den Wechsel zu kuratierten Raumverzeichnissen im Allgemeinen beheben werden.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;strategien-gegen-sexuellen-kindesmissbrauch-und-ausbeutung-csea&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#strategien-gegen-sexuellen-kindesmissbrauch-und-ausbeutung-csea&quot; aria-label=&quot;Anchor link for: strategien-gegen-sexuellen-kindesmissbrauch-und-ausbeutung-csea&quot;&gt;🔗&lt;&#x2F;a&gt;Strategien gegen sexuellen Kindesmissbrauch und Ausbeutung (CSEA)&lt;&#x2F;h4&gt;
&lt;p&gt;Einer unserer Schwerpunkte ist der Kampf gegen die sexuelle Ausbeutung und den Missbrauch von Kindern. Wir verabscheuen sexuelle Ausbeutung von Kindern (CSEA) und haben in unseren Nutzungsbedingungen immer ausdrücklich darauf hingewiesen, dass wir mit den Strafverfolgungsbehörden zusammenarbeiten, um sie zu bekämpfen. Wir setzen Werkzeuge und spezielle Techniken ein, um die Verbreitung von CSEA auf dem Matrix.org-Server zu unterbinden:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Wir arbeiten mit der Internet Watch Foundation (IWF), dem National Center for Missing and Exploited Children (NCMEC), &lt;a href=&quot;http:&#x2F;&#x2F;cybertip.ca&quot;&gt;cybertip.ca&lt;&#x2F;a&gt;, dem Australian eSafety Commissioner und anderen Parteien zusammen. (Element, das den Matrix.org-Server im Auftrag der Stiftung betreibt, ist seit 2020 aktives Mitglied der &lt;a href=&quot;https:&#x2F;&#x2F;www.iwf.org.uk&#x2F;membership&#x2F;our-members&#x2F;element&#x2F;&quot;&gt;IWF&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;Wir arbeiten mit Strafverfolgungsbehörden im Vereinigten Königreich und in den USA zusammen.&lt;&#x2F;li&gt;
&lt;li&gt;Wir haben uns mit Gruppen wie der Lucy Faithfull Foundation und Columbia SIPA beraten, um von deren Fachwissen zu lernen.&lt;&#x2F;li&gt;
&lt;li&gt;Wir verwenden die &lt;a href=&quot;https:&#x2F;&#x2F;developers.cloudflare.com&#x2F;cache&#x2F;reference&#x2F;csam-scanning&#x2F;&quot;&gt;CSAM-Erkennungs-APIs&lt;&#x2F;a&gt; von Cloudflare für unverschlüsselte Inhalte auf Matrix.org.&lt;&#x2F;li&gt;
&lt;li&gt;Wir verwenden die IWF-Hash-, URL- und Schlüsselwortlisten der IWF für unverschlüsselte Inhalte auf Matrix.org.&lt;&#x2F;li&gt;
&lt;li&gt;Wir sperren Räume, entfernen Medien und suspendieren Benutzer, die an Räumen teilnehmen, die dem Austausch von CSEA gewidmet sind.&lt;&#x2F;li&gt;
&lt;li&gt;Wir stehen in produktivem Austausch mit zivilgesellschaftlichen Gruppen und begrüßen deren fundierte Kritik und laden sie ein, gemeinsam mit uns gegen CSEA vorzugehen. Weitere Informationen finden Sie weiter unten im Abschnitt &lt;strong&gt;&lt;a href=&quot;https:&#x2F;&#x2F;c956b204.matrix-website.pages.dev&#x2F;blog&#x2F;2025&#x2F;02&#x2F;building-a-safer-matrix&#x2F;#wie-sie-helfen-konnen&quot;&gt;Wie Sie helfen können&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;aktuelle-massnahmen&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#aktuelle-massnahmen&quot; aria-label=&quot;Anchor link for: aktuelle-massnahmen&quot;&gt;🔗&lt;&#x2F;a&gt;Aktuelle Maßnahmen&lt;&#x2F;h3&gt;
&lt;p&gt;In den letzten sechs Monaten haben wir in verbesserte Werkzeuge für das Frontline-Team investiert, das Nutzerberichte überprüft. Wir haben die &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;synapse&#x2F;pull&#x2F;17964&quot;&gt;Aufnahme der Kontosperrung&lt;&#x2F;a&gt; in die Matrix-Spezifikation unterstützt und einen &lt;a href=&quot;https:&#x2F;&#x2F;element-hq.github.io&#x2F;synapse&#x2F;latest&#x2F;admin_api&#x2F;user_admin_api.html#redact-all-the-events-of-a-user&quot;&gt;API-Endpunkt für Massenlöschung&lt;&#x2F;a&gt; für die am weitesten verbreitete Matrix-Server-Implementierung, Synapse, hinzugefügt, damit sowohl der Matrix.org-Server als auch andere Serverinstanzen im Ökosystem davon profitieren können. Bei der Kontosperrung können wir die Moderation von Konten umkehren, was bedeutet, dass wir mehr automatisierte Systeme für eine schnellere Löschung vor der Untersuchung entwickeln können. Dadurch sollen die Zeit, in der illegales Material zugänglich ist, verkürzt und gleichzeitig die Rechte und der Schutz unserer Nutzer gestärkt werden. Außerdem haben wir kürzlich &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;06&#x2F;26&#x2F;sunsetting-unauthenticated-media&#x2F;&quot;&gt;Authentifizierung für Medien&lt;&#x2F;a&gt; hinzugefügt, um den Missbrauch von Matrix als Netzwerk zur Verbreitung von Inhalten zu unterbinden. Wir haben bei diesem Projekt mit der IWF zusammengearbeitet, nachdem Berichte über den Missbrauch von Matrix-Servern als Content-Delivery-Mechanismus für &lt;a href=&quot;https:&#x2F;&#x2F;www.iwf.org.uk&#x2F;annual-report-2023&#x2F;trends-and-data&#x2F;icap-sites&#x2F;&quot;&gt;ICAP-Seiten&lt;&#x2F;a&gt; eingegangen waren.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;die-matrix-community&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#die-matrix-community&quot; aria-label=&quot;Anchor link for: die-matrix-community&quot;&gt;🔗&lt;&#x2F;a&gt;Die Matrix Community&lt;&#x2F;h3&gt;
&lt;p&gt;Die breitere Matrix-Community hat starke Initiativen zur Missbrauchsbekämpfung, die uns sehr ermutigen. Insbesondere die Arbeit am &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;the-draupnir-project&#x2F;Draupnir&quot;&gt;Draupnir-Moderationsbot-Projekt&lt;&#x2F;a&gt; und der Community Moderation Effort (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#community-moderation-effort-bl:neko.dev&quot;&gt;CME&lt;&#x2F;a&gt;) sind hervorragende Ergänzungen zum Schutzökosystem von Matrix. Auf der Ebene der Server-Werkzeuge sind &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Awesome-Technologies&#x2F;synapse-admin&quot;&gt;Synapse-Admin&lt;&#x2F;a&gt; von Awesome Technologies und der &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;etkecc&#x2F;synapse-admin&quot;&gt;Fork von etke.cc&lt;&#x2F;a&gt; großartige Beispiele dafür, wie Open-Source-Ökosysteme zu Schutzwerkzeugen beitragen können. Wir freuen uns über ihre Arbeit und hoffen, dass wir in den kommenden Monaten und Jahren weitere auf eigenen Füßen stehende Entwicklungen sehen werden.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;woran-wir-gerade-arbeiten&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#woran-wir-gerade-arbeiten&quot; aria-label=&quot;Anchor link for: woran-wir-gerade-arbeiten&quot;&gt;🔗&lt;&#x2F;a&gt;Woran wir gerade arbeiten&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Reporting&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Wir haben zwar ein funktionierendes Meldesystem, aber wir können es noch besser machen. Insbesondere werden künftig die Nutzer Updates zu ihren Berichten und den Ergebnissen dieser Untersuchungen erhalten. Wir werden die Art und Weise verbessern, wie Nutzer über Moderationsmaßnahmen in ihrem Konto benachrichtigt werden und wie sie diese Entscheidungen anfechten können. Das gesamte Ökosystem wird von diesen Verbesserungen profitieren, da wir sie in die Matrix Spezifikation einbringen werden.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Identifizierung &amp;amp; Project Intercept&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Wir befinden uns in der Anfangsphase eines Projekts, das sich mit der Suche und Identifizierung von CSEA befasst. Wir hatten produktive Gespräche mit der Lucy Faithfull Foundation und Project Intercept über wirksame Schritte zur Umleitung schädlicher Suchanfragen auf Matrix.org für diese Art von Inhalten.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Transparenz Reporting&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Rechenschaftspflicht ist wichtig, deshalb wollen wir dieses Jahr mit der Veröffentlichung von Transparenzberichten für Matrix.org beginnen. Das Projekt befindet sich noch im Anfangsstadium, aber wir werden Einzelheiten bekannt geben und um Unterstützung und Mitwirkung bitten, sobald wir der Verwirklichung näher kommen. Wir werden bei diesem Projekt eng mit &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;category&#x2F;governing-board&#x2F;&quot;&gt;dem Matrix.org-Verwaltungsrat (Governing Board) zusammenarbeiten&lt;&#x2F;a&gt;. Wir hoffen, dass das Hinzufügen von Transparenzberichten unsere Anträge auf Mitgliedschaft in Branchengruppen wie &lt;a href=&quot;https:&#x2F;&#x2F;gifct.org&#x2F;&quot;&gt;GIFCT&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;techagainstterrorism.org&#x2F;home&quot;&gt;Tech Against Terrorism&lt;&#x2F;a&gt; und &lt;a href=&quot;https:&#x2F;&#x2F;www.technologycoalition.org&#x2F;&quot;&gt;Tech Coalition&lt;&#x2F;a&gt; unterstützen wird.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Aktualisierungen der Nutzungsbedingungen&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Wir überarbeiten unsere Nutzungsbedingungen, um deutlicher zu machen, welche Inhalte verboten sind und wie man sie uns melden kann. In den Fällen, in denen wir proaktive Scanning-Techniken einsetzen, werden wir dies in den Bedingungen klarstellen, einschließlich der Frage, wie man gegen Entscheidungen automatischer Systeme Einspruch erheben kann.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Unsere Werkzeuge als Open Source freigeben&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Während wir die Werkzeuge für das Schutzmanagement auf Matrix.org verbessern, wollen wir unsere Arbeit mit anderen teilen. Wir werden in zukünftigen Beiträgen mehr über unsere Ziele sprechen. Als einer der Partner von &lt;a href=&quot;https:&#x2F;&#x2F;roost.tools&#x2F;partnerships&quot;&gt;ROOST&lt;&#x2F;a&gt; beteiligen wir uns auch an der Arbeit an Open-Source-Schutzwerkzeugen.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Erfüllung und Übertreffen unserer Verpflichtungen gemäß dem Online Safety Act&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Wir sind im Vereinigten Königreich ansässig und haben uns von Anfang an produktiv mit dem Online Safety Act auseinandergesetzt. Dazu gehört auch, dass wir uns weiterhin entschieden gegen die Bedrohung der Ende-zu-Ende-Verschlüsselung wehren. Wir setzen bereits den Perceptual Hash Matching für CSEA-Inhalte in unverschlüsselten Räumen ein und werden weiterhin in diesen Bereich investieren, um schnellere und genauere Abschaltungen zu erreichen und gleichzeitig die Privatsphäre unserer Nutzer zu respektieren.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Über unsere Arbeit sprechen und unsere Erkenntnisse teilen&lt;&#x2F;strong&gt;&lt;br &#x2F;&gt;
Eine berechtigte Kritik an der Stiftung lautet, dass wir nicht viel darüber gesprochen haben, was wir tun, um den Schutz der Matrix.org-Nutzer zu gewährleisten, und auch nicht darüber, was wir tun, um sicherzustellen, dass Matrix als Plattform ein sicheres Fundament hat. Das wollen wir im Jahr 2025 ändern, angefangen mit diesem Artikel.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;wie-sie-helfen-konnen&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#wie-sie-helfen-konnen&quot; aria-label=&quot;Anchor link for: wie-sie-helfen-konnen&quot;&gt;🔗&lt;&#x2F;a&gt;Wie Sie helfen können&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;als-nutzer-von-matrix&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#als-nutzer-von-matrix&quot; aria-label=&quot;Anchor link for: als-nutzer-von-matrix&quot;&gt;🔗&lt;&#x2F;a&gt;Als Nutzer von Matrix&lt;&#x2F;h3&gt;
&lt;p&gt;Wenn Sie auf Matrix auf schädliche Inhalte stoßen, können Sie diese auf verschiedene Weise melden:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Wenn Sie den Matrix.org-Homeserver nutzen, können &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;element-x-ios&#x2F;pull&#x2F;587&quot;&gt;Sie die Inhalte&lt;&#x2F;a&gt; von Ihrem Client aus melden, und sie werden an unser Trust &amp;amp; Safety Team weitergeleitet. Matrix-Clients wie Element iOS ermöglichen es Nutzern, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;element-ios&#x2F;pull&#x2F;7805&quot;&gt;Räume zu melden&lt;&#x2F;a&gt;, und wir wissen, dass dies bald auch in Element X, Element Android und Element Web verfügbar sein wird.&lt;&#x2F;li&gt;
&lt;li&gt;Wenn Sie einen anderen Matrix-Server verwenden, können Sie die Meldung ebenfalls von Ihrem Client aus an Ihren Server-Administrator senden.&lt;&#x2F;li&gt;
&lt;li&gt;Wenn Sie kein Matrix-Nutzer sind oder wenn Sie ein Nutzer auf einem anderen Homeserver sind und uns über schädliche Inhalte auf Matrix.org informieren möchten, können Sie uns eine E-Mail mit den Informationen, die Sie haben, an &lt;a href=&quot;mailto:abuse@matrix.org&quot;&gt;abuse@matrix.org&lt;&#x2F;a&gt; schicken. Raum- und Benutzerkennungen sind sehr hilfreich. Bitte schicken Sie uns keine Bildschirmfotos von schädlichen Inhalten - wir werden Ihnen Bescheid geben, wenn wir weitere Informationen benötigen.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;als-matrix-server-betreiber&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#als-matrix-server-betreiber&quot; aria-label=&quot;Anchor link for: als-matrix-server-betreiber&quot;&gt;🔗&lt;&#x2F;a&gt;Als Matrix-Server-Betreiber&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Die offene Registrierung ist in Synapse &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;synapse&#x2F;commit&#x2F;58367a9da2539abdbfe4dc817fba5b179b95334b&quot;&gt;standardmäßig deaktiviert&lt;&#x2F;a&gt;, und wir befürworten diese Voreinstellung. Wenn Ihr Server eine offene Registrierung anbietet, &lt;strong&gt;müssen&lt;&#x2F;strong&gt; Sie in ein Trust &amp;amp; Safety Team investieren, um eine angemessene Moderation zu gewährleisten und die Risiken zu minimieren, die entstehen, wenn Sie unbekannten Benutzern die Nutzung Ihres Servers erlauben.&lt;&#x2F;li&gt;
&lt;li&gt;Überprüfen Sie, wer sich auf Ihrem Server anmeldet und in welchen Räumen Ihr Server Mitglied ist.&lt;&#x2F;li&gt;
&lt;li&gt;Überprüfen Sie die Meldungen Ihrer Nutzer und ergreifen Sie Maßnahmen, um gemeldete schädliche Inhalte zu entfernen. Überprüfen Sie Ihre rechtlichen Verpflichtungen in dem Land, in dem Sie Ihren Server betreiben.&lt;&#x2F;li&gt;
&lt;li&gt;Arbeiten Sie mit anderen Serverbetreibern zusammen, um Informationen über schädliche Räume und Nutzer auszutauschen. Sie können sich an unser Trust &amp;amp; Safety Team unter &lt;a href=&quot;mailto:abuse@matrix.org&quot;&gt;abuse@matrix.org&lt;&#x2F;a&gt; wenden, um dieses Gespräch zu beginnen.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;zivilgesellschaftliche-gruppen-wissenschaft-und-industrieverbande&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#zivilgesellschaftliche-gruppen-wissenschaft-und-industrieverbande&quot; aria-label=&quot;Anchor link for: zivilgesellschaftliche-gruppen-wissenschaft-und-industrieverbande&quot;&gt;🔗&lt;&#x2F;a&gt;Zivilgesellschaftliche Gruppen, Wissenschaft und Industrieverbände&lt;&#x2F;h3&gt;
&lt;p&gt;Wir begrüßen die Unterstützung aus zivilgesellschaftlichen Gruppen und der Wissenschaft, die in diesem Bereich arbeiten. Bitte wenden Sie sich an &lt;a href=&quot;mailto:abuse@matrix.org&quot;&gt;abuse@matrix.org&lt;&#x2F;a&gt; und teilen Sie uns Ihre Kontaktdaten und Ihr Interessengebiet mit, damit wir uns austauschen können. Wir sind sehr daran interessiert, vertrauenswürdige Berichterstatter hinzuzuziehen; wenn Sie uns also Berichte schicken möchten, melden Sie sich bitte bei uns. Um die Ausbreitung von Online-Missbrauch zu bekämpfen, müssen alle Teile des Puzzles zusammenarbeiten, und wir wollen ein gutes Beispiel dafür sein, wie Technik eine positive Auswirkung auf die Gesellschaft haben kann. Wir würden gerne mit Branchengruppen zusammenarbeiten, Erfahrungen austauschen und voneinander lernen. Die Eintrittsbarrieren für diese Gruppen sind eine Herausforderung, und wir würden uns freuen, wenn Sie uns helfen würden, sie abzubauen.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;strafverfolgungsbehorden&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#strafverfolgungsbehorden&quot; aria-label=&quot;Anchor link for: strafverfolgungsbehorden&quot;&gt;🔗&lt;&#x2F;a&gt;Strafverfolgungsbehörden&lt;&#x2F;h3&gt;
&lt;p&gt;Bitte lesen Sie unsere Leitlinien hier: &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;legal&#x2F;law-enforcement-guidelines&#x2F;&quot;&gt;https:&#x2F;&#x2F;matrix.org&#x2F;legal&#x2F;law-enforcement-guidelines&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;finanzierung&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#finanzierung&quot; aria-label=&quot;Anchor link for: finanzierung&quot;&gt;🔗&lt;&#x2F;a&gt;Finanzierung&lt;&#x2F;h3&gt;
&lt;p&gt;Die Tech-Industrie investiert zu wenig in Schutz. Wir versuchen, es besser zu machen, und Schutz ist der größte Posten im Haushalt der Matrix.org Stiftung. Diese Investition erfolgt trotz der Herausforderungen, denen wir uns bei unseren &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-special-2024&#x2F;&quot;&gt;ständigen&lt;&#x2F;a&gt; Versuchen &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;01&#x2F;2024-roadmap-and-fundraiser&#x2F;&quot;&gt;gegenübersehen&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;01&#x2F;2024-roadmap-and-fundraiser&#x2F;&quot;&gt;Mittel zur Unterstützung&lt;&#x2F;a&gt; der Entwicklung von Matrix &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;04&#x2F;open-source-publicly-funded-service&#x2F;&quot;&gt;und&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;07&#x2F;17&#x2F;ngi-open-letter&#x2F;&quot;&gt;Open Source Software im Allgemeinen&lt;&#x2F;a&gt; aufzubringen. Wir sind für unseren Betrieb auf Spenden angewiesen. Große öffentliche und private Organisationen nutzen die von uns geleistete Arbeit, oft ohne einen finanziellen Beitrag zu leisten. Es wäre einfach, die Ausgaben für Trust &amp;amp; Safety angesichts dieser wirtschaftlichen Zwänge zu opfern, aber wir versuchen, einen besseren Weg zu finden. Wenn Sie unsere Arbeit im Bereich Schutz finanziell unterstützen möchten, wenden Sie sich bitte an die Stiftung unter &lt;a href=&quot;mailto:funding@matrix.org&quot;&gt;funding@matrix.org&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
</entry>

    
    
<entry xml:lang="en">
    <title>The Matrix Holiday Special 2024</title>
    <published>2024-12-25T00:00:00+00:00</published>
    <updated>2024-12-25T00:00:00+00:00</updated>
    <author>
      <name>Matthew Hodgson, Josh Simmons</name>
    </author>
    <link rel="alternate" href="https://c956b204.matrix-website.pages.dev/blog/2024/12/25/the-matrix-holiday-special-2024/" type="text/html"/>
    <id>https://c956b204.matrix-website.pages.dev/blog/2024/12/25/the-matrix-holiday-special-2024/</id>
    <content type="html">&lt;p&gt;Hi all,&lt;&#x2F;p&gt;
&lt;p&gt;Once again we celebrate the end of another year with the traditional Matrix Holiday Special! (see also &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2023&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-update-2023&#x2F;&quot;&gt;2023&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2022&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-update-2022&quot;&gt;2022&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2021&#x2F;12&#x2F;22&#x2F;the-mega-matrix-holiday-special-2021&#x2F;&quot;&gt;2021&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2020&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-special-2020&#x2F;&quot;&gt;2020&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2019&#x2F;12&#x2F;24&#x2F;the-2019-matrix-holiday-update&#x2F;&quot;&gt;2019&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2018&#x2F;12&#x2F;25&#x2F;the-2018-matrix-holiday-special&#x2F;&quot;&gt;2018&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2017&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-mini-special-2017-edition&#x2F;&quot;&gt;2017&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2016&#x2F;12&#x2F;26&#x2F;the-matrix-holiday-special-2016-edition&#x2F;&quot;&gt;2016&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2015&#x2F;12&#x2F;25&#x2F;the-matrix-holiday-special&#x2F;&quot;&gt;2015&lt;&#x2F;a&gt; just in case you missed them).&lt;&#x2F;p&gt;
&lt;p&gt;This year, it is an incredible relief to be able to sit down and write an update which is overwhelmingly positive - in stark contrast to the rather mixed bags of 2022 and 2023. This is not to say that things are perfect: most notably, &lt;strong&gt;The Matrix.org Foundation has not yet hit its funding goals, and urgently needs more organisations who depend on Matrix to &lt;a href=&quot;http:&#x2F;&#x2F;matrix.org&#x2F;membership&quot;&gt;join as members&lt;&#x2F;a&gt; in order to be financially sustainable.&lt;&#x2F;strong&gt; However, in terms of progress of Matrix towards outperforming the centralised alternatives; growth of the ecosystem; the success of the first ever Matrix Conference; we couldn’t be happier - and hopefully the more Matrix matures, the more folks will want to join the Foundation to help fund it.&lt;&#x2F;p&gt;
&lt;p&gt;So, precisely why are we feeling so happy right now?&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h3 id=&quot;matrix-2-0&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#matrix-2-0&quot; aria-label=&quot;Anchor link for: matrix-2-0&quot;&gt;🔗&lt;&#x2F;a&gt;Matrix 2.0&lt;&#x2F;h3&gt;
&lt;p&gt;Matrix 2.0 is the project to ensure that Matrix can be used to build apps which outcompete the incumbent legacy mainstream communication apps.  Since announcing the project at FOSDEM 2023, we’ve been hard at work iterating on:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Sliding Sync, providing instant sync, instant login and instant launch.&lt;&#x2F;li&gt;
&lt;li&gt;Next Generation Auth via OIDC, to support instant login by QR code and consistent secure auth no matter the client.&lt;&#x2F;li&gt;
&lt;li&gt;Native Multiparty VoIP via MatrixRTC, to provide consistent end-to-end-encrypted calling conferencing within Matrix using Matrix’s encryption and security model.&lt;&#x2F;li&gt;
&lt;li&gt;Invisible Cryptography, to ensure that encryption in Matrix is seamless and no longer confuses users with unable-to-decrypt errors, scary shields and warnings, or other avoidable UX fails.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;All of these projects are big, and we’ve been taking the time to iterate and get things right rather than cut corners – the whole name of the game has been to take Matrix from 1.0 (it works) to 2.0 (it works fast and delightfully, and outperforms the others).  However, in September at the Matrix Conference we got to the point of shipping working implementations of all of the Matrix 2.0 MSCs, with the expectation of using these implementations to prove the viability of the MSCs and so propose them for merging into the spec proper.&lt;&#x2F;p&gt;
&lt;p&gt;Sliding Sync ended up evolving into &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4186&quot;&gt;MSC4186&lt;&#x2F;a&gt;: Simplified Sliding Sync, and is now natively integrated into Synapse (no more need to run a sliding sync proxy!) and deployed on matrix.org, and implemented in matrix-rust-sdk and matrix-js-sdk.  MatrixRTC is &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4143&quot;&gt;MSC4143&lt;&#x2F;a&gt; and dependents and is also deployed on matrix.org and call.element.io. Invisible Cryptography is a mix of MSCs: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4161&quot;&gt;MSC4161&lt;&#x2F;a&gt; (Crypto terminology for non-technical users), &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4153&quot;&gt;MSC4153&lt;&#x2F;a&gt; (Exclude non-cross-signed devices), &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;3834&quot;&gt;MSC3834&lt;&#x2F;a&gt; (Opportunistic user key pinning (TOFU)), and is mostly now implemented in matrix-rust-sdk - and Unable To Decrypt problems have been radically reduced (see &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=FHzh2Y7BABQ&quot;&gt;Kegan’s excellent Matrix Conference talk&lt;&#x2F;a&gt; for details).  Finally, Next Gen Auth is &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;3861&quot;&gt;MSC3861&lt;&#x2F;a&gt; and is planned to be deployed on matrix.org via &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;matrix-authentication-service&quot;&gt;matrix-authentication-service&lt;&#x2F;a&gt; in Feb 2025.&lt;&#x2F;p&gt;
&lt;p&gt;It’s been controversial to ship Matrix 2.0 implementations prior to the MSCs being fully finalised and merged, but given the MSCs are backwards compatible with Matrix 1.0, and there’s unquestionable benefit to the ecosystem in getting these step-changes in the hands of users ASAP, we believe the aggressive roll-out is justified. Meanwhile, now the implementations are out and post-launch teething issues have largely been resolved, the MSCs will progress forwards.&lt;&#x2F;p&gt;
&lt;p&gt;One of the things we somehow failed to provide when announcing the implementations at the Matrix Conference was a playground for folks to experiment with Matrix 2.0 themselves. There’s now one based on Element’s stack of Synapse + matrix-authentication-service + Element Web + Element Call available at &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;element-hq&#x2F;element-docker-demo&quot;&gt;element-docker-demo&lt;&#x2F;a&gt; in case you want to do a quick &lt;code&gt;docker compose up&lt;&#x2F;code&gt; to see what all the fuss is about!  Meanwhile, matrix.org should support all the new MSCs in February – which might even coincide with the MSCs being finalised, you never know!&lt;&#x2F;p&gt;
&lt;p&gt;Rather than going through Matrix 2.0 in detail again, best bet is to check out the launch talk from The Matrix Conference…&lt;&#x2F;p&gt;
&lt;noscript&gt;
  Today&#x27;s Matrix Live:
  &lt;a href=&quot;https:&#x2F;&#x2F;youtube.com&#x2F;watch?v=ZiRYdqkzjDU&quot;&gt;
    https:&#x2F;&#x2F;youtube.com&#x2F;watch?v=ZiRYdqkzjDU
  &lt;&#x2F;a&gt;
&lt;&#x2F;noscript&gt;
&lt;youtube-player video-id=&quot;ZiRYdqkzjDU&quot;&gt;&lt;&#x2F;youtube-player&gt;
&lt;p&gt;…and in terms of seeing a Matrix 2.0 client in action, the Element X launch talk shows what you can do with it!&lt;&#x2F;p&gt;
&lt;noscript&gt;
  Today&#x27;s Matrix Live:
  &lt;a href=&quot;https:&#x2F;&#x2F;youtube.com&#x2F;watch?v=gHyHO3xPfQU&quot;&gt;
    https:&#x2F;&#x2F;youtube.com&#x2F;watch?v=gHyHO3xPfQU
  &lt;&#x2F;a&gt;
&lt;&#x2F;noscript&gt;
&lt;youtube-player video-id=&quot;gHyHO3xPfQU&quot;&gt;&lt;&#x2F;youtube-player&gt;
&lt;p&gt;Honestly, it is &lt;em&gt;insanely&lt;&#x2F;em&gt; exciting to see Matrix having evolved from the “good enough for enthusiastic geeks” to the “wow, this feels better than Signal” phase that we’re entering now.  Meanwhile, matrix-rust-sdk is tracking all the latest Matrix 2.0 work, so any client built on matrix-rust-sdk (Fractal, Element X, iamb, etc) can benefit from it immediately.  There’s also some &lt;em&gt;really&lt;&#x2F;em&gt; exciting matrix-rust-sdk improvements on the near horizon in the form of the long-awaited &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-rust-sdk&#x2F;issues&#x2F;3280&quot;&gt;persistent event cache&lt;&#x2F;a&gt;, which will accelerate all event operations enormously by avoiding needless server requests, as well as providing full offline support.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-matrix-conference&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-matrix-conference&quot; aria-label=&quot;Anchor link for: the-matrix-conference&quot;&gt;🔗&lt;&#x2F;a&gt;The Matrix Conference&lt;&#x2F;h3&gt;
&lt;p&gt;Talking of The Matrix Conference - this was by far the highlight of the year; not just due to being an excellent excuse to get Matrix 2.0 implementations launched, but because it really showed the breadth and maturity of the wider Matrix ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;One of the most interesting dynamics was that by far the busiest track was the Public Sector talk track (sponsored by Element) – standing room only, with folks queuing outside or watching the livefeed, whether this was &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=MoA2cYfHlyA&quot;&gt;Gematik talking about Matrix&lt;&#x2F;a&gt; powering communications for the German healthcare industry, &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=EIRuxDuWIDE&quot;&gt;SwissPost showing off their nationwide Matrix deployment&lt;&#x2F;a&gt; for Switzerland, &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=m1roliPrNqc&quot;&gt;DINUM showing off Tchap&lt;&#x2F;a&gt; for France, &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=4aswIHJRwkk&quot;&gt;NATO explaining NI²CE&lt;&#x2F;a&gt; (their Matrix messenger), &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=XLt70u0btsM&quot;&gt;Försäkringskassan showing off Matrix for Sweden&lt;&#x2F;a&gt; with SAFOS, &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Oan-bx84ui8&quot;&gt;Tele2 showcasing Tele2 Samarbete&lt;&#x2F;a&gt; (Matrix based collaboration from one of Sweden’s main telcos), FITKO explaining how to do &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Fj_tBpTlBEE&quot;&gt;Government-to-Citizen communication with Matrix in Germany&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=oMxxfRiaN98&quot;&gt;ZenDiS using Matrix for secure communication&lt;&#x2F;a&gt; in the German sovereign workspace openDesk project, or &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=uRaKEw6Wo3U&quot;&gt;IBM showing off their Matrix healthcare deployments&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;This felt really surprising: not only are we in an era where Matrix appears to be completely dominating secure communication and collaboration in the public sector – but it’s not just GovTech folks interested, but the wider Matrix community too.&lt;&#x2F;p&gt;
&lt;p&gt;I think it’s fair to say that when we created Matrix, we didn’t entirely anticipate this super-strong interest from government deployments – although in retrospect it makes perfect sense, given that more than anyone, nations wish to control their own infrastructure and run it securely without being operationally dependent on centralised solutions run out of other countries.  A particular eye-opener recently has been seeing US Senators Ron Wyden (D) and Eric Schmitt (R) &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;blog&#x2F;senators-implore-department-of-defense-to-expand-the-use-of-matrix&#x2F;&quot;&gt;campaigning for the US Government to deploy Matrix&lt;&#x2F;a&gt; in a way similar to France, Germany, Sweden and others. If this comes to pass, then it will surely create a whole new level of Matrix momentum!&lt;&#x2F;p&gt;
&lt;p&gt;It’s worth noting that while many Matrix vendors like Element, Nordeck, Famedly, connect2x and others have ended up mainly focusing commercially on public sector business (given that’s empirically where the money is right now) – the goal for Matrix itself continues to be mainstream uptake.&lt;&#x2F;p&gt;
&lt;p&gt;Matrix’s goal has always been to be the missing communication layer of the web for &lt;strong&gt;everyone&lt;&#x2F;strong&gt;, providing a worthy modern open replacement to both centralised messaging silos as well as outdated communication networks like email and the PSTN.  It would be a sore failure of Matrix’s potential if it “only” ended up being successful for public sector communication!  As it happens, our FOSDEM 2025 mainstage talk was just accepted, and happens to be named “The Road To Mainstream Matrix.” So watch this space to find out in February how all the Matrix 2.0 work might support mainstream Matrix uptake in the long-run, and how we plan to ensure Matrix expands beyond GovTech!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-governing-board&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-governing-board&quot; aria-label=&quot;Anchor link for: the-governing-board&quot;&gt;🔗&lt;&#x2F;a&gt;The Governing Board&lt;&#x2F;h3&gt;
&lt;p&gt;Another transformative aspect of 2024 was the formation of The Matrix.org Foundation Governing Board. &lt;em&gt;&lt;strong&gt;Over to Josh with the details…&lt;&#x2F;strong&gt;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The election of our first ever Governing Board this year has gone a long way to ensuring we can truly call Matrix a public good, as something that is not only shared under an open source license and developed in the open, but also openly governed by elected representatives from across the ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;It took forming the Spec Core Team and the Foundation, both critical milestones on a journey of openness and independence, to pave the way. And with the Governing Board, we have a greater diversity of perspectives and backgrounds looking after Matrix than ever before!&lt;&#x2F;p&gt;
&lt;p&gt;The Governing Board is in the process of establishing its norms and processes and just last week &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;12&#x2F;governing-board-first-report&#x2F;&quot;&gt;published the first Governing Board report&lt;&#x2F;a&gt;. Soon it’ll have elected committee chairs and vice chairs, and it appears to be on track to introduce our first working groups – official bodies to work together on initiatives in support of Matrix  – at FOSDEM. Working groups will be another massive step forward, as they enable us to harmonize work across the ecosystem, such as on Trust &amp;amp; Safety and community events.&lt;&#x2F;p&gt;
&lt;p&gt;One last note on this, I want to shout out Greg Sutcliffe and Kim Brose, our first duly elected Chair and Vice Chair of the Governing Board, who have been doing great work to keep things in motion.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;growing-membership&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#growing-membership&quot; aria-label=&quot;Anchor link for: growing-membership&quot;&gt;🔗&lt;&#x2F;a&gt;Growing Membership&lt;&#x2F;h3&gt;
&lt;p&gt;A key part of building the Governing Board has been recruiting to our membership program, which brings together organizations, communities, and individuals who are invested in Matrix. Our members illustrate the breadth of the ecosystem, and many of them are funders who help sustain our mission.&lt;&#x2F;p&gt;
&lt;p&gt;The Foundation has gone from being completely subsidized by Element in 2022, to having nearly half of its annual budget covered by its 11 funding members.&lt;&#x2F;p&gt;
&lt;p&gt;Of course, only being able to sustain half our annual budget is not nearly good enough, and it means that we live hand-to-mouth, extending our financial runway a bit at a time. It’s a nail biter of a ride for the hardworking staff who labor under this uncertainty, but we savor every win and all the progress we’ve made.&lt;&#x2F;p&gt;
&lt;p&gt;I’d like to take this opportunity to thank our funding members, including &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;&quot;&gt;Element&lt;&#x2F;a&gt;, our Gold Members, &lt;a href=&quot;https:&#x2F;&#x2F;automattic.com&#x2F;&quot;&gt;Automattic&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;www.futurewei.com&#x2F;&quot;&gt;Futurewei Technologies&lt;&#x2F;a&gt;, our Silver Members, &lt;a href=&quot;https:&#x2F;&#x2F;ercom.com&#x2F;&quot;&gt;ERCOM&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.fairkom.eu&#x2F;&quot;&gt;Fairkom&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.famedly.com&#x2F;&quot;&gt;Famedly&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;fractalnetworksco&#x2F;&quot;&gt;Fractal Networks&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;www.gematik.de&#x2F;&quot;&gt;Gematik&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;indie.host&#x2F;&quot;&gt;IndieHosters&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;verji.no&#x2F;en&quot;&gt;Verji Tech&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;www.xwiki.org&#x2F;&quot;&gt;XWiki&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;We look forward to welcoming two new funding members in the coming weeks!&lt;&#x2F;p&gt;
&lt;p&gt;Our community-side members also play an important role, and we’re grateful for their work and participation. This includes our Associate Members, &lt;a href=&quot;https:&#x2F;&#x2F;eclipse.org&#x2F;&quot;&gt;Eclipse Foundation&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;gnome.org&#x2F;&quot;&gt;GNOME Foundation&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;kde.org&#x2F;&quot;&gt;KDE&lt;&#x2F;a&gt;, and our Ecosystem Members: &lt;a href=&quot;https:&#x2F;&#x2F;cinny.in&#x2F;&quot;&gt;Cinny&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;support&#x2F;&quot;&gt;Community Moderation Effort&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;conduit.rs&#x2F;&quot;&gt;Conduit&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;the-draupnir-project&#x2F;Draupnir&quot;&gt;Draupnir&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;noordstar&#x2F;elm-matrix-sdk&quot;&gt;Elm SDK&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;fluffychat.im&#x2F;&quot;&gt;FluffyChat&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.gnome.org&#x2F;World&#x2F;fractal&quot;&gt;Fractal&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#community-events:matrix.org&quot;&gt;Matrix Community Events&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;apps.kde.org&#x2F;neochat&#x2F;&quot;&gt;NeoChat&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;nheko.im&#x2F;nheko-reborn&#x2F;nheko&#x2F;&quot;&gt;Nheko-Reborn&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;polychat.de&#x2F;&quot;&gt;Polychat&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;cgit.rory.gay&#x2F;matrix&quot;&gt;Rory&amp;amp;::LibMatrix&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;thunderbird.net&#x2F;&quot;&gt;Thunderbird&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;trixnity.gitlab.io&#x2F;trixnity&quot;&gt;Trixnity&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If you’d like to see Matrix continue its momentum and the Foundation to further its work in ensuring Matrix is an independently and collectively governed protocol, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;support&#x2F;&quot;&gt;please join the Foundation today&lt;&#x2F;a&gt;. We need your help!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Back to you, Matthew!&lt;&#x2F;strong&gt;&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;focus&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#focus&quot; aria-label=&quot;Anchor link for: focus&quot;&gt;🔗&lt;&#x2F;a&gt;Focus&lt;&#x2F;h3&gt;
&lt;p&gt;In 2023, we went through the nightmarishly painful process of ruthlessly focusing the core team exclusively on stabilising and polishing the foundations of Matrix – shelving all our next-generation showcases and projects and instead focusing purely on refining and evolving today’s Matrix core use cases for chat and VoIP.&lt;&#x2F;p&gt;
&lt;p&gt;In 2024, I’m proud to say that we’ve kept that focus – and indeed improved on it (for instance, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;blog&#x2F;2024&#x2F;09&#x2F;whatsapp-dma&#x2F;&quot;&gt;we’ve stepped back on DMA work&lt;&#x2F;a&gt; for much of the year in order to focus instead on the Trust &amp;amp; Safety work which has gone into Matrix 1.11, 1.12, and 1.13).  As a result, despite a smaller team, we’ve made huge progress with Matrix 2.0, and the results speak for themselves.  Anecdotally, I now wince whenever I have to use another messaging system – not because of loyalty to Matrix, but because the experience is going to be worse: WhatsApp has more &quot;Waiting for message, this may take a while&quot; errors (aka Unable To Decrypts or UTDs) than Matrix does, takes longer to launch and sync and has no threads; iMessage’s multidevice support can literally take hours to sync up; Signal just feels clunky and my message history is fragmented all over the place.  It feels so good to be in that place, at last.&lt;&#x2F;p&gt;
&lt;p&gt;Meanwhile, it seems that Element’s move to switch development of &lt;a href=&quot;https:&#x2F;&#x2F;element.io&#x2F;blog&#x2F;synapse-now-lives-at-github-com-element-hq-synapse&#x2F;&quot;&gt;Synapse and other projects to AGPL&lt;&#x2F;a&gt; may have been for the best – it’s helped concretely address the issue of lack of commercial support from downstream projects, and Element is now in a much better position to continue funding Synapse and other core Matrix work.  It’s also reassuring to see that 3rd party contributions to Synapse are as active as ever, and all the post-AGPL work on Synapse such as native sliding sync shows Element’s commitment to improving Synapse.  Finally, while Dendrite dev is currently slow, the project is not abandoned, and critical fixes should keep coming – and if&#x2F;when funding is available P2P Matrix &amp;amp; Dendrite work should resume as before. It wouldn’t be the first time Dendrite has come back from stasis!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-future&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-future&quot; aria-label=&quot;Anchor link for: the-future&quot;&gt;🔗&lt;&#x2F;a&gt;The Future&lt;&#x2F;h3&gt;
&lt;p&gt;Beyond locking down Matrix 2.0 in the spec and getting folks using it, there are two big new projects on the horizon: MLS and State Res v3.&lt;&#x2F;p&gt;
&lt;p&gt;MLS is Messaging Layer Security (RFC 9420), the IETF standard for group end-to-end-encryption, and we’ve been experimenting with it for years now, starting around 2019, to evaluate it for use in Matrix alongside or instead of our current Double Ratchet implementation (Olm&#x2F;Megolm).  The complication on MLS is that it requires a logically centralised function to coordinate changes to the membership of the MLS group – whereas Matrix is of course fully decentralised; there’s never a central coordination point for a given conversation.  As a result, we’ve been through several iterations of how to decentralise MLS to make it play nice with Matrix – essentially letting each server maintain its own MLS group, and then defining merge operations to merge those groups together.  You can see the historical work over at &lt;a href=&quot;https:&#x2F;&#x2F;arewemlsyet.com&#x2F;&quot;&gt;https:&#x2F;&#x2F;arewemlsyet.com&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;However, the resulting dialect of MLS (DMLS) has quite different properties to vanilla RFC 9420 MLS – for instance, you have to keep around some historical key data in case it’s needed to recover from a network partition, which undermines forward secrecy to some extent.  Also, by design, Matrix network partitions can last forever, which means that the existing formal verification work that has been done around MLS’s encryption may not apply, and would need to be redone for DMLS.&lt;&#x2F;p&gt;
&lt;p&gt;Meanwhile, we’ve been participating in MIMI (More Instant Messaging Interoperability), an IETF working group focused on building a new messaging protocol to pair with MLS’s encryption.  A hard requirement for MIMI is to utilise MLS for E2EE, and we went through quite a journey to see if Matrix could be used for MIMI, and understand how Matrix could be used with pure MLS (e.g. by having a centralised Matrix dialect like &lt;a href=&quot;https:&#x2F;&#x2F;datatracker.ietf.org&#x2F;doc&#x2F;draft-ralston-mimi-linearized-matrix&#x2F;&quot;&gt;Linearized Matrix&lt;&#x2F;a&gt;).  Right now, MIMI is heading off in its own direction, but we’re keeping an eye on it and haven’t given up on converging somehow with it in future.  And if nothing else, the exercise taught us a lot about marrying up Matrix and MLS!&lt;&#x2F;p&gt;
&lt;p&gt;Over the last few months there has been more and more interest in using MLS in Matrix, and at The Matrix Conference &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=PCIg8Qjn74I&quot;&gt;we gave an update on the latest MLS thinking&lt;&#x2F;a&gt;, following a workshop at the conference with Franziskus from Cryspen (local MLS formal-verification experts in Berlin).  Specifically, the idea is that it might be possible to come up with a dialect of Matrix which used pure RFC 9420 MLS rather than DMLS, potentially using normal Matrix rather than Linearized Matrix… albeit with MLS group changes mediated by a single ‘hub’ server in the conversation.  The good news is that Cryspen proposed a mechanism where in the event of a network partition, both sides of the partition could elect a new hub and then merge the groups back together if the partition healed (handling history-sharing as an out-of-band problem, similar to the problem of sharing E2EE history when you join a new room in Matrix today).  This would then significantly reduce the disadvantages of rooms having to have a centralised hub, given if the hub broke you could seamlessly continue the conversation on a new one.&lt;&#x2F;p&gt;
&lt;p&gt;So, we’ve now had a chance to sketch this out as &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4244&quot;&gt;MSC4244 - RFC 9420 MLS for Matrix&lt;&#x2F;a&gt;, with two dependent MSCs (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4245&quot;&gt;MSC4245 - Immutable encryption&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;pull&#x2F;4246&quot;&gt;MSC4246 - Sending to-device messages as&#x2F;to a server&lt;&#x2F;a&gt;) and it’s looking rather exciting.  This is essentially the protocol that Travis &amp;amp; I would have proposed to MIMI had the WG not dismissed decentralisation and dismissed Matrix interop - showing how it’s possible to use MLS for cryptographic group membership of the devices in a conversation, while still using Matrix for the user membership and access control around the room (complete with decentralisation).  Best of all, it should also provide a solution to the longstanding problem of “Homeserver Control of Room Membership” highlighted by &lt;a href=&quot;https:&#x2F;&#x2F;nebuchadnezzar-megolm.github.io&#x2F;static&#x2F;paper.pdf&quot;&gt;Albrecht &amp;amp; co from RHUL in 2022&lt;&#x2F;a&gt;, by using MLS to prove that room membership changes are initiated by clients rather than malicious servers.&lt;&#x2F;p&gt;
&lt;p&gt;Now, we’re deliberately releasing this as a fairly early draft from the Spec Core Team in order to try to ensure that MLS spec work is done in the open, and to give everyone interested the opportunity to collaborate openly and avoid fragmentation.  In the end, the SCT has to sign off on MSCs which are merged into Matrix, and we are responsible for ensuring Matrix has a coherent and secure architecture at the protocol layer – and for something as critical as encryption, the SCT’s role in coordinating the work is doubly important.  So: if you’re interested in this space, we’d explicitly welcome collaboration and feedback on these MSCs in order to get the best possible outcome for Matrix – working together in the open, as per the &lt;a href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;foundation&#x2F;about&#x2F;&quot;&gt;Foundation’s values&lt;&#x2F;a&gt; of ‘collaboration rather than competition’, and ‘transparency rather than stealth’.&lt;&#x2F;p&gt;
&lt;p&gt;Meanwhile, the other big new project on the horizon is State Resolution v3.  Old-timers may remember that when we launched Matrix 1.0, one of the big changes was the arrival of State Resolution v2 (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-spec-proposals&#x2F;blob&#x2F;erikj&#x2F;state_res_msc&#x2F;proposals&#x2F;1442-state-resolution.md&quot;&gt;MSC1442&lt;&#x2F;a&gt;), which fixed various nasty issues in the original merge conflict resolution algorithm Matrix uses to keep servers in sync with each other.  Now, State Res v2 has subsequently served us relatively well (especially relative to State Res v1), but there have still been a few situations where rooms have &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;synapse&#x2F;issues&#x2F;8629&quot;&gt;state reset&lt;&#x2F;a&gt; unexpectedly – and we’re currently in the process of chasing them down and proposing some refinements to the algorithm.  There’s nothing to see yet, although part of the work here has been to dust off &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;tardis&quot;&gt;TARDIS&lt;&#x2F;a&gt;, our trusty Time Agnostic Room DAG Inspection Service, to help visualise different scenarios and compare different resolution algorithms.  So watch this space for some very pretty explanations once v3 lands!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;blog&#x2F;img&#x2F;2024-12-25-tardis.png&quot; alt=&quot;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;happy-new-year&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#happy-new-year&quot; aria-label=&quot;Anchor link for: happy-new-year&quot;&gt;🔗&lt;&#x2F;a&gt;Happy New Year!&lt;&#x2F;h3&gt;
&lt;p&gt;Matrix feels like it entered a whole new era in 2024 – with the Foundation properly spreading its wings, hosting The Matrix Conference, operationalising the Governing Board, and Matrix uptake exploding across the public sector of 20+ countries.  Funding continues to be an existential risk, but as Matrix continues to accelerate we’re hopeful that more organisations who depend on Matrix will lean in to support the Foundation and ensure Matrix continues to prosper.&lt;&#x2F;p&gt;
&lt;p&gt;Meanwhile, 2025 is shaping up to be really exciting. It feels like we’ve come out of the darkness of the last few years with a 2.0 which is better than we could have possibly hoped, and I can’t wait to see where it goes from here!&lt;&#x2F;p&gt;
&lt;p&gt;Thanks to everyone for supporting the project - especially if you are a member of the Foundation (and if not, &lt;a href=&quot;http:&#x2F;&#x2F;matrix.org&#x2F;membership&quot;&gt;please join here!&lt;&#x2F;a&gt;). We hope you have a fantastic end of the year; see you on the other side, and thanks for flying Matrix :)&lt;&#x2F;p&gt;
</content>
</entry>

    
    
</feed>
