If we had to choose between them, I'd take Matrix in a heartbeat, but I just let them co-exist.
Really, as long as you have mobile data, there's no difference between supporting SMS encryption and not - you can only talk encrypted to other Signal users anyway, and other Signal users will get your non-SMS-routed encrypted message just fine.
The use case for Signal-encrypted-SMS is continuing to send encrypted while you have no IP connectivity, but thankfully that is becoming a rarer corner-case. The last time I had SMS but no IP was on a cruise ship.
> I expect it to have high battery consumption and an unreliable user experience, but would be fine with it if it comes with a warning and only runs in the absence of play services
You don't get high battery consumption, or unreliable user experience, or a requirement for Play Services with pure SMS encryption.
SMS encryption is actually quite a tricksy problem. TextSecure's entire purpose (over bog standard IM OTR) was to solve it, providing individual message-level forward secrecy. This is why it's so perplexing to me that they dropped it (I understand that part of the reason is that iOS simply does not allow it)
It is not enough to make the system distributed, you need to exploit the fact that different parts of the network are controlled by different parties to build self-enforcing protocols that ensure anonymity.
For comparison, see how bitcoin is just distributed and zerocoin is anonymous. Gnutella is just distributed and FreeNet is anonymous.
https://whispersystems.org/blog/giphy-experiment/
This is how Signal provides Giphy search (spoiler: they tunnel a TLS connection through their own server, with TLS negotiated end-to-end from the Signal app to the Giphy server, so that Giphy can't tell what client is searching for what GIF while at the same time Signal's server's can't see what people are searching for).
Does anyone believe that in a world where 90% of Signal-network client installs weren't Signal.app, that this is how features like this would work? It's not an unknowable question. All you have to do is look and see how Signal's competitors, like Wire, tackle this problem.
It's true that in a federated Signal-network, you might get clients that have security features Signal itself lacks. But because it's far easier to produce an insecure client than a secure one, insecurity will dominate, and be a boat anchor around any efforts to improve security down the road.
Call it "the libpurple problem".
Likewise, Open Whisper Systems is pretty trustworthy, but if someone gets access to their servers, either by hacking or by coercion, and starts, say, logging metadata (who's chatting with who), all Signal users are compromised. When I chat on a private (and SSL-only) IRC server, the security guarantees are awful compared to Signal - and I'm not saying that's not a problem - but at least I know that my conversations will only be compromised if someone really has it out for my group in particular; they won't show up in some massive leak and/or government database.
This also applies to binary distribution. When software is compiled by N different distros or package managers or by users directly, that does make it hard to get security updates out in a timely manner. But with a centralized system like Signal's, if the binaries are compromised, everyone is pwned. Yes, measures like reproducible builds can reduce the risk, but they're far from perfect. Is there even anyone who verifies Signal builds on a regular basis/automatically?
That's a dangerous meme to be spreading. FreeNet is not anonymous. Peers know your IP address. And malicious peers can learn what chunks your node is handling. Sure, there's "plausible deniability". And common probabilistic attribution arguments are bogus. But that's cold comfort after the SWAT team has impounded all of your gear.
They can't however tell if you are serving them or if you cached them due to their requests.
All the metadata of Signal is available in one single system, transmitted across the globe into a foreign, and hostile country.
In fact, we have to assume every bit that ever goes through the US is logged and stored by the NSA, and that makes Signal entirely untrustworthy.
https://github.com/WhisperSystems/Signal-Server
It's sure become fashionable to hate on Signal/OWS. The price of actually successfully bringing good encryption mainstream?
Edit: The comment I replied to originally included a question on whether Signals server is even open source.
Sorry about that, I had looked it up just a second after I posted and then removed that line.
> hate on Signal/OWS
I don't mean to hate on them, just their stance on getting away from Google, using F-Droid, federating their service and many other things has been more than a bit of a mess or disappointment. I'm glad they finally made a step in the right direction and I hope this will continue.
As I said in another reply, I can get a completely non-technical user to start using Signal with me in a minute, and have them have an experience that is as accessible as WhatsApp. That's simply not true for any of the other options I'm aware of (and it relates directly to most of the points you raise, with the notable exception of F-Droid. There I also find their reasoning weakest).
And that "no more" is really important. "Just slightly more" won't do. Especially not if it's "slightly more to someone who frequents HN". Because that's likely already prohibitive to most.
Take a person that just barely knows how to operate the play store. I can instruct that person over phone how to start chatting with me securely in a minute or two:
Go to the play store, download signal, open signal, I'm already there in your contact list. Write me a message. Done.
That's an amazing achievement. The much maligned fact that phone numbers are used as identifiers is key to that experience, too, because my phone number already is on that persons phone.
And yeah, I can't verify Whatsapp, but I still trust that Moxie et.al. have checked their implementation. Still that's why I push people to switch to Signal rather than stay on WhatsApp. Doubly so as WhatsApp belongs to Facebook now (I loved their original 1 Dollar a year business model, and if they still had that I would trust them a lot more).
Even with doubts about Facebook, it almost certainly is a massive win that WhatsApp implemented this. It makes WhatsApp immune to being subpoenaed for conversations, and thus they have a clear motive to implement it properly, too.
I wish there would be more devs building modern clients for XMPP instead of building the 100th communication system.