皆さん、おはようございます!前回の記事ではハッシュについて説明させていただきました。今回はビットコインのブロックチェーンのブロックの中身について話します。ハッシュという単語が何回も出てくるため、第二回の記事を読んでからこの記事をよんでいただけると分かりやすいと思います。
ブロックチェーンは一つだけではありません。例えば、Ethereumのブロックチェーンのブロックの構造はまた違います。このシリーズではとりあえずビットコインのブロックチェーンだけを見るので、これからの「ブロックチェーン」という単語はそれに指します。
では、ブロックチェーンのブロックは以下の図のような構造ですが、大事なのはブロックヘッダです。
マジックナンバー:
ブロックチェーンのブロックを示す定数です。0xD9B4BEF9であり、変わりません。
ブロックサイズ:
ブロックの大きさを示します。
取引数:
文字通り、そのブロックに記録された取引の数を示します。
取引一覧:
取引数に一致した数のそのブロックに記録された取引の一覧です。
例えば、AさんはWalletからBさんのWalletに0.0010543 BTCを送った取引の記録は以下のようにブロックに記録されています。aで始まる長いやつは取引のIDです。
a9c909dfecfa33b581418348203fe2794e951b112c33f596e967ce5e102cf3b4
1BCYpzZAmH3pX7EXU6s4gxtG1AoVMn2NfJ
➡1JiPcyQ2MBCzecN667tY4ks5Ucb2fhzdkL 0.0010543 BTC
ブロックチェーンのブロックのカッコいいところはブロックヘッダです。
バージョン番号:
この辺は自分の勉強不足が明確になりますが、取引承認に関するルールなども変わり、そういったプロトコルの更新によってバージョンが変わります。現在はversion bitsというところまで来ています。その前まではv1からv4までありました。フォークなどという話にも関係する気がします。フォークなども関係すると思います。
前ブロックのハッシュ:
ここには前のブロックのハッシュが入ります。これがチェーンの鎖のような働きをします。
時刻:
ブロックが構成した日付、時間などがここに入ります。
ビットとNonce:
これはPow(Proof of Work)式のビットコインマイニングと関係する数値です。このシリーズの次の記事にはこの二つの数値について説明し、今回は割愛させていただきます。
マーケルルートは、そのブロックに記録された取引を全てハッシュしたハッシュ値です。以下の図をご参照ください。
図2のように、マーケルルートのハッシュが計算されます。図ではA,B,Cが取引であり、合計三つですが、実際はこのように数千の取引が一つのハッシュ値に圧縮されます。
いかがでしょうか。ややつまらない記事になりましたが、ビットコインのブロックチェーンのそれぞれのブロックの構造は上記のようです。次回はマイニングの経過について説明していこうと思うので、そのときもよろしくお願いします。
実は、Genesis Blockから今までのブロックのマーケルルートのハッシュ、取引数、時刻などを以下のウエブサイトで全て自分で確認できます:
Blockchain技術シリーズ:
誰にでも理解できる:Blockchain技術 ① - チェーンの意味と働き
誰にでも理解できる:Blockchain技術 ② - ハッシュとは?
誰にでも理解できる:Blockchain技術 ③ - ブロックの中身