8

This offline transaction signing feature was PR'ed to master in early October. I generally know how this is supposed to work, as many others no doubt do as well. But what are the details?

On the internet-facing computer:

  1. Can I have a regular hot wallet, in addition to a cold view-only wallet that requires transactions to be signed by the air-gapped computer? (I would think cold wallet would be separate with its own mnemonic seed.)

  2. Is there something about the wallet that requires cold transaction-signing that is different than a typical view-only wallet?

  3. How does the view-only version of the wallet get set up, so that it knows there is an air-gapped computer required for signing? (Maybe it doesn't "need to know." Maybe it's just a matter of having the ability to create an unsigned transaction, and then broadcast a signed transaction?)

On the air-gapped (not internet-facing) computer:

  1. How recent does the version of the blockchain need to be in order to sign transactions? Will it always be able to sign transactions that spend deposits occurring at or the latest block on its copy of the blockchain?

  2. When a more recent copy of the blockchain is pasted/moved to the air-gapped computer, what is the rescan/refresh procedure? That is, for example, will I need to recall the latest block from the prior copy, in order to scan only the applicable new blocks? Or perhaps this is automated somehow?

7

On the internet-facing computer:

  1. You can have a hot wallet (or many) in addition to your cold signing wallet. You will need to have a watch only wallet matching the cold wallet (ie, same keys, the view wallet just didn't get told about the spend private key).

  2. The "cold transaction-signing wallet" is not on the internet facing computer. The view wallet is. The difference between the two is the lack of a spend private key in the view wallet. There is no difference between a view wallet with a corresponding signing wallet and a view wallet without one. The view wallet does not know whether it will ever receive signed transasctions to relay.

  3. The hot wallet does not know to know per se. If you try to transfer from a view wallet, it will save the file for cold signing, since it cannot sign itself. You can either create it with monero-wallet-cli --generate-from-view-key (you will be prompted for data, which you can obtain from the full wallet via commands such as spendkey, viewkey, seed), or use save_watch_only in the main wallet, which will save a keys file withouth the private spend key, which you can then copy to your internet facing computer and name appropriately.

On the air-gapped (not internet-facing) computer:

  1. The cold wallet does not need to have a blockchain. It will get the necessary data in the file the view wallet generates.

  2. n/a, due to the previous point.

See How do I use cold transaction signing? for the list of steps involved in signing a transaction on the cold wallet.

  • 1
    This is great. One thing though. Your answer to the first #2 pointed out that I had worded the question incorrectly. I meant to ask about the internet facing computer. – scoobybejesus Oct 19 '16 at 18:40
  • Also, please double-check your hyperlink, to ensure it's the one you intended. – scoobybejesus Oct 19 '16 at 18:43
  • One follow up, if you would. Does the view-only wallet retain the key image, in order to know the current balance? I assume yes, which is awesome. Just checking. Thanks. – scoobybejesus Oct 19 '16 at 19:26
  • It is meant to update the balance based on the key images. I'm not sure this was extensively tested, but it is meant to work. Report any bugs on github please :) – user36303 Oct 19 '16 at 20:38

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.