Sync Dev: Envisioning decentralized peer-to-peer email
Part of the fun of working on a decentralized peer-to-peer application like Sync is imagining what cool things could be built on the API and how the world could benefit from decentralized [insert technology here].
As I was sending emails today, I started to think about what decentralized email would look like built on Sync. On any given day, I send hundreds of emails that go through an SMTP and POP3/IMAP server. Lets take a quick look at how these work and how we might be able to replace them with Sync.
For the sake of this piece, imagine that I’m using a standalone email application, like Microsoft Outlook, and I want to send an email from my bittorrent.com email address to my friend email@example.com. After setting up Outlook with my mail server information and drafting up an email, here’s what happens when I hit “send.”
First, Outlook will connect to the Simple Mail Transfer Protocol (SMTP) server at bittorrent.com on port 25. Outlook then tells the SMTP server my address as well as the address of the recipient and the body of the message. From there, the SMTP server looks at the “To” field and breaks it apart into user (adam) and domain (example domain.com). Now, the SMTP server needs to communicate with the DNS server in order to obtain the IP address for example domain.com. The DNS server will respond with the IP address(es) for the SMTP server(s) for example domain.com and finally, the SMTP server for bittorrent.com connects with the SMTP server at exampledomain.com and passes along my message. The receiving SMTP server should recognize the domain name (exampledomain.com) and the user (adam) and at that point, it passes the email along to the POP3 server, which puts it into adam’s inbox.
Lets quickly look at how POP3 and IMAP work before moving on to how peer-to-peer email would look. A POP3 server maintains an big collection of text files for the email accounts on the server. When an email reaches the POP3 server from the SMTP server, it simply gets added to the text file for its intended recipient. That’s pretty much it – from there, when you download your email via Outlook, copies of your email messages get downloaded to your client and either get deleted from the POP3 server or retained depending on your settings.
IMAP does a bit more – specifically, it allows your mail to stay on the server and it allows for organization of mail into folders. Because your email stays on the server, you can access it from other machines vs with POP3 where the machine you’ve downloaded your email to is now where those emails live.
Simple enough, right? So what would decentralized peer-to-peer email look like, and what would the benefits of email built on the Sync API be?
A few benefits immediately come to mind. First, because Sync’s API allows for encrypted Sync, all email would be encrypted in transit and in local storage. As with Sync, there would be no centralized email server or centralized storage. We get the benefit of privacy and anonymity as well as price – you won’t have to pay for a hosted email service or servers. Because of how Sync works, this email configuration would be fantastic for file attachments as well.
Enough wishful thinking – who wants to take a stab at building this?