Author: Kukks
New protocol design: Discrete Payments through Wabisabi coinjoins and Nostr ecnrypted communication
- Merchant creates invoice of 0.1BTC
- Merchant generates a unique key for invoice
- Merchant shows the pubkey of (2), a recommended nostr relay uri
- Customer generates a unique key for this invoice payment
- Customer posts an encrypted event addressed to pubkey of (3) with a message stating intent to pay invoice of 0.1BTC using a specific wabisabi coordinator
- Merchant replies with an encrypted event with acknowledgement (or rejects)
- Customer joins next round, adds inputs >0.1 BTC, gets credentials
- Customer reissues credentials, gets one credential of 0.1BTC
- Customer posts an encrypted event addressed to pubkey of (3) with the credential in a text format
- Merchant reissues credentials
- Merchant replies with an encrypted event with acknowledgement (or rejects)
- Round enters output registration stage
- Merchant registers outputs
- Round enters tx signing stage
- Merchant verifies output is there
- Merchant replies with an encrypted event stating payment is present in tx hash
- Customer verifies round tx equals hash
- Customer signs
Notes:
- a pseudo nostr relay will connect to multiple relays and retrieve all relelavnt events and aggregate. This will then serve them in a unified entrypoint, allowing users to not leak their ip to a dedicated nostr relay for private payments
- Customer specifies which coordinator to use, not tied to only one
- Merchant can provide own coins to same coinjoin to increase anonymity
- Can theoretically chain the payments to other hops within the same coinjoin, serves as a trustless, private layer 3 equivalent to ecash systems, without the custodians (but with a much stricter time horizon)
Pros over normal payjoin: