keychat on Nostr: When we started conceptualizing Keychat, we aimed to design a chat application that ...
When 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.
When designing Keychat, we considered the following disadvantages of the Signal App.
1、Signal App requires phone number registration. Users do not have their own self-sovereign ID.
2、Signal App users can only use Signal's servers, with no option to use third-party or self-hosted servers.
3、Signal App integrates a shitcoin called MobileCoin.
4、Signal App relies on donations and loans from billionaires, making it difficult to sustain.
Keychat proposed corresponding improvements for these disadvantages.
1、Keychat only requires generating a Nostr key. Users have their own self-sovereign ID.
2、Keychat users can freely choose which relay to use or run their own relay.
3、Keychat aligns with Bitcoin.
4、Keychat's economic model with Bitcoin ecash stamps is more reliable and sustainable.
5、Keychat offers better metadata privacy because it allows continuous changing of receiving addresses, sending addresses, and relays.
Published at
2024-05-30 05:45:14Event JSON
{
"id": "b9cb46754c6ba1827e238c4a16ba6c21e366f1f8feaba6cfbfd15d054d50d054",
"pubkey": "bbf923aa9246065f88c40c7d9bf61cccc0ff3fcff065a8cb2ff4cfbb62088f1e",
"created_at": 1717047914,
"kind": 1,
"tags": [
[
"q",
"b0cf3637f7129fe183428bde626804fa4bbd851232120d155465b22aa6399450"
],
[
"p",
"bbf923aa9246065f88c40c7d9bf61cccc0ff3fcff065a8cb2ff4cfbb62088f1e"
]
],
"content": "When we started conceptualizing Keychat, we aimed to design a chat application that surpasses Signal. Our design process was divided into four steps.\n\nFirst, 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.\n\nSecond, 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.\n\nThird, 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.\n\nLastly, 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.\n\nUltimately, 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. nostr:note1kr8nvdlhz207rq6z300xy6qylf9mmpgjxgfq6925vkez4f3ej3gqh5f0te",
"sig": "5657805cd997cf08b327c434816e7646d2d2c66887f0824e42f7d02205c397089a48a6aa1b80820df268e44b754cbf7f4c404c2d130e0ab11c0886cfc799140b"
}