End-to-end encryption

3 min read Original article ↗

Discord should have end-to-end encryption for DMs & Group Chats.

What's end-to-end encryption?
End-to-end encryption is a form of communication where only the end users can read their conversations.

This is done by generating a pair of cryptographic keys - a public one, and a private ("secret) one. If you encrypt something using the public key, you can only decrypt it using the private key.

So if Jeff wants to send Amy a message, he gets a copy of her public key from Discord, encrypts his message, then sends it to Amy. When Amy receives the message, she uses her private key (which only she has access to) to decrypt & read the message.

Of course, this entire process would be abstracted away, and would be just as simple as sending messages currently are on Discord.

Why should end-to-end encryption be added to Discord?
Because privacy.

Discord does not sell your data, and - for the most part - they don't misuse it whatsoever. But they could. End-to-end encryption ensures that nobody - legally or criminally - could possibly read your messages, except for the people you're trying to talk to.

And while Discord having access to everything you say might not be a big deal right now, it could. While your message data isn't being misused right now, there's no guarantee that it won't be in a decade. Sharing this sensitive information means you can never revoke it - it's out there whether you still want it to be.

"But criminals could use this!"
is a common argument - even by Discord staff - whenever end-to-end encryption gets brought up. A service not having E2EE isn't going to stop bad people from being bad people. Sure, they might not use Discord for it, but it does nothing to stop them. Bad people are just going to be bad people at a different place.

How would reports work?
If a user sends you a message that violates the ToS, reporting it would just decrypt it locally, then send that to Discord's Trust and Safety team. Because messages would be signed, it's still possible to verify that a user actually sent said message.

As a positive side effect, this would also prevent people from faking messages! Since messages would be signed, you could provide the message and it's signature to verify a message is real. Gone would be the days of people posting fake screenshots in order to stir up drama!

How could this be implemented?
Discord could add a "safety number" - much like Signal - to each conversation in order to verify that a man-in-the-middle attack hasn't occurred. Once marked as verified, you could be sure that subsequent messages are coming from the same person! This could essentially be copied from Signal's implementation.

Conclusion
If Discord wants to be "Your place to talk", they should implement end-to-end encryption to preserve the privacy of their (over) 250 million users. Imagine a place where privacy is the default, where people speak freely, and conversations are secure - Discord could be this place.