betrusted-io / betrusted-wiki

Looking for docs on Precursor/Betrusted? Start here.
https://github.com/betrusted-io/betrusted-wiki/wiki
Apache License 2.0
173 stars 6 forks source link

Use Delta Chat instead of (or in addition to) Matrix #7

Open dumblob opened 4 years ago

dumblob commented 4 years ago

I saw some notes about tentative choice of Matrix as the underlying main communication technology. Here I'd like to propose an alternative which has in my opinion certain benefits over Matrix ecosystem.

(I got motivated to write this proposal by the commit comment in https://github.com/betrusted-io/betrusted-soc/commit/36114f92f35b7395632a358a3ac6e7f4f2d6324b )

I don't know how much time you already devoted to implementing Matrix, but seeing Delta Chat finally thrive, I dare to say it slowly becomes the best choice among all chat-like communicators (Signal, Matrix, Telegram, Whatsapp, ...you name it).

  1. It's just plain old email and thus wastly decentralized with highly independent "nodes" (i.e. governments, bigger subjects etc. can't "take it down" unlike with Matrix, Signal, etc.).
  2. The decentralization doesn't require any effort (it's already running everywhere instead of "competing with hundreds of other chat server apps").
  3. It's end-to-end encrypted (including attachments) unlike "partial" encryption like in other messangers (where e.g. only text gets encrypted, but not attachments; or where encryption works only with 1-on-1 chats or where there are other limitations).
  4. It's easier to implement (the core of Delta is in Rust already and only the UI layer and platform-specific API bindings differ among platforms - iOS, Android, multiplatform desktop).
  5. It's actively professionally developed and guided by surveys what the target user base needs and thinks (e.g. survey among activists in different nations across the globe).
  6. It supports unreliable & low-bandwidth networks (but this holds more or less true for others as well).
  7. It allows for easy anonymity (Matrix strongly encourages one to use the same account across all federated servers, but Delta encourages one to use several unrelated email accounts from arbitrary email providers - e.g. one for activism and one for personal stuff and one for spam and one for whatever...).
  8. It is also funded by NLnet (that's just a coincidence :wink:, not that it would be any argument).
  9. Betrusted platform could implement Delta Chat client (MUA) with only verified groups support (i.e. totally skipping support for non-encrypted messaging) if size limits would become too limiting.

What do you think?

dumblob commented 3 years ago

Thoughts?

bunnie commented 3 years ago

I think basically we're open to any chat app being ported to the platform, but first we need to build the platform!

ghost commented 3 years ago

this could be a good suggestion for easy access to mailing lists if there are any @dumblob, very interesting though never heard of it before, will check it. cheers

ediliziosantrapa commented 3 years ago

Deltachat does not have forward secrecy it seems, but looks super easy to onboard others, and because it uses email protocols, one app could conveivably be written that handles email messaging as well as delta chat instead of having to develop two at once. I like especially that it caters to asynchronous chat, like email, as asynchronicity can be a key ingredient of good opsec.

On another note, here are some other rust implementations of signal that I have found, as well as rust related projects relating to matrix:

I imagine that Signal has some funding, and their founder is very savvy, and he may be interested in the betrusted/precursor platform, and there may be opportunity to seek funding to build official rust implementation for the precursor. Then again, the premise of rust also is to make encryption for everyone, which insinuates only on mainstream devices.

Beyond Signal and Delta and others, there is also XMPP as useful foundation for messaging on the precursor possibility, below I am reposting what I shared elsewhere in the "brainstorm" issue:

Also in regards to messaging proxies, there are services to use XMPP as VOIP client, and there are also ratchet and other e2e encryption implementations for XMPP, and I also believe that XMPP is partway compatible with email, so it could be a very interesting route to pursue. I will repost this in the other thread on delta chat as I realize it is pertinent. The best part is XMPP could possibly act as SMS, Email AND Voice proxy all at once. It is possible to use a phone number with XMPP/Jitter, see here: https://jmp.chat/. Here is a rust console based xmpp client: https://github.com/paulfariello/aparte , this group says they can run xmpp server on tiny embedded systems: https://tigase.net/

Very excited to see what software gets written for betrusted platform.

ediliziosantrapa commented 3 years ago

I guess Matrix will include XMPP, but here are two xmpp implementations written in rust:

1) https://github.com/Florob/rust-xmpp 2) https://gitlab.com/xmpp-rs/xmpp-rs

Also very promising is the MLS (Messaging Layer Protocol) which you can read about here: https://tools.ietf.org/id/draft-barnes-mls-protocol-00.html, but there are also two rust implementations that is actively being developed:

1)https://github.com/openmls/openmls 2) https://github.com/trailofbits/molasses

Gnunet (https://gnunet.org/en/index.html) is also interesting, though pretty wildly open framework, but could be implemented in a specific way for betrusted/precursor platform. Not sure to what end gnunet would be used but its fun. https://gnunet.org/en/index.html