1) What is the relationship between the private view key and its associated public address?
2) What concerns are there about sharing or even publicizing a private viewkey?
Monero Stack Exchange is a question and answer site for developers and users of the secure, private and untraceable cryptocurrency Monero. It only takes a minute to sign up.Sign up to join this community
The public address is basically your public spendkey and public viewkey. When you provide your public address to someone, they use the public spendkey and public viewkey to create outputs which only your private viewkey will identify as belonging to it and only your private spendkey will be able to spend.
Here's a partial quote from a reddit thread by core team member cloud10again:
- Secret (Private) spendkey: a 256-bit integer - only used in Monero transactions to compute the one-time "output private keys", which are actually used to sign transactions; however with current deterministic key derivation, the spend key also allows deriving everything else.
- Secret (Private) viewkey: another 256-bit integer - used in Monero to "decode" which outputs on the blockchain actually belong to your account. Can be given to an auditor or 3rd party, allowing them to discover your outputs as well.
- Public viewkey: a 256-bit representation of an elliptic curve point, svk*G. Used by a sender to compute a shared secret for stealth address creation.
- Public spendkey: a 256-bit representation of an elliptic curve point, ssk*G. Used by a sender to compute the actual output public keys from the shared secret, ensuring that only the private spend key can compute the key necessary to spend those outputs.
Added "(Private)" by me, for clarity.
You can choose to share your private viewkey, or you can choose not to. Monero has privacy by default, and the ability to be open is optional. If a person or organization is okay with sharing a tool that allows for all deposits in their account/address/wallet to be verified in real-time, then that's their perogative. In some cases, it may even be desirable, possibly such as in the case of a public charity or a government entity. Many end-users value Monero for its privacy, so sharing the private viewkey in their case would not be desirable.
1) See answers for constructing a Monero stealth address concerning relationship between the private view key and a public stealth address.
2) Sharing a public viewkey allows visibility to all incoming payments, unless a non-profit - not a good thing to do for privacy reasons. Rationale for sharing a private viewkey is not apparent...