Stealth addresses using nostr

  • Alice
    • Private key: a
    • Public key: A = aG
  • Bob
    • Private key: b
    • Public key: B = bG

Shared secret S = aB = abG = baG

Stealth keys

Stealth public key:  P = B + H(S || i || "stealth")G
Stealth private key: p = b + H(S || i || "stealth") mod n

Notification (sent via NIP-17 encrypted DM) contains:

  • Alice’s public key A
  • Counter value i used

Bob can then reconstruct the stealth public key P himself using the formula above, private key and bitcoin address to watch.