ブロックチェーンの肝!ブロックの構造は?ブロックチェーンの肝!ブロックの構造は?2019.02.07コラムブロックチェーンの肝!ブロックの構造は?ブロックチェーン、ひとつひとつのブロックはどんな構造でできている?暗号技術を中心とした既存の技術を組み合わせることで生まれてきたブロックチェーンの技術概念は、シンプルながらまさに革命的であり、社会のあり方を根本から変えるものになると考えられています。近未来がどのような世界となるか、その鍵を握るとも見込まれる、注目度の高いブロックチェーンについて、今から知識を身につけておくことは、必ずや時代を生き抜く大きな力となるでしょう。現在は発展と普及の途上にあるブロックチェーンですから、興味関心はあってもまだよく理解できていない、詳細は分からないという方も多いことと思います。今回はより詳しくブロックチェーンを学んでいくための一歩として、ブロックチェーンの“ブロック”にスポットを当て、ひとつひとつがどのような構造をなしているのか、紐解いていくこととしましょう。ヘッダーとトランザクション部分からなるブロックブロックチェーンと一口に言っても、さまざまなタイプが存在し、詳細なデータ構造はそれぞれに違いがあります。知られる仮想通貨のビットコインとイーサリアムでも、その構造は異なるのです。そのため、ここで解説した内容が必ず全てのブロックチェーンに当てはまるとは言い切れませんが、技術概念としての基本構造は共通しています。よって、機能や性質上の理由から多少改変が加えられていることはあるが、およそこうした構造になっていると理解してください。ブロックチェーンのブロックは、主要な2つの部分とその他の部分で構成されています。主要部分と言えるのは、ブロックそのものに関するメタデータを含んだ「ブロックヘッダー」部分と、そのブロックに含んで記録する「トランザクション」の部分です。その他部分として、まずヘッダー部分の前に、ブロックを示すマジックナンバーの定数があり、さらにブロックのデータサイズを規定しているブロックサイズのフィールドがあります。ここはビットコインの場合で4バイトと、ごく小さなものです。ブロックヘッダー部分には、さまざまなブロックの基礎情報が収められています。ブロックの現在バージョン情報に始まり、直前ブロックのハッシュ値が入ります。このハッシュ値により、チェーンの連結が保持されます。このブロックに収められることが決まったトランザクションのマークルルート値と呼ばれるもののハッシュ値も入ります。Root)は、トランザクションのデータを要約する技術として導入されているマークルツリー(ハッシュツリー)に由来するもので、全体をツリー構造のデータとしてとらえたときに頂点となる部分、全ハッシュから計算される最終ハッシュ値です。全ての状態を示すデータを保存・記録しておこうとすると、ブロックに収めるデータサイズが極端に肥大化してしまいますが、このように要約しておくことで、データをコンパクト化でき、必要時にはいつでも計算によって生成・復号できるようになっているのです。ヘッダー部分には、さらにこのブロックが生成された時刻を示すタイムスタンプも格納されています。ブロックのマイニング時における難易度にかかる値、マイナーが見出したナンス値(Nonce)もここに入ります。以上が、ブロックヘッダー部分に含まれる主なデータ内容ですが、イーサリアムの場合などは、さらに多くの要素が含まれます。要素が多くなっている原因は、承認速度やマイニングのスタイルによるところが大きく、その特徴を反映して類する情報が追加されたと考えれば、基本は変わりません。次にもう1つの主要部分である、トランザクション部分ですが、こちらにはまず、そのブロック中に含むトランザクションの数を示したトランザクションカウンターがあり、そしてこのブロックへの帰属が決まった複数の署名済みトランザクションデータがあります。トランザクションは取引の価値移行を示す明細のようなデータで、ブロックのメインデータになります。この個々のデータ構造については、別に解説していますから、そちらも参照してください。複雑な部分もありますが、ブロックというものがどういった内容になっているのか、どう構成されているのか、具体的にイメージしやすくなったかと思います。得られた知識は、ぜひブロックチェーンのさらなる理解形成に活かしていってくださいね。