diff --git a/04.md b/04.md index 09970a6..5e92dfa 100644 --- a/04.md +++ b/04.md @@ -32,7 +32,11 @@ When a sender wants to pay the recipient, the sender initiates a swap-in payment ### 1. The sender first generates a preimage and a tweaked destination: Where the recipient npub is `R = r*G` , and the sender npub is `S = s*G` ; + The sender generates a 32-byte random element `rand`, and calculates a tweaked pubkey for the recipient: `R' = hash(s*R, rand)*G + R` + And a shared preimage secret for the recipient : `P = hash(rand)*G + R` + The sender `S` then sends a NIP-04 encrypted DM to the recipient containing rand and payment value. The recipient `R` can locally construct his tweaked pubkey `R'` and preimage `P` from the rand value, and the sender's npub `S`. + Although it seems similar to keysend due to the sender generating the preimage, the proof of payment here is not the revealed preimage but the on-chain transaction (swap factory) itself.