nips/704.md
2023-04-10 09:26:38 +03:00

1.4 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 is encrypted, but everyone can see who is chatting with whom. This is far from ideal from a privacy perspective.

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

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 and keys 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

BIP32 is used to derive the paths.

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