Oddbean new post about | logout
 https://www.keychat.io/ 

Keychat is a chat app, built on Bitcoin ecash, Nostr protocol and Signal protocol.

Keychat is inspired by the postal system — stamps, post offices, letters.

Keychat uses Bitcoin ecash as stamps and Nostr relays as post offices.

Keychat uses Signal protocol to ensure message encryption security and meta-data privacy 
 This looks very neat!! 
 We are pleased to find a very good 【prototype】; people can easily understand the postal system, which allows them to comprehend ecash as e-stamps, Nostr relays as post offices, and the necessity for messages themselves to be end-to-end encrypted. Messages need to continuously update the recipient and sender addresses. 
 you are Chinese developers?  i feel I can read that in your English.  who is backing you guys?  very very nice and clean and sophisticated looking project. 
 Just bitcoiner. 
 Soon ™️ 
 Coming soon, not Comming Soon - on the website, for whoever is maintaining it 
 Thanks. Modified. 
 When you say ecash, do you mean Cashu? If so, I think we're on the right path. 🥜🫡 
 Yes, of course 😉 
 Legend. Looking forward to what you guys are working on. 
 I'll take it as a sign that we're on the right path when people say "ecash" and they actually mean Cashu 🧡🫡🥜

Upgrading Bitcoin and Nostr apps with privacy-preserving instant and reliable payments, one by one.

nostr:nevent1qqsplc8amwug0u9a0wlyxk0wr3l6v0nugpff3k5qg5ph0s323z9qmsgpz4mhxue69uhkummnw3ezummcw3ezuer9wchsygrlyvc44qtk7064w4v43wevqwyprsne3dm6a3ghmcpwm79n6f59pupsgqqqqqqsyntucf 
 not sure I could be a keyboard warrior but code is calling like music making back in the day 
 but unlike satoshi people developing this stuff are not anonymous and will be arrested or god knows what  
 Okay okay, hang on - Why do you think the usage of "ecash" means we're on the right path, when there are at least 2 different implementations of it on Bitcoin alone?

I personally have used ecash, but equally have become aware as time goes that we may need to, very much unfortunately, use 2 different terms instead otherwise it WILL cause confusion when I want to pay someone or receive payment. 
If only it was possible for cashu and fedimints to be interoperable, then ecash would be the defacto term to use, but it doesn't seem like that'll be true given the4 circumstances.  
 Coming when ? Can you add an email subscribe to be notified when it’s out please 
 Hi, we prefer nostr only, so no email subscription.

You won’t miss apk release if you followed this account. 
 Following, thanks 
 @Dan Are you building keychat? If so, I'd love to chat with you abot how you're implementing the Signal protocol. I have an open PR on the NIPs repo right now to bring Signal like double ratchest to Nostr. 

https://github.com/nostr-protocol/nips/pull/1206 
 Hi Jeff. About message encryption, Nostrat fully reuses the Signal protocol (X3DH + double ratchet) and reuses libsignal.

First, let's return to the mechanism of the Signal app. The Signal app uses phone numbers as user IDs. When Alice downloads the Signal app and knows Bob's phone number, she adds Bob as a Signal friend by entering Bob's phone number in the Signal app. The Signal server then returns the following data associated with Bob's phone number:

Bob's identity key IKB,
Bob's signed prekey SPKB,
Bob's prekey signature Sig(IKB, Encode(SPKB)),
(Optionally) Bob's one-time prekey OPKB.

Alice then combines this with her own identity key IKA and her ephemeral key EKA to complete the X3DH operation, and then initiates the double ratchet algorithm to start encrypting messages. When Bob receives the message, he can also initiate the double ratchet to decrypt the message.

Let's now assume that Alice and Bob have both downloaded Keychat and want to communicate using it. Bob displays his QR code, which contains his Nostr key and Signal-related keys. Alice scans it. Alice can then complete the X3DH operation and start the double ratchet encryption. It can be said that Keychat, unlike Signal, does not use a server to pass the related Signal keys. Keychat treats the Nostr key as a phone number. If Alice only knows Bob’s Nostr key, she can send a special NIP4 message to retrieve Bob’s related Signal keys. 
 >>Keychat fully reuse signal protocol. 
 Sure that all makes sense. I just wrote NIP-104 basically codifying that into the spec. Just curious how your implementation is done. Is your code open source somewhere? Would love to have a look. 

Have you looked into syncing on multiple devices yet? 
 Code will be released soon.

Keychat doesn’t support syncing on multiple devices. Every device has its own ID. And those devices can communicate through group chat. 

It’s very hard to support syncing for double ratchet algorithm. More difficult in conditions there is no coordination server. 
 yeah! it's tricky. if you want ot work on figuring out all the details together I'm currently working on adapting the Signal sesame protocol to make it work for Nostr.  
 Give me apkkkkk 
 Since this is using Signal, will it require a central coordinator? 
 No, just need nostr relay as post office. 

Encryption/decryption is processed on client.