【ビットコイン】1ブロックに含まれる情報について調べてみた【マークル木】

ビットコインなどの仮想通貨では、トランザクション(取引)の束を「ブロック」という単位で扱い、「ブロック」をつなげたものを「ブロックチェーン」と呼び、1つの公開台帳として管理しています。

今回は、ビットコインにおいて、1つの「ブロック」の中にどのような情報が入っていて、また、どのように「ブロック」が管理されているかを調べてみました。

ビットコインのブロックチェーンにおいて、各ブロックには、以下の3つの情報が含まれています。

  • 1つ前のブロックヘッダーのハッシュ値(Hash Value)
  • トランザクションデータ(マークル木)
  • ナンス(Nonce)

1つ前のブロックヘッダーのハッシュ値

サトシ・ナカモトの論文によると、ビットコインの1ブロックは以下のような構造になっています。

参照:Bitcoin 論文

ブロック(Block)の中にブロックヘッダー(Block Header)という部分があると思います。このブロックヘッダー部分には、

  • Prev Hash(1つ前のブロックヘッダーのハッシュ値)
  • Nonce(ナンス)
  • Root Hash(マークル木のルート)

の3つの値が入っています。

注意する点は、ブロックヘッダーにはマークル木(複数のトランザクションの束)のルートのハッシュ値のみが含まれていることです(マークル木全体は含まれていない)。

そして、Prev Hash(1つ前のブロックヘッダーのハッシュ値)は、ブロック全体ではなく、ブロックヘッダーのハッシュ値になります。

トランザクションデータ(マークル木)

次は、トランザクションデータを管理しているマークル木について説明します。

マークル木(Merkle tree)とは、ハッシュ木とも呼ばれ、「ハッシュ値を用いて、大きなデータの要約結果を格納する木構造」のことです。

Hash tree.png
英語版ウィキペディアDavidgothbergさん – en.wikipedia からコモンズに AzertyFabCommonsHelper を用いて移動されました。, パブリック・ドメイン, リンクによる

各データ(Data block)を、ハッシュ値(Hash)の変換し、それぞれのペアでハッシュ値を足し合わせて新たなハッシュ値(Hash0, Hash1)に置き換えることによって要約していきます。

繰り返し要約を行っていくことにより、最終的に1つのハッシュ値(Top hash)を得ることができます。

ビットコインの場合、各データ(Data block)が1つのトランザクション(取引)となり、最終的に得られるハッシュ値(Top hash)がブロックヘッダーに含まれる Root Hash(マークル木のルート)に相当します。

ナンス(Nonce)

ビットコインでは、トランザクション(取引)の承認は各ブロック単位で行われます。

承認の仕組みとして「プルーフ・オブ・ワーク(Proof of Work)」という、労働(CPUの計算)により発言権を与えられることになっています。

ナンスとは、PoW(労働) の成果の結果を証明するための値となります。

関連記事

【MetaMask】イーサリアムのウォレットを使ってみた【テスト環境】

今回、イーサリアムのウォレットの1つである MetaMask(メタマスク)を使って、テストブ

記事を読む

【ビットコイン】ハッシュ関数(SHA-256・RIPEMD-160)について調べてみた。

ビットコインなどの仮想通貨で使用されているハッシュ関数(hash function)という技

記事を読む

【イーサリアム】日本円のチャートで比較する方法【イーサリアム・クラシック】

イーサリアム(Ethereum)は、2020年時点で、時価総額がビットコインに次ぐ第2位の仮

記事を読む

【イーサリアム】 ホリエモンが2014年当時にイーサリアムの可能性に気付いていた!?

ホリエモンこと堀江氏が、2014年の自身のブログで「イーサリアムやべぇ。。。」というタイトル

記事を読む

【仮想通貨】トランザクションについて調べてみた【ブロックチェーン】

ビットコインなどの仮想通貨では、取引をトランザクションで記述されます。 そのトランザク

記事を読む

【仮想通貨】デジタル署名について調べてみた【ブロックチェーン】

ビットコインなどの仮想通貨のブロックチェーンで用いられているデジタル署名(Digital s

記事を読む

【ビットコイン】承認されたブロックを見てみる【ブロックチェーン】

ビットコイン(BitCoin)の公開台帳であるブロックチェーンについて、新たに承認されたブロ

記事を読む

【仮想通貨】デジタル署名と公開鍵暗号の違いは!?

ビットコインなどの仮想通貨のブロックチェーン技術で用いられている「デジタル署名」「公開鍵暗号

記事を読む

【仮想通貨】新しいトランザクション(取引)の追加方法【ブロックチェーン】

仮想通貨で用いられているブロックチェーン技術において、新しいトランザクション(取引)をどのよ

記事を読む

【イーサリアム】 公開鍵暗号について調べてみた。

仮想通貨の1つであるイーサリアムでは、公開鍵暗号という技術が使われています。 公開鍵暗

記事を読む

【MT4】日付と時間を指定してPCを自動起動させる方法【DELL】

今回は、日付と時間を指定してPCを自動的に起動させる方法について紹介し

【MT4】PCが再起動しても自動的に起動させる方法【FX自動売買】

今回は、FX 自動売買用のツールの MT4 で、実行しているPCが再起

【MT4】複数口座を同時に起動させる方法【FX・CFD】

今回は、MT4(メタトレーダー4)で複数口座を同時にログインし、起動さ

【MQL4】スプレッドを取得する方法【MT4】

今回は、MQL4 で対象通貨ペアのスプレッドを取得する方法について紹介

【楽天CFD】取引口座を開設してみた【MT4】

今回は、楽天CFDの取引口座(本番口座)の開設方法について紹介します。

→もっと見る

PAGE TOP ↑