Difference between revisions of "Decentralized Mailing List"

From Bitmessage Wiki
Jump to navigation Jump to search
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
A [[Mailing List]] without the requirement of a central "authority"
+
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 ==
 
== 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 [http://en.wikipedia.org/wiki/Single_point_of_failure 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.
+
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 [http://en.wikipedia.org/wiki/Single_point_of_failure 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.
  
 
== Creation ==
 
== Creation ==
Creating a decentralized mailing list required the user to generate a key, he may either generate a random address and share the Address block from keys.dat or create a deterministic address and share the settings he made with other users.
+
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 client then subscribes to his own address.
+
 
 +
== Joining ==
 +
A DML can be joined in the File menu with the Option "Join / Create chan". A Passphrase and the address must be entered.
 +
 
 +
== Notes ==
 +
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.
 +
 
 +
== Incompatibilities ==
 +
* 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.
  
 
== Usage ==
 
== Usage ==
Decentralized lists are reached by broadcasting a message from the decentralized address itself, having the disadvantage of not getting own messages in the inbox, only replies to it, since clients ignore messages they sent themselves. Clients who have generated such an address cannot send messages to it directly so if somebody is required to proof, he sent a specific message, he needs to sign all his messages with a third party application.
+
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 ==
 
== Issues with Decentralized Mailing Lists ==
If a decentralized mailing list is set to operate as a regular mailing list, a client will broadcast messages sent to it by an external address, causing all clients to receive the messages twice. This allows people to flood the address and make it unusable.
+
* Since all users share the same address it cannot be easily verified, who sent a message.
'''Never set an address used for decentralized mailing as a Mailing List'''
+
* Spam cannot be blocked on address base, since everyone shares the same sender address.
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.
 +
 
 +
== Updating ==
 +
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 ==
 
== Example Address ==
It is created by regenerating a deterministic address with the passphrase "general" (without quotes). Address Version is 3 and the stream Number is 1. The field "Do extra work" must not be checked, resulting in the Address: '''BM-2DAV89w336ovy6BUJnfVRD5B9qipFbRgmr'''. This address has to be added to the subscription list and is now ready to use. Messages are broadcasted from the address, not sent to it. When replying to a message, the reply has to be made as a broadcast itself.
+
Passphrase: '''general''', Address: '''BM-2DAV89w336ovy6BUJnfVRD5B9qipFbRgmr'''.
The [[Address Block]] should look like this (it may have additional entries):
+
The [[Address Block]] of a DML should look like this (it may have additional entries):
  
 
<pre>
 
<pre>
Line 25: Line 45:
 
enabled = true
 
enabled = true
 
decoy = false
 
decoy = false
 +
chan = true
 
privsigningkey = 5Jnbdwc4u4DG9ipJxYLznXSvemkRFueQJNHujAQamtDDoX3N1eQ
 
privsigningkey = 5Jnbdwc4u4DG9ipJxYLznXSvemkRFueQJNHujAQamtDDoX3N1eQ
 
privencryptionkey = 5JrDcFtQDv5ydcHRW6dfGUEvThoxCCLNEUaxQfy8LXXgTJzVAcq
 
privencryptionkey = 5JrDcFtQDv5ydcHRW6dfGUEvThoxCCLNEUaxQfy8LXXgTJzVAcq
Line 31: Line 52:
 
== Address List ==
 
== Address List ==
 
A list of addresses can be found at [https://bitmessage.org/forum/index.php/topic,1420.0.html the forum].
 
A list of addresses can be found at [https://bitmessage.org/forum/index.php/topic,1420.0.html the forum].
 +
 +
[[Category:Address terms]]

Latest revision as of 04:03, 8 November 2014

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.

Creation

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.

Joining

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

Notes

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.

Incompatibilities

  • 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.

Usage

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.

Updating

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):

[BM-2DAV89w336ovy6BUJnfVRD5B9qipFbRgmr]
label = general
enabled = true
decoy = false
chan = true
privsigningkey = 5Jnbdwc4u4DG9ipJxYLznXSvemkRFueQJNHujAQamtDDoX3N1eQ
privencryptionkey = 5JrDcFtQDv5ydcHRW6dfGUEvThoxCCLNEUaxQfy8LXXgTJzVAcq

Address List

A list of addresses can be found at the forum.