nips/704.md
2023-04-07 17:31:00 +03:00

1.2 KiB

NIP-704

Key derivation for Encrypted Direct Messages

draft optional author:motorina0

This NIP defines a way for two clients to derive one-use-only keys for sending and recieving kind:4 events.

Motivation

The content of Direct Messages (NIP-04)[https://github.com/nostr-protocol/nips/blob/master/04.md] is encrypted, but everyone can see who is chatting with whom. This is far from ideal from a privacy perspective.

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. This means that each participant has to:

  • build a direct message top key from which it will derive keys to send kind:4 events and keys where to recieve (listen for) kind:4 events
  • share this direct message top 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

https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki is used to derive the paths.

This NIP defines purpose 25709 (dm -> 0x646d -> 25709) for deriving Direct Messages related keys. m/25709'/1237'/[<account>']