aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/walletdb.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/walletdb.cpp b/src/walletdb.cpp
index f7edd08458..d31db5e425 100644
--- a/src/walletdb.cpp
+++ b/src/walletdb.cpp
@@ -317,6 +317,12 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
ssValue >> wkey;
pkey = wkey.vchPrivKey;
}
+
+ // Old wallets store keys as "key" [pubkey] => [privkey]
+ // ... which was slow for wallets with lots of keys, because the public key is re-derived from the private key
+ // using EC operations as a checksum.
+ // Newer wallets store keys as "key"[pubkey] => [privkey][hash(pubkey,privkey)], which is much faster while
+ // remaining backwards-compatible.
try
{
ssValue >> hash;