Bitcoin-Qt の wallet.dat (お財布)は、どうしてこんなに大きいのか?

Bitcoin-Qt のウォレット(お財布)wallet.dat をダンプすると、なんだかやたらたくさんのアドレスが記録されていることが分かります。私はこんなたくさんのアドレスを生成した覚えはなーい、と怪しんでいたのですが、やっと理由が分かりました。

理由その 1

Bitcoin-Qt は必要に応じてキーペアを作るのではなく、バックアップの度に新しく 100個(デフォルト)のキーペアを予め作って、ウォレットの中にプールしておくのだそうです。何故かというと、バックアップが古かった場合にも、過去のトランザクション(コイン)を喪失してしまうことがないように、です。バックアップ時点で 100個のキーペアがウォレット中にあれば、それを使い果たすまでは過去のバックアップでも有効、という訳です。アタマいい〜

理由その 2

Bitcoin-Qt のアプリを使っていると、なんだか自分で明示的に生成しただけのアドレスを使っているように見えますが、実は違います。調べてみたところでは、送金時に 2つのアドレスを自動的に消費するようです。一つは、送金元のアドレスが同じになると同一人物のトランザクションだということがすぐに分かってしまうので、匿名性を高めるために、毎回異なるアドレスで送金するようになっているようです。さらに、入りと出の金額が異なるトランザクションは、必ずお釣が生成されるので、そのために(やはり匿名性を高めるために)お釣用のアドレスを新しく作り直す(プールから取得する)のだそうです。結果として、送金では 2つアドレスが消費されます。なお、受領時に個別のアドレスを使おうとすると、そこでもアドレスが 1つ消費されます。このようにして、100個のプールは少しずつ消費されてしまうので、ときどきウォレットのバックアップが必要なのだそうです。
ここが参考になります。