aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/wallet2.h
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2018-02-19 10:23:23 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2018-03-16 10:32:34 +0000
commit18eaf194897cb8216c9c035871911e6ba099a179 (patch)
tree5f239450512374bb1f4c4325da3128f611bf4abf /src/wallet/wallet2.h
parentwallet: add shared ring database (diff)
downloadmonero-18eaf194897cb8216c9c035871911e6ba099a179.tar.xz
wallet: key reuse mitigation options
If a pre-fork output is spent on both Monero and attack chain, any post-fork output can be deduced to be a fake output, thereby decreasing the effective ring size. The segregate-per-fork-outputs option, on by default, allows selecting only pre-fork outputs in this case, so that the same ring can be used when spending it on the other side, which does not decrease the effective ring size. This is intended to be SET when intending to spend Monero on the attack fork, and to be UNSET if not intending to spend Monero on the attack fork (since it leaks the fact that the output being spent is pre-fork). If the user is not certain yet whether they will spend pre-fork outputs on a key reusing fork, the key-reuse-mitigation2 option should be SET instead. If you use this option and intend to spend Monero on both forks, then spend real Monero first.
Diffstat (limited to 'src/wallet/wallet2.h')
-rw-r--r--src/wallet/wallet2.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
index 79686753b..979372851 100644
--- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h
@@ -862,6 +862,10 @@ namespace tools
void confirm_export_overwrite(bool always) { m_confirm_export_overwrite = always; }
bool auto_low_priority() const { return m_auto_low_priority; }
void auto_low_priority(bool value) { m_auto_low_priority = value; }
+ bool segregate_pre_fork_outputs() const { return m_segregate_pre_fork_outputs; }
+ void segregate_pre_fork_outputs(bool value) { m_segregate_pre_fork_outputs = value; }
+ bool key_reuse_mitigation2() const { return m_key_reuse_mitigation2; }
+ void key_reuse_mitigation2(bool value) { m_key_reuse_mitigation2 = value; }
bool get_tx_key(const crypto::hash &txid, crypto::secret_key &tx_key, std::vector<crypto::secret_key> &additional_tx_keys) const;
void check_tx_key(const crypto::hash &txid, const crypto::secret_key &tx_key, const std::vector<crypto::secret_key> &additional_tx_keys, const cryptonote::account_public_address &address, uint64_t &received, bool &in_pool, uint64_t &confirmations);
@@ -1181,6 +1185,8 @@ namespace tools
uint32_t m_confirm_backlog_threshold;
bool m_confirm_export_overwrite;
bool m_auto_low_priority;
+ bool m_segregate_pre_fork_outputs;
+ bool m_key_reuse_mitigation2;
bool m_is_initialized;
NodeRPCProxy m_node_rpc_proxy;
std::unordered_set<crypto::hash> m_scanned_pool_txs[2];