Skip to content

BItMaelum in 5 minutes or less

Joshua Thijssen edited this page Jan 4, 2021 · 4 revisions

BitMaelum is a mail system just like your regular email is. It allows you to send emails back and forth to others. In fact, when done properly, you probably do not see any difference between a BitMaelum message and a regular email message.

BitMaelum however, uses a completely different underlying infrastructure that allows for secure transportation of mail from sender to recipient among other benefits. Because it uses this new infrastructure, it means that current mail clients, like your outlook, the gmail website, and your corporate email accounts cannot work directly with BitMaelum. You need to have a new mail client, just like you need a client to read WhatsApp or signal messages, as those are not compatible with regular email either.

Your BitMaelum address

BitMaelum also comes in two flavors: regular addresses, which are a bit like a Twitter handle, for example: john.doe! or acmeinc!. Each address ends with a ! to distinguish it as a BitMaelum address (just like a @ is in front of a Twitter handle).

The other flavor is an organization address: these are in the form of john@organisation!. This tells us that this is the address for john at the given organization. The organization could be a company, a project, or even your family.

While organizations do have a bit of control over the organizational addresses, nobody has control over regular addresses. Nobody could technically take away[^1] your address from you. This in contrast to for instance Twitter, where Twitter can lock, or even remove your account. Even a domain name like foo.com can be taken away from you. On the BitMaelum network, once you register your address (provided it is not already taken), nobody can remove this address, not even the creators of BitMaelum [^1].

Security and privacy first

BitMaelum is an end-to-end encrypted platform. This means that the sender will encrypt their mail, and only when it reaches your computer (or mobile), then the mail can be decrypted and read. Nobody in between, not even the mail provider you use, your ISP, or anyone else snooping traffic, can read the content of your mail, not even the meta-data like the subject, tags or other meta-data. Even the sender and recipient address are hashed, meaning you cannot figure out where a passing mail is from or for which address is actually is. We have written BitMaelum with the fact in mind that all data, how secure we store them, can be seen and can even be modified by adversaries. Therefor we don't place any trust in any data unless it's (mathmatically) proofed that the data is indeed authentic.

Dealing with spam

BitMaelum also deals with issues like spam. While sending a regular email is basically free, sending millions of emails to people can be profitable really quickly. You only need a very small number of replies to get back the costs of sending mail. In BitMaelum, there is a "cost" factor when sending email. This cost factor is not directly related to money, but to computer power. Sending a single or a few messages doesn't take a lot of time, but sending millions takes days, even weeks and costs a lot in computer power, which relates enegery usage, which ultimately costs a certain amount of money. This is called a "proof-of-work" system, where a computer must solve a puzzle before it can deliver a message. This means that sending millions messages through BitMaelum isn't profitable anymore given the low number of replies on spam.

Dealing with mailing lists

However, this has consequences for valid large volume mailings, like a company newsletter or mailing list. This is solved by a system where a recipient tells the mailing list owner it is allowed to send mail. If - and only if - the recipient allowed mailings from that particular mailinglist, the mail owner can send the email for "free". This way, a mailing list owner can send thousands of mails without the delays and cpu power burden, but only if the recipient allowed it. This is called a "subscription", and can only be created by a recipient (you cannot add somebody else to a mailing list). Also, even though a mailing list owner can remove you from a list, the recipient can do too. If you don't want to receive any mail anymore from the list, you can unsubscribe and emails will not be accepted anymore (not even with the proof-of-work).

Moving provider

Hosting your own BitMaelum mail is easy, but more often than not you can opt for using a hosted party instead. These could either be free, or paid services. If for any reason, you are not happy about your provider anymore, it's easy to pick up your mail and move it to another provider. A provider cannot stop you from moving away and cannot stop you from taking your BitMaelum address with you. Only when you use an organisation address, the organisation is in "charge" of the address.

Routing and the number 1 BitMaelum issue

One of the benefits of a regular email address, is the fact it has got addressing in the email address itself. For instance: [email protected] knows it needs to send email to the gmail.com mail server.

In BitMaelum, things a different: we need some kind of system to figure out where john! is hosted, as this can change anytime. Also, we need a system where we can figure out that john! is already registered and cannot be used by others. These two problems are solved with the same system (once an address can be resolved, it automatically means it's registered).

Now, the problem we are facing, is that at the moment, there is NO decentralized system to take care of the resolving. There are a few technical options, but they are very complex (when the system sees two people say they own "john!", who is right?). For now, we do not resolve this issue but use a centralized system called the key-resolver. This system will resolve addresses and takes care of double registration. However, centralized means there are people who can control this system, making it possible to technically remove registered addresses from the network, and even worse, replace them with others (although this is easily detected in the system).

This is the number 1 issue we are trying to solve but for the time being, this centralized system works good enough until we can implement a more decentralized solution.

Clone this wiki locally