3

From my understanding, bitcoind/bitcoin-qt uses a key pool for their wallet, so when you create a wallet you are actually creating not just one but many addresses for sending/receiving transactions.

How about multibit or electrum? Do they also use a key pool? What are the advantages and disadvantages of using a key pool vs. using a single address for the wallet?

3

Bitcoin-QT with standard settings will keep 100 unused addresses in your wallet at all times. The goal is that backups will be future proof to some extent.

A key pool allows to create backups in bigger intervals

Every time you create a transaction, the remainder of the input balance is sent to a new address in your own wallet. If addresses were generated only then, you would have to create a new backup after each transaction, or be at risk to lose any funds associated with that new address if your wallet got lost. By keeping a pool of unused addresses in store, your backup will be sufficient for the next 100 transactions before you will be at risk of losing something.

To create a bigger key pool, with e.g. 10000 keys, the client can be started with the parameter -keypool=10000.

I don't have intimate knowledge of either multibit or electrum, but suspect that they keep a key pool for the exact same reason.

One vs. many addresses

Using many addresses, i.e. a new address for each transaction,

  • increases your privacy by making it harder to determine that your different transactions belong to the same person.
  • obfuscate which part of your transaction went to the recipient and which was the change.
  • create plausible deniability as sending funds to yourself looks the same as sending to another user.
  • By giving out a new address for each incoming payment, it is easier associate payments to specific senders. Say, you go out with a three business partners and each ends up owing you 0.10 BTC. How would you know who paid already, if you only received two payments to the same address?

Using only one address

  • allows your backup to last forever
  • reduces the overhead if people send funds to you more than once.
  • Your privacy, and the privacy of your business partners might be reduced.
3

How about multibit or electrum? Do they also use a key pool?

Electrum is deterministic and addresses are derived from your seed. Each time you need a new address, Electrum calculates it and shows it in the client.

Being deterministic lets Electrum recover your entire wallet addresses from your seed, so you don't need to backup your wallet file every time you make a transaction.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.