First, there is no stealing possible, so your funds are safe ASSUMING THE MONEROV (OR OTHER KEY REUSING FORK) SOFTWARE IS NOT A TROJAN. If it is not, then the key reuse only affects one of the privacy layers Monero offers, and does not allow either double spending nor stealing. Of course, since monerov is currently closed source, it may be that the binaries are a trojan to steal keys.
The main danger by far is the unravelling of ring signatures caused by using the same pre-fork output on two different chains with different rings: since the key image on both rings is the same, an attacker can deduce the real input is on both rings, and using random rings means only one input will usually match. This can be prevented by reusing the same ring on all chains, in order for the intersection to be the whole set. This will be done automatically if both forks use the shared ring database which Monero included in response to this threat. The shared ring database ("ringdb") will store the rings used for your outputs, so they can be reused when spending the same output again. It will be included in Monero 0.12, which will be released in the next few days. Hopefully the monerov people will include this feature too. If they do, then its use will be automatic.
If they do not include it, or include a broken version of it, then it's only half automatic (on the Monero side), and you will have to be more careful:
- spend on the key reusing fork
- check the rings used by your key reusing fork transaction by running
print_tx TXID
on that fork's node dameon (the rings are near the top of the transaction printout)
- use the set_ring command in Monero's monero-wallet-cli to save those rings to the ringdb, eg:
set_ring KEY_IMAGE_HERE relative A B C D E F
A B C D E F should be the ring printed by print_tx TXID
. Those are encoded as relative offsets. If you obtain the rings as absolute instead (maybe from a block explorer), then replace "relative" with "absolute" in the command above.
- then spend monero, and any ring will be reused as required.
Now, some people may not use this, and thus will strip themselves of privacy in the process. For these cases, Monero includes a second line of defense, to allow your rings to avoid using outputs which are known spent (since using one of those decreases the privacy ring signatures offer). This is the blackball database. This can be created locally if you have both chains using the monero-blockchain-blackball tool, eg: monero-blockchain-blackball ~/.bitmonero/lmdb /path/to/monerov/database
. This will take a while to scan the databases. Once this is done, the wallet will automatically avoid the inputs which were found to be unsuitable.
Note that since this process takes time, the blacklist database will be made available on the getmonero.org website, and can be imported (using blackball FILENAME
in monero-wallet-cli, or from the "Shared ringdb" page in monero-wallet-gui). It will be updated on the site from time to time, so can be imported regularly.
Last, a third line of defense is to alter the fake output selection algorithm:
The first one, called either segregate-pre-fork-outputs
in monero-wallet-cli or "I will spend on a key reusing fork" in monero-wallet-gui, ensures that spending a pre-fork output only uses pre-fork fake outputs, since spending on both blockchains will moot post-fork outputs.
The second one, called either key-reuse-mitigation2
in monero-wallet-cli or "I might spend on a key reusing fork" in monero-wallet-gui, uses a selection of pre and post fork fake outputs to avoid special degenerate cases.
In any case, a key reusing fork will only affect ring signatures, and will not do anything against stealth addresses nor confidential transactions, the other two layers of protection in Monero.
As a last warning, be very wary of using your secret keys with other software, especially closed source. These are called secret for a reason.