Viewkey allow to disclose incoming txs. I need to solve a task of making transparent and provable address for our Monero funds. We are investment fund and this feature is mandatory for us.

  • 3
    Proving balance of an address is different from proving ownership of the address (with Monero, you can't find out an address' balance by looking at a block explorer like in bitcoin) – user36303 Aug 24 '16 at 19:04

This is only feasible with the latest simplewallet from https://github.com/monero-project/bitmonero/, which adds a couple new commands for this (export_key_images and import_key_images).

You, who want to prove balance, need to do a few things:

  • in simplewallet, run export_key_images key-images

This will save a signed list of key images to the file key-images.

  • Send the auditor(s) (or make public) your wallet address, the view private key of that wallet, as well as the key-images file you just made.

The auditor then creates a view wallet for your key:

./simplewalet --generate-from-view-key

There will be prompts for address and view key. Then run this command in simplewallet: import_key_images key-images

Include a path to the file if it's not in the current directory.

If all goes well, the view wallet's balance will match the original one.

See Can I fake a balance by giving the view key to an auditor but omitting some transactions and key images? for more information why this cannot be gamed.

  • thank you very much for this answer. is it possible to make this view wallet viewable online publicly? or do people have to download it to verify? – prismspecs Aug 13 '17 at 15:24
  • To verify, you have to download the data (which you will have made available online to the public) and check. Someone could make a website which would take a view key and a set of key images and do that check online, but there is none right now to my knowledge. – user36303 Aug 13 '17 at 16:55
  • so just to be clear--i would offer up my viewkey online as a download? – prismspecs Nov 29 '17 at 2:53
  • Yes. Spam to placate javacsript. – user36303 Nov 29 '17 at 9:42

It is possible with versions newer than 0.10.1. The process is:

  1. Auditor creates the watch wallet, by using your private view key and address.
  2. Using your wallet, command export_key_images to export them to a file.
  3. Send the file to the auditor.
  4. Auditor uses the watch wallet, and commands import_key_images to read them from the file. The watch wallet is now aware of spent status for each output and it shows the correct balance (unless something new was received in the meantime after step 2.)

The proof is interactive. You could, for example, publish the updated key images daily, or only when requested. An auditor would know when to request an update, because having the watch wallet, he could see immediately when you receive something new (which would not be covered with the old set of key images).

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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