Stealth payment is a private exchange of funds which protects the privacy of the recipient and prevents observers from knowing the user's transaction history.
On each payment the sender generates a new address using the recipient's stealth address data. Only the recipient is able to spend those funds. The spending private key can be generated only by the receiver.
Dual key allows scanning for payments without exposing the spending private key. In this scheme two keys are used - one for spending and one for scanning. The spending key is decrypted only when spending funds and it requires user interaction. The scan key is not encrypted.
Q = public scan key (EC point, 33 bytes)
d = private scan key (integer, 32 bytes)
R = public spend key
f = private spend key
Q = dG
R = fG
stealth address: <scan=Q> <spend=R, ...>
P = eG
c = H(eQ) = H(dP)
R' = R + cG
R' = R + cG [without decrypting wallet]
= (f + c)G [after decryption of wallet]
In this scheme, we can use the scan keypair (Q, d) to generate the shared secret c, and then hence derive the address from the public part R.
The concept was invented by Peter Todd based on ByteCoin's earlier work.