How stealth addresses work
Every Monero payment is sent to a brand-new one-time address. Nobody watching the blockchain can link it to the recipient — but the recipient can still find and spend it. Step through the maths below (simplified, with fake values), then generate a few payments and watch the address change every time.
A
—
B
—
-
1 · Sender rolls a random secret
rFor this one payment only, the sender picks a random number
rand publishesR = r·Gin the transaction (the "tx public key").r=—→R=— -
2 · Sender derives a shared secret
Using the recipient's public view key, the sender computes
H(r·A)— a shared secret only they and the recipient can know.H(r·A)=— -
3 · The one-time address
The payment is sent to
P = H(r·A)·G + B. This address appears on-chain — fresh, random-looking, unlinkable toB.P=— -
4 · Recipient scans and finds it
With their private view key
a, the recipient computesH(a·R). Becausea·R = a·r·G = r·A, they get the same shared secret — and recognisePas theirs. Only their private spend keybcan spend it.H(a·R)=—
Values are illustrative (real Monero uses ed25519 and Keccak). Hit New payment a few times: same recipient, a different one-time address P every time — that's why amounts to one person can't be linked.