ビットコインの基礎知識(5) - 台帳に登録されるデータの中身

マイニングによって台帳に書きこまれる主なデータは、マイナーによって選択された複数の取引データからなるブロックと、取引データから算出された利用者ごとの残高を示すUTXO(Unspent Transaction Output)です。

ブロックは複数存在し、ビットコインの創生時に作成されたジェネシスブロックから最新のブロックまでを作成順に追記する形で保存されます。

ブロックの中身

個々のブロックは次の要素で構成されています。

フィールド名サイズ(byte)内容
ブロック・ヘッダ80このブロックの内容を示す様々なメタ・データ
ブロック・サイズ4ブロック・サイズ
取引カウンタ1~9(可変)格納されている取引データの数
取引データ可変ビットコインの送受信データ

ブロック・ヘッダの中身

ブロック・ヘッダは次の要素で構成されています。

フィールド名サイズ(byte)内容
バージョン4利用しているビットコインのバージョン数
前のブロックのハッシュ値32前のブロック中のブロック・ヘッダのハッシュ値
マークル・ルート32格納している取引データのハッシュ値
タイムスタンプ4ブロックが生成された大まかな時刻
ディフィカルティ4ブロック生成の難易度
ノンス4PoWの当たりくじ

ブロック・ヘッダには3つの主要なメタデータが格納されています。

  • 前のブロック・ヘッダのハッシュ値
    先頭の文字に連続したゼロが現れます。
    このハッシュ値を通じてブロックチェーンは原始のブロックから最新のブロックまでが数珠つなぎで関係付けが行われます。
  • マークル・ルート(Merkle Root)
    ブロックに格納する取引データを多段階でハッシュしたものとなります。
    このマークル・ルートを通じて取引データとブロック・ヘッダの関係付けが行われます。

-ノンス(Nonce)
ノンスはマイニング報酬を得るために行われるPoW(Proof of Works)の当たりくじです。
これを含めたブロック・ヘッダから、次のブロックのハッシュ値を計算します。