I suppose it's not really something you want to be messing around with as a noob. There are some opportunities to mess things up if you aren't careful. There are a few ways to do it, but here's the method I use most often:
- In the "Console" section of the "Debug Window" under the "Help" menu, run dumpprivkey for each address that you want to keep.
- Write down or otherwise store all the private keys that you got from your dumpprivkey commands
- Shut down Bitcoin-Qt and wait for it to completely close
- Rename your wallet.dat to wallet.old
- Start up Bitcoin-Qt
- You will have a brand new empty wallet with a single new bitcoin address
- Create as many new addresses as you'd like to receive bitcoins from your previous wallet
- Write down or otherwise store the bitcoin addresses from your new wallet that you will be using your old wallet to send to
- Shut down Bitcoin-Qt and wait for it to completely close
- Rename wallet.dat to wallet.new
- Rename wallet.old to wallet.dat
- Start up Bitcoin-Qt
- You will be back in your old wallet with access to your bitcoins and old addresses
- Send the bitcoins as you desire to the addresses you wrote down from the new wallet (I use createrawtransaction to get control over which bitcoins go to which addresses. This allows me to avoid linking addresses together if I don't want them to be linked)
- Wait for all your transactions to receive at least one confirmation
- Shut down Bitcoin-Qt and wait for it to completely close
- Delete wallet.dat (And when you do this, your old addresses are now gone, including change addresses. If you don't have the private key or a backup somewhere any bitcoins that you accidentally forgot to move are lost permanently)
- Rename wallet.new to wallet.dat
- Start up Bitcoin-Qt
- The bitcoins that you sent to addresses in this wallet should now appear
- In the "Console" section of the "Debug Window" under the "Help" menu, run importprivkey for each private key you dumped from the old wallet.
- The addresses that you wanted to keep are now all in the new wallet
While the process of creating and using a new address for every transaction isn't very "administratively complicated", this process of deleting old undesired keys certainly is. It also carries significant risk if you don't know what you're doing or aren't careful. It would be nice if the Bitcoin-Qt was modified to "archive", or "hide" addresses that aren't needed any longer.
There are simpler methods, but they don't provide quite as much control over what is deleted and what is kept.
In general, until/unless additional tools are created for Bitcoin-Qt, I'd advise against trying to repeat my process.
A safer and easier process that doesn't keep any old addresses and links some addresses together can be described in the following 5 steps:
- Run a second wallet somewhere (MultiBit, Electrum, blockchain.info, or just a second computer with BitCoin-Qt)
- Send all bitcoins from the first wallet to an address (or addresses) in the second wallet, leaving an empty first wallet
- Once all transactions have confirmed, shutdown the first wallet and delete its wallet.dat
- Start up the first wallet with a now empty new wallet (all old addresses permanently deleted and inaccessible)
- Send all bitcoins from the second wallet back to the new address in the first wallet