This commit is contained in:
epoberezkin committed 2026-07-14 14:20:03 +00:00
1 parent 85890f8f2b
commit 033eed8a92
184 files changed
+228 -197

No files matched your search

+6 -6
View File
@@ -652,7 +652,7 @@
<h2 id="whats-the-problem" tabindex="-1">What's the problem?</h2>
<p>SimpleX network is fully decentralized, without any central component or bootstrap nodes — you could use your own servers from day one. While there is no full list of SimpleX network servers, we see many hundreds of servers in public groups.</p>
<p>But a large number of SimpleX app users use the servers pre-configured in the app. Even though the app randomly chooses 4 servers in each connection to improve privacy and security, prior to v6.2 for these users the servers were operated by the same company — ourselves.</p>
<p>Our open-source code that we are <a href="https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html#legally-binding-transparency">legally bound to use</a> doesn't provide any metadata that could be used to learn who connects to whom. But the privacy of users' connections still depends on us honouring our promises and <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/PRIVACY.md">privacy policy</a>. Flux servers in the app improve that.</p>
<p>Our open-source code that we are <a href="https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html#legally-binding-transparency">legally bound to use</a> doesn't provide any metadata that could be used to learn who connects to whom. But the privacy of users' connections still depends on us honouring our promises and <a href="https://github.com/simplex-chat/simplex-chat/blob/stable/PRIVACY.md">privacy policy</a>. Flux servers in the app improve that.</p>
<h2 id="using-two-operators-improves-connection-privacy" tabindex="-1">Using two operators improves connection privacy</h2>
<img src="https://simplex.chat/blog/images/20241125-operators-2.png" width="288" class="float-to-right" />
<p>To ensure that the users' metadata from different servers cannot be combined to discover who talks to whom, the servers in each connection have to be operated by different independent organizations.</p>
@@ -1301,7 +1301,7 @@ See <a href="https://simplex.chat/faq/index.html#does-simplex-protect-my
<p>We are committed to open-source, privacy and security. Here are the recent changes we made:</p>
<ul>
<li>We now have a <a href="https://simplex.chat/transparency/index.html">Transparency Reports</a> page.</li>
<li>We updated our <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/PRIVACY.md">Privacy Policy</a> to remove undefined terms "impermissible" and "acceptable", which would allow us to remove anything we don't like, without any clarity on what that is. You can see the edits <a href="https://github.com/simplex-chat/simplex-chat/pull/4076/files">here</a>.</li>
<li>We updated our <a href="https://github.com/simplex-chat/simplex-chat/blob/stable/PRIVACY.md">Privacy Policy</a> to remove undefined terms "impermissible" and "acceptable", which would allow us to remove anything we don't like, without any clarity on what that is. You can see the edits <a href="https://github.com/simplex-chat/simplex-chat/pull/4076/files">here</a>.</li>
<li>We published a new page with <a href="https://simplex.chat/faq/index.html">Frequently Asked Questions</a>, thanks to the guidance from users.</li>
<li>We also have a new <a href="https://simplex.chat/security/index.html">Security Policy</a> – we welcome your feedback on it.</li>
</ul>
@@ -2084,12 +2084,12 @@ See <a href="https://simplex.chat/faq/index.html#does-simplex-protect-my
<h4 id="why-not-hosted-groups-with-mls" tabindex="-1">Why not hosted groups with MLS?</h4>
<p>Initially, we considered the design with the dedicated servers, potentially self-hosted, that host groups. This design would require adopting MLS (or similar) protocol for group-wide key agreement. Unfortunately, this design is not sufficiently resilient and easier to censor than decentralized design. Also, MLS protocol is very complex to implement, requires a centralized component, and reduces forward secrecy. So we decided against this approach.</p>
<h4 id="why-not-fully-decentralized-groups" tabindex="-1">Why not fully decentralized groups?</h4>
<p>We also <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/docs/rfcs/2023-05-02-groups.md">considered</a> rumour-mongering protocol, where all members are equal and participate in message dissemination. The problem with this approach is that it adds a lot of traffic for all members, even those who mostly read messages. Also, it still requires establishing a fully connected graph, and with large groups it becomes prohibitively expensive and unreliable, given that many members join public groups for a limited time.</p>
<p>We also <a href="https://github.com/simplex-chat/simplex-chat/blob/stable/docs/rfcs/2023-05-02-groups.md">considered</a> rumour-mongering protocol, where all members are equal and participate in message dissemination. The problem with this approach is that it adds a lot of traffic for all members, even those who mostly read messages. Also, it still requires establishing a fully connected graph, and with large groups it becomes prohibitively expensive and unreliable, given that many members join public groups for a limited time.</p>
<h4 id="members-host-the-groups" tabindex="-1">Members host the groups</h4>
<p>We are now considering a middle-ground - the design where the owners and admins host the group, synchronising the state between them, receiving and re-broadcasting the messages between all members. This puts a higher burden on these members, but these clients can be hosted in the cloud, and also group owners have a larger incentive to maintain group integrity. At the same time, this design is better for the rest of the group members, as they don't need to establish connections with all other members, only with a limited number of "hosting" members, and it also better protects their privacy, due to the lack of direct connections between most members.</p>
<p>This approach avoids the need for a group-wide key agreement protocol, as hosting members are expected to have access to all content anyway, so pair-wise ratchets are sufficient. At the same time the content remains end-to-end encrypted, and protected from the outsiders.</p>
<p>This approach also simplifies moderation - the message that needs to be removed simply won't reach the members before it is moderated (in case of automatic or policy-based moderation).</p>
<p>Discovery and content search in such groups will be provided via a dedicated discovery server that will participate in the group, provide an always-online client, and also automatic content moderation functionality - a possible approach to moderation is <a href="https://simplex.chat/blog/https%3A//github.com/simplex-chat/simplex-chat/blob/stable/simplex-chat/docs/rfcs/2023-05-22-groups-moderation.md">described here</a>.</p>
<p>Discovery and content search in such groups will be provided via a dedicated discovery server that will participate in the group, provide an always-online client, and also automatic content moderation functionality - a possible approach to moderation is <a href="https://github.com/simplex-chat/simplex-chat/blob/stable/docs/rfcs/2023-05-22-groups-moderation.md">described here</a>.</p>
<p>We really look forward to your feedback on this design.</p>
<h3 id="what-about-read-receipts" tabindex="-1">What about read receipts?</h3>
<p>We have an approximately equal number of users who ask us to add receipts, and those who ask not to add them, even as optional.</p>
@@ -3631,10 +3631,10 @@ file ---> | XFTP | ------> XFTP ----&
<h3 id="chat-groups" tabindex="-1">Chat groups</h3>
<p>To create a group use the <code>/g <group></code> command. You can then invite contacts to the group by entering the <code>/a <group> <name></code> command. Your contact(s) will need to use the <code>/j accept</code> command to accept the invitation to the group. To send messages to the group, simply enter <code>#<group> <message></code>.</p>
<p><strong>Please note:</strong> Groups are not stored on any server; they are maintained as a list of members in the app database. Sending a message to the group sends a message to each member of the group.</p>
<p><img src="https://simplex.chat/blog/images/groups.gif" alt="simplex-chat" /></p>
<p><img src="https://simplex.chat/images/groups.gif" alt="simplex-chat" /></p>
<h3 id="file-transfer" tabindex="-1">File transfer</h3>
<p>Sharing files is simple! To send a file to a contact, use the <code>/f @<contact> <file_path></code> command. The recipient will have to accept before the file is sent.</p>
<p><img src="https://simplex.chat/blog/images/files.gif" alt="simplex-chat" /></p>
<p><img src="https://simplex.chat/images/files.gif" alt="simplex-chat" /></p>
<h2 id="were-always-looking-for-help" tabindex="-1">We're always looking for help!</h2>
<p>We'd really appreciate your comments, criticism and support - a star on the GitHub repo, downloading and testing the chat or any contribution to the project will help a lot – thank you for all your support!</p>
<p><strong>Please note:</strong> SimpleX Chat is in early stage development: we are still iterating protocols, improving privacy and security, so if you have communication scenarios requiring high security, you should consider some other options for now.</p>