Bitmessage is a peer-to-peer communications protocol used to send encrypted messages to another person or to many subscribers. It is decentralized and trustless, meaning that you need-not inherently trust any entities like root certificate authorities. It uses strong authentication which means that the sender of a message cannot be spoofed, and it aims to hide “non-content” data, like the sender and receiver of messages, from passive eavesdroppers like those running warrantless wiretapping programs. Bitmessage is a program and an attempt at creating a decentralized p2p network for delivering messages to people, it is based on Bitcoin technology.
Bitmessage team propose a message transfer mechanism similar to Bitcoin’s transaction and block transfer system, but with a proof‐of‐work for each message. Users form a peer‐to‐peer network by each running a Bitmessage client and forward messages on a best‐effort basis. In order to send a message through the network, a proof‐of‐work must be completed in the form of a partial hash collision. The difficulty of the proof‐of‐work should be proportional to the size of the message and should be set such that an average computer must expend an average of four minutes of work in order to send a typical message. With the release of new software, the difficulty of the proof‐of‐work can be adjusted. Each message must also include the time in order to prevent the network from being flooded by a malicious user rebroadcasting old messages. If the time in a message is too old, peers will not relay it. If the sender of a message did not receive an acknowledgement and wishes to rebroadcast his message, he must update the time and recompute the proof‐of‐work.
Just like Bitcoin transactions and blocks, all users would receive all messages. They would be responsible for attempting to decode each message with each of their private keys to see whether the message is bound for them.
The basic principles of working out Bitmessage:
- Each message should specify a self-destruct timer (at the time of writing, it was limited to a maximum of 28 days);
- Each principal can act as both a client and a server, or only as a client (limiting incoming connections on the firewall);
- The system sends out all outgoing messages to absolutely all participants of the network (meaning who allowed incoming messages) and they are stored for a certain time on each computer;
- Use long names like
BM-2cTKJ8nNez9dkYuSqTfVfmGuqa7AYXHC18that can be created locally in an unlimited number ve;
- Public-key encryption algorithms are used, which means that messages written to a particular person or group of people will be able to read only the one to whom they were intended;
- The sent message does not contain the recipient’s address (!), each member of the network tries to decode all unread messages and read only what happened to decoding (that is what was meant for him);
- The system uses detailed statuses about each message (the public key is expected from the interlocutor, the message is sent, the message is sent and decrypted by the participant), that is, you can always find out whether your interlocutor received the message, or he did not open BitMessage at all;
- Use Proof-of-work to protect against spam;
- You can bind an address to a Namecoin domain.
How it works
When you run, out bitmessage connect to other computers on which you installed and started out bitmessage. When you send a message to a specific destination, it is encrypted specifically for that destination and sent to all connected sites. When a new message is received, the program attempts to decrypt it. If the decryption was successful, it means that the message was sent to you and you can see its contents. Regardless of whether it was possible to decrypt or not the e-mail is sent to the rest of the United nodes. In this way, the email can travel over the network for several days, after which it is no longer sent from host to host, and the program deletes the email locally.
Out bitmessage is in the functionality of the mailings and anonymous groups.
Each network member can create an address to which other members can subscribe and receive messages. It works similarly to the channels in the Telegram or newsletters in regular mail. In the practical part of the article we will try to subscribe to the channel created for this blog.
Anonymous group (in the program they are referred to as chan) allow you to organize a fellowship where every member can post and read messages. And it is not necessary to specify one of their addresses. Anonymous groups cannot be censored, deleted, or blocked. It is for this reason that we are so interested in this program. On the basis of anonymous groups, I propose to build an uncontrolled, secure communication, where you can talk to anyone and on any topic.
- Official website
- Bitmessage wiki (unfortunately attacked by spammers as of December 2013)
- Bitmessage on GitHub