It is said that a view key can expose incoming transactions.
1. Is the view key enough to prove ownership of an incoming transaction?
The stealth address is calculated with
H(Ra)G + B
, so I guess the public spend key must also be given?
2. Can sharing the view key also expose the incoming amounts? Aren't they all blinded with external blinding (mask) factors, so the view key will not be enough?
1 Answer
Yes, the view key proves that outputs were destined for a particular wallet address. It cannot be proven whether these outputs were subsequently spent, but it can be guessed that they have been spent if the outputs are referenced in a transaction that creates a change output that is also destined for that same wallet (which someone with the private view key would be able to detect).
Yes, because both the output amounts and the blinding factors are encrypted using the shared secret H(aR) and included as part of the transaction data.