“Initially, we thought of having relays issue one-time anonymous access tokens that users could purchase and use for anonymous pay-per-use. Later, we realized that using Bitcoin ecash as postage for messages would be a better solution.”
quoting note1h89…gaazWhen we started conceptualizing Keychat, we aimed to design a chat application that surpasses Signal. Our design process was divided into four steps.
First, Keychat addresses issues of user sovereignty. It opts to use Nostr public keys as IDs and Nostr relays for message transmission. Users fully own their IDs, which are not registered on any server. They can choose which relays to use.
Second, Keychat aims to solve the security issue of message encryption by implementing end-to-end encryption that ensures both forward secrecy and backward secrecy. Keychat implements the Signal protocol (X3DH and the Double Ratchet algorithm) on the client side without the need for a coordination server. Existing Nostr relays only need to handle the transmission of encrypted messages.
Third, Keychat tackles the problem of metadata privacy. A major issue with original Nostr DMs is that metadata is not only exposed to relay operators but also to other users. Keychat separates the sending address and receiving addresses from the ID, updating these addresses for almost every message. Thus, each Keychat message is nearly independent.
Lastly, Keychat addresses the issue of user payments and relay charges. Since each message is not linked to an ID, traditional payment models are not feasible. Initially, we thought of having relays issue one-time anonymous access tokens that users could purchase and use for anonymous pay-per-use. Later, we realized that using Bitcoin ecash as postage for messages would be a better solution.
Ultimately, we designed a chat application where users maintain sovereignty, messages are securely encrypted, metadata privacy is preserved, and the economic model is straightforward and reliable. note1kr8…f0te