diff --git a/704.md b/704.md index 1860969..0ab90b1 100644 --- a/704.md +++ b/704.md @@ -14,15 +14,17 @@ The content of `Direct Messages` [NIP-04](https://github.com/nostr-protocol/nips This NIP describes a way to obfuscate DM communications from the "general public", it does not deal with the relay tracking of clients (for that see [NIP XXX](xxx)). ## Suggestion -For the maximum of privacy the two participants of a `Direct Message` exchange SHOULD use a different public key for each `kind:4` event. +For the maximum of privacy the two participants of a `Direct Message` exchange SHOULD use a different public key for **each** `kind:4` event. This means that each participant has to: - - build a `direct message top key` from which it will derive keys to send and keys to recieve (listen for) `kind:4` events - - share this `direct message top key` with its DM peer + - build a `direct message parent key` from which it will derive keys to send and keys to recieve (listen for) `kind:4` events + - share this `direct message parent key` with its DM peer Each client has a `master` key (denoted with `m`). This key can be the profile `nsec...`, but it is not mandatory. -## BIP32 purpose -[BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) is used to derive the paths. +## Deriving the direct message parent key +[BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) is used to derive the paths. A client can generate multiple `direct message parent keys`, one for each peer that it is communicating with. -This NIP defines purpose `25709` (`dm` -> `0x646d` -> `25709`) for deriving `Direct Messages` related keys. + Nostr `coin_type'` is `1237'` (see [NIP-06](https://github.com/nostr-protocol/nips/blob/master/06.md)). This NIP defines purpose `25709'` (`dm` -> `0x646d` -> `25709`) for deriving `Direct Messages` related keys. + + `m/25709'/1237'/[']`