7 使用ディスクスペースの節約
コインの取引履歴が十分な数のブロックに埋め込まれたら、使用ディスクスペースを節約するために、古い履歴を消去しても構わない。取引情報のデータ構造にはハッシュ木[7][2][5]を採用しているので、データを消去しても、ブロックのハッシュ値は変わらない。ハッシュ木の性質により、そのルートハッシュ値は取引データ全体のハッシュ値になる。この値はブロックのヘッダーに格納されている。古くなったブロックでは、ハッシュ木の枝を刈り取ってサイズを縮小できるが、この際、途中の不要なハッシュ値も削除可能である。
ブロックのヘッダー部分の大きさは約80byteである。従って、ブロックを10分間に1個ずつ生成する場合、1年間に80byte×6×24×365=4.2MBが必要になる。2008年現在、一般的なPCは2GBのRAMを搭載して販売されており、ムーアの法則によればこれが1年間に1.2GBの勢いで成長している。そのため、ヘッダー部分だけならば、すべてのブロックをメモリに格納できるだろう。
ハッシュ木は、原文ではMerkle Treeと書かれていますが、同じものを指します。末端のデータからハッシュ値を積み上げて、全体のハッシュ値を決める方式です。ハッシュ木を使う利点は、データを削除しても全体のハッシュ値が変わらないことです。普通のハッシュ値では、少しでもデータを削除すると全体のハッシュ値が変わってしまうので、演算量証明をやり直す必要があり、困るわけです。
たとえ全参加者が元データを削除しても、ブロックのヘッダー部分、つまりハッシュ値のチェーンは残るため、ビットコイン創成時から現在までの演算量証明は誰でも追跡できます。とにかくチェーンが長い方が勝つので、たとえば「ビットコイン開始時からのデータをすべてねつ造しよう」とする人が現れても、長大な演算量証明を築き上げられず、成功しないでしょう。
最近のコメント