Why Nostr? What is Njump?
2024-09-26 02:51:17 UTC

keychat on Nostr: Imagine a relay with countless mailboxes, each with a unique number. For parties ...

Imagine a relay with countless mailboxes, each with a unique number. For parties already engaged in double ratchet algorithm chat, only they know the value of the latest DH ratchet. This value can be used to derive a receiving address (mailbox number) that only they know. The chatting parties simply need to go to this mailbox to retrieve messages.

Since only the chatting parties know the latest mailbox number, even if the sending address is random, as long as the mailbox number is correct, they can confirm that it comes from their chat partner.

Therefore, the mechanism for determining the receiving address is most important, while the sending address can be randomly generated.
I think it's probably confusing because its not that the "address" is updated, its that the "to" and "from" are written in code.

Imagine there's a table where people can drop letters. You write who it's to and who it's from on the envelope:

To: Alex
From: Em

If it's yours you pick it up.

You and your friend don't want others to know you put a note in the pile so you come up with a secret code you both recognize for each other.

The code takes the number of letters you've sent combined with your name to make some gibberish so only you and your friend know who it's from and who it's for:

To: code(10, Alex)
From: code(10, Em)
Author Public Key
npub1h0uj825jgcr9lzxyp37ehasuenq070707pj63je07n8mkcsg3u0qnsrwx8