ノードが保持するデータを圧縮する方法
それぞれのビットコイン取引は、ブロックチェーンを構成するいずれかのブロックに記録されていきます。
そのため、ブロックチェーンを動作させているノードは、取引記録を検証するために全てのブロックのデータを保持していなければなりません。
しかし、ビットコイン取引の数が増えるにつれて、ノードが保持しなければならないデータも膨大になっていきます。
この問題を解決するために、ノードが常に保持しておく必要のあるデータを、ごく一部に限定する仕組みが組み込まれています。
具体的には、最新の取引記録が一定数溜まると、それ以前の取引記録は削除しても大丈夫な仕組みになっています。
この仕組みを実現するために、ここでもハッシュ関数を使用しています。
複数の取引記録をまとめてハッシュ化し、出力されたハッシュ値のみを常に保持しておくイメージです。これをマークルツリーといいます。
レッスン4「プルーフオブワーク」で、各ブロックは直前のブロックのハッシュ値を格納していると学習しました。
このブロックのハッシュ値には、各ブロック内に含まれる取引記録を全てまとめてハッシュ化したハッシュ値が含まれています。
そのため、ハッシュ値さえあれば、取引記録は不要になるということです。
检查您的课程进度
了解了本课的内容,
就点击 "检查 "按钮吧!
ノードが保有する将来のデータ量
過去の取引記録は保持せず、ブロックヘッダのデータのみを保持した場合、その大きさは約80バイトになります。
ビットコインは、ディフィカルティによって約10分に一度ブロックが形成されるよう調整されています。
従って、80バイト×60分×24時間×365日=4.2MB分が、1年間に追加されていくデータ量になります。
この程度のデータ量であれば、ムーアの法則に従ってハードウェアの性能が良くなっていくことで、特に問題なくデータを保持することができるといえます。
检查您的课程进度
了解了本课的内容,
就点击 "检查 "按钮吧!