Decentralized Mailing List

From Bitmessage Wiki
Revision as of 13:10, 13 August 2013 by AyrA (talk | contribs) (added more info about new system.)
Jump to navigation Jump to 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

Even if Bitmessage is a decentralized p2p network, mailing lists require the client who operates the list to be online, creating a Single Point of Failure. Decentralized lists circumvent this issue with everyone having the private keys to the Address, on the cost of signing. In a centralized list, it is known, who sent a mesage, in a decentralized, this is only possible with additional measurements (Hash tagging, PGP). Decentralized lists however cannot be clogged up with large messages because 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. Joining requires the address to make sure, you actually get the correct private keys, because they depend on stream number and address version, which are both included in the address. Creating an address however will always use the newest address version and stream number and thus may create a different address, which is not compatible with the one intended to join.


  • 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 behaviour that should be taken.
  • Write from a personal address to the DML: This can be used so answers given to the message will only be sent to the private address and not to the DML, or it can be used to "sign" messages with the private adress so nobody can claim it was he, who sent it.

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.


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.