I read the article about a Navy nuclear engineer who was arrested and I wondered how can they prove that he actually received XMR from the agent.

As far as I understand, the stealth address is using the recipient's public address (public view key & public spend key), plus randomly generated data by the sender. So if the sender has access to this randomly generated data (is this possible?), can they prove that the particular stealth address to which they've sent funds is generated for a particular public address (which the recipient has revealed to the sender in order to receive funds)?


Can sender prove that the transaction was sent to the particular recipient?

A sender can prove they sent a tx to an address. See get_tx_proof:

[wallet xxxxxx]: help get_tx_proof
Command usage: 
  get_tx_proof <txid> <address> [<message>]

Command description: 
  Generate a signature proving funds sent to <address> in <txid>, optionally with a challenge string <message>, using either the transaction secret key (when <address> is not your wallet's address) or the view secret key (otherwise), which does not disclose the secret key.

This is possible because the sender has knowledge of r (the random secret key used in the tx shared secret (rA) and the "stealth address" (the output key created from the receivers public view and spend keys, Hs(rA)+B). One can also create a proof if they have the wallets secret view key, as the shared secret can be constructed aR (as aR is the same as rA).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.