
Matrix and Riot Confirmed as the Basis for France’s Secure Instant Messenger App - arctux
https://matrix.org/blog/2018/04/26/matrix-and-riot-confirmed-as-the-basis-for-frances-secure-instant-messenger-app/
======
doomrobo
What protocol? If you look at spec on their website[0] you'll see 4/5 of the
protocols are still marked unstable. Take room state resolution as an example.
It has pretty important security implications and it's nontrivial in a
distributed setting. The algorithm is not stabilized, and it comes with a
warning in the specification:

    
    
        Warning:
        This section documents the state resolution algorithm as implemented by Synapse as of December 2017
        (and therefore the de-facto Matrix protocol). However, this algorithm is known to have some problems.
    

I really like the idea of Matrix, but it seems a little immature for a
government to use as a standardized messaging protocol.

[0] [https://matrix.org/docs/spec/](https://matrix.org/docs/spec/)

[1]
[https://matrix.org/docs/spec/server_server/unstable.html#roo...](https://matrix.org/docs/spec/server_server/unstable.html#room-
state-resolution)

~~~
Arathorn
We’re working towards a 1.0 atm, which the French govt and many others are
counting on. In terms of state res not being well specified:
[https://matrix.org/_matrix/media/v1/download/jki.re/hSmkLkFG...](https://matrix.org/_matrix/media/v1/download/jki.re/hSmkLkFGVUnrXjtYcjsCUsyS)
is pretty comprehensive and should be merged into the spec relatively soon. I
say kudos to the French govt for backing a FOSS project which is still
evolving :)

~~~
bgorman
I don't mean to be disrespectful. The first time I heard of Matrix/Riot was at
OSCOn 2015. What has happened since then,and why has it taken so long to
stabilize?

~~~
Arathorn
We spent massive effort working on:

* implementing E2E encryption and getting it audited, which turns out to be very hard in a decentralised environment

* refining Riot as a flagship client and trying to get it to a Slack/Discord level of UX (still a work in progress)

* scaling, as the 1st gen implementation (synapse) failed to keep up with the growth of the network

* adding features like Jitsi video conferencing, Widgets, Communities, Home pages, Rich Text Editing, Read Receipts, Synchronised Read Markers and much much more.

* dealing with a major funding crisis last year.

In retrospect we probably should have spent more time finalising the current
features rather than adding on new ones, and since the end of last year we've
been feature-frozen in order to finish the stuff in hand and get to a 1.0.

Fixing the issues which remain in federated state resolution is probably the
hardest problem to solve before a 1.0, and I'm happy to say that over the last
few months we've made major progress in doing so.

Agreed that in an ideal world this would have all happened sooner, but turns
out that decentralised open protocols are harder than centralised startups
like Slack and friends. Who knew?

~~~
Arathorn
(oh, and we rewrote (almost) the whole thing in Go, too)

~~~
egeozcan
Go is a great choice for implementing a network protocol but most of the time,
rewriting is not a great choice (source needed).

Do you have any public discussions or blog posts about this decision?

~~~
Arathorn
So totally agreed that rewrites are almost always not a good idea, as per the
famous "Things you should never do!" Joel Spolsky post
([https://www.joelonsoftware.com/2000/04/06/things-you-
should-...](https://www.joelonsoftware.com/2000/04/06/things-you-should-never-
do-part-i)).

The difference for a project like Matrix however is that our product is not
really any single software codebase but the protocol spec itself. In fact,
it's a bad smell about the spec if it's too hard to implement it - whether
that's clients or servers. So part of the point of the Dendrite (golang
server) project is to dogfood the spec and fix its various shortcomings (as
per the OP's complaints) and make sure it's fit for purpose. For context, the
core Matrix team has already written 4 entirely disjoint Matrix client
codebases (Matrix Console on Web, Riot/Web, Riot/iOS and Riot/Android) as part
of developing the spec and ensuring it's fit for purpose, so it's not that
unreasonable for us to also write 2 server implementations (3, if you include
the failed Dendron project).

In terms of blog posts: [https://matrix.org/blog/2017/03/15/dendrite-receives-
its-fir...](https://matrix.org/blog/2017/03/15/dendrite-receives-its-first-
messages/) is probably the most revealing one.

It's worth noting however that Dendrite progress has not been entirely smooth,
though. Particular problems have been:

* When we lost funding last year ([https://matrix.org/blog/2017/07/07/a-call-to-arms-supporting...](https://matrix.org/blog/2017/07/07/a-call-to-arms-supporting-matrix/)) it inevitably had an impact on the team - and ironically the only two people who left the project ended up being the two folks who were working on (and created) Dendrite. This genuinely wasn't a reflection on Dendrite itself (which is ironically one of the most fun projects to work on in Matrix, given it's all blue skies and green fields in terms of implementing a server that learns from Synapse's many mistakes), but more a sad coincidence. Either way, it ended up with the project being under-resourced (although we're finally fixing that during May having re-hired :)

* Matrix traffic accelerated massively during 2017, and Dendrite wasn't yet ready to use in production - but meanwhile Synapse wasn't performant enough to keep the matrix.org server running smoothly, so we had to pull folks off Dendrite in order to keep Synapse scaling (ironically, ending up taking inspiration to some extent from Dendrite in improving the Synapse codebase)

* In general, it's hard to make progress on an R&D project which isn't yet in production when there's an existing project in production which is on fire.

* We deliberately scoped Dendrite to implement a server against the current Matrix spec that Synapse implements - rather than trying to improve the Matrix spec at the same time. This is good in terms of feature creep, but possibly a bit demoralising as you find yourself failing to innovate and improve the spec and instead re-implementing it, warts and all. I'm not sure what the right balance is here, and in practice we've ended up with the Matrix spec evolving significantly under Synapse, and meanwhile Dendrite then becomes a moving target as a result.

* We've almost certainly fallen foul of the Osborne Effect ([https://en.wikipedia.org/wiki/Osborne_effect](https://en.wikipedia.org/wiki/Osborne_effect)) too, where folks have held off on using Matrix or running Synapse because they're waiting for Dendrite to land, RSN.

But on the plus side, there's a small but active FOSS community contributing
to Dendrite - much more than we've _ever_ had on the relatively impenetrable
Synapse codebase. And Dendrite itself works (about 80% of an MVP complete) and
is demonstrably ~2 orders of magnitude faster than Synapse (even whilst
Synapse's performance is also speeding up). And as we find algorithmic
breakthroughs in performance as part of improving Synapse, these breakthroughs
equally apply to Dendrite and will make it even crazier fast.

So, I think it's too early to say whether this is a textbook example of
"second system syndrome", or whether instead it's a mature and sensible
approach to ensuring a heterogenous ecosystem of implementations for an open
standard and dogfooding one's own protocol. My hunch is that if we hadn't hit
funding nightmares last year it would be a no-brainer win; but even now, it's
likely to eventually work out for the best in the end. The best analogy is not
the excruciating migration from Netscape to Mozilla that Joel wrote about in
2000, but the more spectacular and successful migration from Gecko to Servo
happening in Mozilla right now. It's a massive massive architectural
improvement and rewrite in a new language which requires a lot of work, but
pays off in the end.

(This is my personal take on it, at least, as project lead for Matrix; those
actually working on Synapse & Dendrite probably have different viewpoints! :)

~~~
erlend_sh
Are those Dendrite core developers that had to leave coming back now that you
have secured funding?

~~~
Arathorn
Unlikely, sadly, having got jobs elsewhere before we secured long-term
funding. However, it’s not like Dendrite is ownerless - we’ve made good
progress on it since they left up until the point we had to temporarily double
down on Synapse. Meanwhile, folks from the community who have been hacking on
Dendrite are coming on board in the next few weeks. And the old devs are also
still around in a FOSS contributor capacity; answering pings via Github and
Matrix where needed.

[https://github.com/matrix-
org/dendrite/graphs/contributors](https://github.com/matrix-
org/dendrite/graphs/contributors) paints a fairly clear picture of where
things have got to (with Synapse temporarily taking priority since Jan).

------
kuwze
It's sort of ironic considering France's history with Minitel[0] and
encryption[1].

[0]:
[https://en.wikipedia.org/wiki/Minitel](https://en.wikipedia.org/wiki/Minitel)

[1]:
[https://www.forbes.com/forbes/1997/1201/6012058a.html#75b6a6...](https://www.forbes.com/forbes/1997/1201/6012058a.html#75b6a624262f)

Specifically from [1] is the line: "Its illegal in France to encrypt any
communication in any way unless you have permission from the government. How
is electronic commerce going to get off the ground in such a society? Good
question, which appears not to have occurred to the authorities."

~~~
hokkos
It has nothing to do with Minitel as it is a private government only slack-
like tool. And the encryption restriction is long gone like in the US. Why
there is alway francophobes in threads like that ?

~~~
Moru
It's not about francophobes, it's that people remember what they heard
earlier, they don't seek out unimportant (to them) facts on random.

------
marknadal
Congrats Matrix team! That is huge.

Competitor here, few questions:

\- You guys are currently implementing federated protocols, right? We do P2P
protocols, I'm curious why you guys chose federated - why do you think it is
better?

\- How are you guys different than Signal? Obviously way different than
Telegram, as it isn't even Open Source (thanks for Open Sourcing your work!).

\- When I was working on our E2EE private messaging app (ugly demo here:
[https://twitter.com/marknadal/status/989602258638684160](https://twitter.com/marknadal/status/989602258638684160)
), I ran into problems about metadata. Stuff like, do you guys reveal which
public keys are talking to which other public keys? And the frequency of those
conversations? Or do you encrypt that information as well (and if you do, how
do you handle discovery then, and is it vulnerable to network frequency
analysis attacks?)

Awesome work, congrats again, keep it up! Curious to hear more about your
architecture.

~~~
ATsch
> why federated, not decentralized?

afaict, Matrix is both, kind of. Rooms are decentralized, while users are
federated.

> What about signal?

Signal is great, but it solves a very different problem. It's a good
replacement for talking to your best friends on your phone.

But it fails quickly once you go past that. No true multi-device, no talking
without releasing your phone number, no public groups. No mentions, no
permalinks. In that regard, I'd say matrix is closer to telegram and irc than
WhatsApp or Signal

> what about metadata?

The state of metadata in E2E is... not good. Really, only the content of the
message is secret. There are a number of ideas how to deal with this.

~~~
acct1771
> Signal is great, but it solves a very different problem. It's a good
> replacement for talking to your best friends on your phone.

Riot does this pretty well, and when it's not alpha/beta, it'll probably do it
_really_ well.

------
j4pe
I had to roll my own chat system recently because the open source solutions
out there were surprisingly insufficient - nothing seems to support
websockets. Looking forward to the French contributions to the ecosystem!

For instance: at the moment Matrix server implementations expect clients like
Riot to long-poll for JSON about each room/chat they're connected to.
Alternatives like Prosody's XMPP server implementation dropped websocket
support in favor of BOSH years ago.

I wonder why this is - maybe there's just less developer interest since chat
has gone mobile, and mobile devices break ws connections so frequently? But
it's obvious that chat clients like FB messenger, whatsapp, slack, etc are
establishing ws connections.

Strange.

~~~
jkarneges
Network overhead aside, long polling can be a pretty wonderful interface.
“Give me what I don’t have yet, else let me know when there is something”
makes for reliable transmission that is hard to screw up. Long polling
requests can work idempotently and recover from network failures
automatically. I think it’s an especially wise starting point.

~~~
ckocagil
There shouldn't be any overhead to long polling in comparison to websockets.

~~~
chatmasta
What about the HTTP headers?

------
rb808
I tried matrix/riot out, looks perfect for me and app is slick.

Sending messages though from a server to a room was more difficult than I
expected. Java SDK didn't build and many of the other languages were alpha
too. Go seemed favored but I dont really want to install. Is there a
recommended simple command line app or script to send messages?

~~~
Arathorn
curl? O:-) Matrix is intended to be simple enough that you don’t even need an
SDK unless you really want one.

which java sdk did you try?

~~~
sli
> Matrix is intended to be simple enough that you don’t even need an SDK
> unless you really want one.

Huh. So Haskell + Servant might be really nice for writing a client, then,
yeah?

~~~
Qwertie
Anything you can make HTTP requests in really. I have messed around with
sending messages from Ruby and Bash and it's quite easy. And a lot more easy
if there is an SDK for your language which will handle a few things for you.

~~~
syntaxfree
So what's irssi for Matrix?

~~~
kqr
weechat-matrix. You should be using weechat over irssi anyway!

~~~
unicornwizard
Why? Longtime irssi user here.

~~~
kqr
I usually view it as a cost–benefit sort of thing. When a choice has nearly
zero cost, only very little benefit is needed to make it the rational choice
as far as I'm concerned.

What does WeeChat offer over irssi? Very active development, scripting in many
languages, dynamic filtering, raw buffer views, sane defaults, helpful
configuration interface, good documentation, live/hotswapping upgrades,
architectural soundness, many options for interaction (FIFO pipes, client-
server protocol) and so on and so forth. I'm always surprised at how little
WeeChat gets in my way when I want to do something out of the ordinary.

And unless you are heavily invested in the irssi ecosystem, the switch is
basically effortless.

That's the cost–benefit of it. Another way to view it is this: People who
switch from Irssi to WeeChat keep using WeeChat; while people who switch from
WeeChat to Irssi go back to WeeChat.

~~~
andrewshadura
What I don't like about WeeChat is the UI. It's subtly different from irssi’s,
which makes it difficult for me to switch.

~~~
kqr
On a scale from ed to Office 365, WeeChat and irssi have practically the same
default UI -- and it's butt-ugly. But I do see your point, and it's likely
configurable. Anything specific you need help with?

------
sys13
Does this make freedom of information requests less useful to the public?

~~~
akditer
Freedom of information....which amendment is that :P ?

~~~
geoffpado
This is France we're talking about, so it's not amendments, but rather Article
XV of the "Déclaration des droits de l'homme et du citoyen de 1789":
[https://en.wikipedia.org/wiki/Declaration_of_the_Rights_of_t...](https://en.wikipedia.org/wiki/Declaration_of_the_Rights_of_the_Man_and_of_the_Citizen_of_1789)
("The society has the right of requesting an account from any public agent of
its administration."), which is used as the basis for actual legislation
today: [http://www.ucl.ac.uk/constitution-
unit/research/foi/countrie...](http://www.ucl.ac.uk/constitution-
unit/research/foi/countries/france)

~~~
akditer
I am sorry, I am not french. I thought this is some stupid American law which
every Americans expect the rest of the world to know.

------
lucb1e
Does anyone know more about this Netherlands thing it refers to? I can't find
anything in relation to the Dutch government and usage of this FOSS
communication tool.

~~~
amandine
It’s just early discussions between governments

------
mike-cardwell
This should make the Librem 5 a more attractive phone in France:
[https://matrix.org/blog/2017/08/24/the-librem-5-from-
purism-...](https://matrix.org/blog/2017/08/24/the-librem-5-from-purism-a-
matrix-native-smartphone/)

------
youseecomrade
I don't know much about licenses: is Matrix and/or the protocol safe from
Facebook, Google and co to pull the same thing again? Feels like EEE is
inevitable when these companies allocate resources to provide a better UI/UX
and benefits in their own services.

~~~
Jaepa
I have no clue what you are trying to ask, sorry. Could you clarify?

Do you mean IP lawsuit's against Matrix itself?

~~~
majewsky
I guess grandparent means how Google (and later Slack) initially supported
XMPP in their chat products, then disabled the XMPP gateway once their
userbase was significantly large that most conversations were inside their own
bubble.

There's not much that Matrix can do to defend against that, except for
strategic marketing with the purpose of achieving a large distributed
userbase. If Gmail had existed in 1990, we would not have a decentralized
e-mail network today. If Gmail had got into a position where they served 99%
of all e-mail users, they would've pulled the plug on mail delivery to third-
party mail servers and e-mail as we know it would've been dead.

~~~
forty
Isn't that what is slowly happening? My understanding is that it's becoming
harder and harder to send email to a Gmail address of you are not yourself
using Gmail (without being tagged as spam/junk I mean)

~~~
jraph
I host my mails and to my surprise, gmail has been one provider which hasn't
caused me any trouble so far in 2 years, with Yahoo. I have proper
configuration for dkim, SPF and dmarc. Even when my mails were somewhat
misconfigured it worked with gmail. When a recipient has a gmail or a Yahoo
address, I am quite confident that my mails will make it into their inbox
correctly.

Not that I'm glad that most people I email with use gmail, since I'm precisely
hosting my mails to escape Google (well, this is one of the reasons).

I cannot say that for Microsoft. After a long discussion with them, I think
I'm not systematically landing in my recipients' spam folder anymore, but I'm
still not very confident. Microsoft, please fix your filters! If I already
exchanged with somebody in a two-way direction several times, my mails should
not land in their spam folder anymore, especially if they explicitly marked me
as not spam (even more if they added me to their contact list), and if you
observed only legitimate mails for months or even years from my IP/domain, my
mails should not be treated as spam by default even for new recipients, right?
Good and reasonable filters are important for internet neutrality, where small
providers can exist.

------
aw3c2
Will this make end-to-end encryption finally get the polish it needs?

~~~
hoschicz
Do you feel like WhatsApp is not polished?

~~~
lucb1e
If polish is broadly defined as "something that was hitherto still missing in
(claimed-to-be) end to end encrypted chat applications", then open source and
a decent profit model are definitely features lacking from WhatsApp. Telegram
is open source, but one has to consciously turn on encryption and it doesn't
work on the web or desktop clients (and the profit model is non-existent).
Signal doesn't work without Google services and requires a phone number and
turned-on phone iirc (and their profit model seems to be extorting companies
like Wire and helping closed source software like Whatsapp advertise with
Signal-level encryption). Wire is the best of all, but the Android app drains
battery and everything is web (slow, bulky; Electron). None of the above work
in a decentralized manner, either.

I don't know much about Matrix or Riot.im (from what I remembered, it was a
implemented IRC alternative), but if it delivers on all of the above (and the
article sure sounds like it), then it's definitely polishing up some final
features that were still missing!

~~~
prophesi
Very surprised to never see Keybase mentioned in these discussions.
Everything, even the team chats, are end-to-end encrypted with a pretty slick
interface.

You can even send E2E-encrypted messages/files to people who haven't even
joined yet!

[https://keybase.io/blog/keybase-chat](https://keybase.io/blog/keybase-chat)

~~~
pnutjam
I'm using this, they recently increased their free storage to 250gb.

------
TeddyBear060
Great to read this kind of news!

I can't wait to see the end product (this summer 2018) :)

------
jaequery
well, this is what scares me. because, the conversation may be encrypted
(protocol, packets), but still messages can be accessible by the powers that
be through variety of means.

especially considering they "forked" it, who knows what they will do with it
(log keystrokes, take screenshots, in the disguise of diagnostic reasons?).

anytime you are reading a message from your app, or sending a message, the app
have all the powers to capture the data in its raw form before transmission,
encrypt it with some key that only they have control of, etc. so unless the
gov't releases their source code to be truly open (which even then i don't see
how you will ever know), you won't get the transparency you need.

encryption is such a buzzword, people think anything encrypted means you are
fully secure. this is simply false.

~~~
Jaepa
From the 2nd paragraph:

    
    
        We understand the whole project is going to be released entirely open source (other than the operational bits) 
        – development is well under way and an early proof of concept is already circulating within various government 
        entities.
    

But if it has interop with the matrix, you should just be able to use Riot.

------
bitmapbrother
_It will guarantee secure, end-to-end encrypted conversations without
degradation of the user experience. It will be compatible with any mobile
device or desktop, state or personal._

Is the application they're creating also going to be open source and available
for auditing?

~~~
amandine
that is the plan, except the operational bits specific to their deployments

------
walkingdog
hello i am new here and a noob. But this application messenger is only maked
for France government use or also for everbody people around the world?

thereby, Riot is developed by the france government. Big change it has a back-
door or something. you cant trust it as a citizen. correct me if i wrong but
this sound like a honey pot to me.

------
wpdev_63
So what's wronng with signal?

~~~
HIPisTheAnswer
You can't run your own signal server. If that isn't _huge_ then nothing is.

~~~
Promarged
To be more precise you _can_ run your own server but it would not connect to
the rest of the network (so it's useless).

Source code here: [https://github.com/signalapp/Signal-
Server](https://github.com/signalapp/Signal-Server)

~~~
acct1771
Why's it useless if it's only for internal govt communication?

If anything, that'd be a feature, no?

------
alborzmassah
Why was Telegram and WhatsApp installation not possible before?

~~~
TuringTest
Because of closed source.

------
foobarbazetc
Don’t suppose anyone knows why the Signal protocol wasn’t chosen?

~~~
amandine
Because Signal is centralized. With Matrix they can deploy different servers
across the gouvernement which interoperate. And potentially open it to the
wider Matrix ecosystem

~~~
subway
Signal, the service is centralized, but there's no reason that Signal, the
protocol can't be. In fact before Moxie went on his silly "only I can do
security right" rampage, Signal was federated with a server hosted by
CyanogenMod.

~~~
esaym
>In fact before Moxie went on his silly "only I can do security right" rampage

Do you have link or source for that? (I'm always interested in listening or
watching stuff from Moxie)

~~~
snthd
Probably [https://signal.org/blog/the-ecosystem-is-
moving/](https://signal.org/blog/the-ecosystem-is-moving/)

>Nothing about any of the protocols we’ve developed requires centralization;
it’s entirely possible to build a federated Signal Protocol-based messenger,
but I no longer believe that it is possible to build a competitive federated
messenger at all.

~~~
Promarged
Moxie is probably annoyed by the slow pace in which federated protocols move.
Having it centralized he can move it a lot faster.

Fortunately there are solutions that incentivize modern features in federated
protocols too, like SSLLabs HTTPS checker or
[https://conversations.im/compliance/](https://conversations.im/compliance/)
for XMPP.

------
rzr
will it erode trust ? or the opposite ?

------
joeblow9999
I won't be using a 'secure' messaging app built by the govt any time soon...

~~~
Xylakant
AFAIK, this is mostly intended as a secure messenger _for_ the government.
Which makes sense - what are they supposed to use? WhatsApp? Twitter DM? Skype
for Governments?

But even if you’re not in the target demographic, you might benefit: The
government will run a large installation and hopefully some code will find its
way back to the OS version.

~~~
kqr
> Skype for Governments?

I want to type this into a search bar to see if it's a thing... but
simultaneuosly I'm terrified of the prospect of discovering that it is.

~~~
Xylakant
I don’t think it exists as a product, but I’d totally not be surprised if
Skype for Business is used in government branches.

~~~
shakna
> I’d totally not be surprised if Skype for Business is used in government
> branches.

It is, or at least Centrelink, Medicare, NDIS and Veteran's Affairs use it in
Australia. Wouldn't be surprised if it was also used outside of DHHS.

------
ericfrederich
Never heard of Matrix... looked it up; gross... python2.7

~~~
kuschku
Also take a look at the network "protocol": JSON over HTTP longpolling,
requiring usually a separate socket for each batch of messages sent or
received (unless HTTP/2 is available, then it’s a bit less expensive, still
has a massive overhead).

Matrix has so much potential – someday, when it’s built on technologically
more ideal foundations.

Python2.7 you’ll barely notice, but the network overhead of the Matrix
protocol becomes heavily noticeable by the end user (especially if your cell
phone’s data plan runs out, and you’re stuck on 64kbps until the end of the
month, then Matrix in larger rooms just becomes impossible)

~~~
amandine
The spec only states the use of JSON over HTTP as a baseline so anyone is
welcome to implement more efficient transports like CBOR/COAP or MQTT or
whatever :) But yes the goal of the reference implementations was to showcase
the simplest transport: one PUT to send and one GET to retrieve it. Meanwhile
we’re working on improving the performance of the servers with some rather
nice breakthroughs on the horizon.

~~~
kuschku
As I said, the potential is there, the current implementations just aren’t
there yet. In a few years it might be entirely different.

And I’m not sure PUT and GET are the simplest solution, I’d think a simple
socket over which messages are transmitted in both directions would be simpler
than implementing an entire HTTP stack.

~~~
lpghatguy
Being able to implement a client that runs in a browser (and can thus only
deal in terms of HTTP) is very valuable, and one reason to claim that the
simplest solution is HTTP PUT and GET.

------
jrq
Why is the world so desperate to pretend that irc doesn't exist? Why can't we
just get a new irc spec with e2e in mind?

Matrix is an extremely immature project and the French gov is making an
irresponsible move here to prop it up as a solution in any capacity.

It's beta software! Where are the audits? Where are the formal verifications?
Not that irc has those, I don't mean to juxtapose one not-good-enough product
with another, but this is reaching a point of insanity.

If you want security, use signal. If you don't trust signal, learn to trust
scores of world renowned cryptographers, and use it anyways. And if you're
still bored, renovate irc.

Gosh this is just crazy. It's like saying the tesla 3 will be the authorized
taxi vehicle on Mars. There's so much work yet to be done, it's a million
years too early to start regulating and organizing something that's not even
half built.

~~~
kqr
I think I can relate to your point because I used to write comments like
these. You're right. The world is desperate to pretend IRC doesn't exist. We
should get a new IRC spec with e2e in mind.

What surprised me is that Matrix is practically a modern IRC spec with e2e in
mind. What's better is that the Matrix devs acknowledge this heritage. They
don't pretend IRC doesn't exist. They're very up-front about loving IRC, and
they have successfully brought over nearly every good feature of IRC into
Matrix.

At first I thought it was too good to be true, but it keeps on being good. I
have waited for years for a decent IRC alternative which I can convince even
my less technical friends and family to use, and Matrix is it. I truly feel
like I'm on IRC with my family. It's insanely good. I even use the same client
for both.

Matrix can replace your Signal. It can replace your Telegram. It can replace
your WhatsApp. It can replace your Facebook messenger. It can even replace
IRC. It _is_ that complete.

~~~
jrq
It uses HTTP requests for transit! I know you don't actually know what youre
talking about, so I'll explain:

There is much more overhead to opening a connection and maintaining a connect
and sending and receiving, to the degree that people with bad connections are
excluded entirely from being able to reliably use it. This is not true with
irc. People in third world countries can use irc. If you can ping, you can
chat.

We don't WANT a chat for less technical people. We want e2e safety. We should
never prioritize """normal users""" over security in a security oriented
proposal! That's insane!

But hey, I'm sure youre just a teen with a laptop, so I won't hold it against
you that you'd make such an irresponsible decision.

~~~
kqr
Insert counter-patronizing preamble here.

\------8<\---------------

While the overhead of setting up a fresh TCP connection for every exchange is
non-trivial, I'm not sure "reliable on a bad connection" is a characteristic I
would attribute to IRC. The protocol is notoriously _unreliable_ to the point
where established practise is to run a client on a server somewhere and then
connect to that from your bad connection computers. People who don't lose IRC
messages sent while their connection crapped out, while Matrix ensures their
client is updated to reflect the current state of the servers as soon as they
go online again.

I believe also that modern HTTP options let you reuse the same connection for
multiple requests, obviating much of the overhead. Not to mention that you are
free to extend the Matrix server with alternative connection methods.

We _do_ want a chat for less technical people. In order for humanity to not
screw over itself royally, we need to target the 99%, not the 1%. Things can
be good and still target non-technical people, as long as they are open and
federated.

Of course, convenience does not trump security, but I don't see how that is
the case here either.

------
JustSomeNobody
Do the French make their own hardware? An encryption app is useless if you
don't 100% trust the hardware. Tainted hardware could figure out, log and send
your keystrokes from screen taps/swipes all from silicon.

~~~
Jaepa
Its a fallacy of composition to say that better security useless unless its
perfect security.

This is better that it was before. More security is better. Perfect security
does not and cannot realistically exist for a complex system.

I do think have a reproducible binary would be a huge win. Even if you can't
verify the integrity of a single build you could verify that build by
consensus.

~~~
HIPisTheAnswer
Reproducible builds are what nix is good at. Synapse is already well packaged,
but Riot has the problem of using electron, which was never fully packaged on
`nixpkgs`. Maybe someone with the right skills will be willing to do that.
Bonus: vscode and others get better support on nix.

[https://nixos.org/nix/](https://nixos.org/nix/)

