「従来の」ブロックチェーンのヘッダーについて説明する。ヘッダーに格納されているデータにおいて、あたらしいブロックチェーンでは、2つの親ブロックのハッシュ値を格納している点が従来のブロックチェーンと異なる。(従来は1つ)
この説明は、ジェネシスブロックにも基本該当する。(ジェネシスブロックゆえの一部例外もある)
●ブロックの構造
ブロックは、大きく分けて2種類のデータで構成されている。
1、そのブロックに関する情報(メタデータ)を含むブロックヘッダ
2、そのブロックに含まれるトランザクションのリスト
ブロックヘッダ詳細
サイズ | フィールド名 | 説明 |
---|
4バイト | Version | ソフトウェア/プロトコルのバージョン |
32バイト | Previous Block Hash | 親ブロック(1つ前のブロック)のハッシュ値 |
32バイト | Merkle Root | ブロック内の全トランザクションに対するマークルツリーのルートハッシュ |
4バイト | Timestamp | ブロックの生成時刻 |
4バイト | Difficulty Target | ブロック生成時のproof of workのdifficulty |
4バイト | Nonce | proof of workで用いるカウンタ |
●直前のブロックのハッシュ値
ハッシュ値とは規則性のない固定長の値を吐き出す乱数のことです。
●マークルルート
マークルルートは先ほども解説したブロックヘッダに含まれる情報。これは、ブロック内の全てのトランザクションをまとめた要約値です。
●タイムスタンプ
ブロックの生成時刻。ブロックがいつ作られ、承認されたということがタイムスタンプとして生成される。
●ビッツ
マイニングの難易度を表すための表現方法。 ビッツを用いて算出される目標値をブロックヘッダのダブルハッシュの数値が下回った場合のみ、マイニングが成功する。
●ナンス
ナンスとは、ワンタイムトークンと言われ、リクエストが正当なものであるかどうかを見極めるためのものとして、ブロックチェーン上で、マイニングの際に使用されています。