It took a bit to build but now all the pieces are there in the protocol:
- P2PK that allows you to mint ecash that only the owner of an npub can spend [1]
- DLEQ proofs that allow *anyone* to check if the ecash that is publicly posted is signed by the mint public keys [2]
With this, we could do the following:
- Alice posts something nice on nostr
- Carol has a nostr client with Cashu support. Carol takes 100 sats of ecash and locks it with P2PK to Alice's npub.
- Carol now has ecash locked to Alice and DLEQ proofs (it's all inside the ecash token).
- Carol zaps Alices nostr post by simply replying with the ecash (using a special nutzap kind)
- Alice sees that she received ecash that only she can spend.
- Dave, another nostr user sees Alice's post and Carol's ecash. Dave checks with the DLEQ proof if the ecash is valid and the P2PK lock is indeed Alice's npub. If so, Dave's client displays "100 sats zapped from Alice to Carol"
[1]: https://github.com/cashubtc/nuts/blob/main/11.md
[2]: https://github.com/cashubtc/nuts/blob/main/12.md
Is the DLEQ essentially a proof of payment?
And if yes, did I understand it right that any 3rd party can look at it and tell the sender, the receiver, and the amount?
It allows you to check the signature of the mint on the ecash. When combined with P2PK, it is indeed a proof of payment.
Can you see and validate the amount on the outside? E.g. can other see how much someone has been nutzapped?
Yes, it's also in the token (and committed to by the mint signature).
Is cashu ready to create lightning addresses for Nostr?
This new feature has to be called “Deez Nuts.”
Is it possible to implement an anonymous zap, known only to Alice and Carol?
Well, zaps are supposed to be public, but you could send ecash through encrypted messages, for sure.