Decentralized Mailing List

From Bitmessage Wiki
(Redirected from DML)
Jump to: navigation, search

A Mailing List without the requirement of a central "authority". Sometimes called Chan (short for channel) because they usually focus on a subject which also is the password for the deterministic address too.

Issues with regular Mailing Lists

Despite the fact that Bitmessage is a decentralized p2p network, pseudo-mailing lists require the client who operates the list to be online, creating a Single Point of Failure. Decentralized lists circumvent this issue by having a group of users share private keys. Users may optionally send messages from the decentralized mailing list identity address itself. Decentralized lists cannot be clogged up with large messages because the POW is only done by the sending client.


A DML can be created in the File menu with the Option "Join / Create chan". A Passphrase must be entered and the address is generated.


A DML can be joined in the File menu with the Option "Join / Create chan". A Passphrase and the address must be entered.


There is no technical difference between creation and joining a DML. Joining requires the address to make sure that you typed the DML name correctly and to make sure that you are using the correct stream number and address version which are included in the address and serves as an error check for the client. If the address is not available, the user can create the DML instead of joining it with the same effect.


  • You cannot use the n-th address or generate short addresses with the create/join dialog. You can do so when generating a deterministic address but it will not be recognized as DML.
  • You cannot send messages to a DML if you are not member. This is caused by the fact, that a DML address does not publishes its public key.

Circumvent stuck client

To circumvent non-members of getting stuck, a user can create a deterministic address with the same configuration as the DML Address (provided he hasn't the DML already in his identities), this address will answer key requests and non-members world wide can use the DML.


To properly use a DML, a user can

  • Write from the DML, to the DML: This is completely anonymous and is the default behavior. Some users however tend to block the DML address itself using the blacklist to reduce spam.
  • Write from a personal address to the DML: can be used to "sign" messages with the private address so nobody can claim it was he, who sent it. Also useful if people block the DML address itself (see point above)
  • Write from a DML to a personal address: This can be used, if the user thinks the response might be useful for members of the given DML. Again however, this is susceptible to the DML address being blacklisted.

Issues with Decentralized Mailing Lists

  • Since all users share the same address it cannot be easily verified, who sent a message.
  • Spam cannot be blocked on address base, since everyone shares the same sender address.
  • Non-Members cannot write to a DML
  • Users are easier deanonymized when using DML addresses using simple network monitoring.


If a user was a member of a DML before 0.3.5 came out, he might want to update the address to a DML. To do so, first of all the subscription needs to be removed in the GUI, after that, the keys.dat needs to be edited and the line "chan = true" needs to be inserted into the address block that should be a DML.

Example Address

Passphrase: general, Address: BM-2DAV89w336ovy6BUJnfVRD5B9qipFbRgmr. The Address Block of a DML should look like this (it may have additional entries):

label = general
enabled = true
decoy = false
chan = true
privsigningkey = 5Jnbdwc4u4DG9ipJxYLznXSvemkRFueQJNHujAQamtDDoX3N1eQ
privencryptionkey = 5JrDcFtQDv5ydcHRW6dfGUEvThoxCCLNEUaxQfy8LXXgTJzVAcq

Address List

A list of addresses can be found at the forum.