I use (or would like to use) multiple wallets. For example, 1. public and 2. secure/backup. However, because internet usage is very expensive and slow, I want to reuse much of the .bitcoin/database. Simply removing the wallet.dat file (bitcoin.conf keypool=1) and restarting will crash the client on close. Having a theory as to why, I removed both the addr.dat and wallet.dat files and relaunched the BitCoin client.
Are only the addr.dat and wallet.dat files associated with a particular set of address/key pairs?
Is everything else generic distributed database stuff?
Or, as I suspect, is there data related to my wallet and thus my identity still scattered among the files, such as log files and blkindex, etc.
It seems to me data related to my wallet and identity should be distinctly isolated from the public distributed database files. My wallet/identifying data should change at a minimum. In my opinion, generating new addresses for change (even when 0 BTC) is an implementation detail that should either be manual or optional. The default 100 address pool has unexpected consequences, giving a false sense of backup security until perhaps loosing all money much later in time when restoring from backup. The binary nature of the wallet keeps people from merging, spliting, and generally understanding and maintaining their own wallet. If I want to 'launder' money and increase anonymity, I should distribute coins multiple times and at random intervals, not as a predictable operation along with every transaction which decreases my ability to restore from failure.