第三回:ブロックとは?

ブロックチェーンは一連のブロックがチェーンのように連接して構成されます。それで、ブロックそのものは何かに構成されますか?今回はブロックの構造について紹介します。

簡単に言うと、ブロックにはブロックヘッダとブロックボディーの二つの部分から構成されます。ブロックヘッダには親ブロックのハッシュ値(Hash Used)、ブロックの生成時刻(Timestamp)、ブロック生成時のディフィカルティー(Difficulty)、カウンタ(The Nonce)、ターゲット(The Target)とブロック内の全トランザクションに対するマークルツリーのルートハッシュ(Merkle Root)があります。ブロックボディーにはトランザクションのリストがあります。

                                               image.png

ブロックヘッダ

Blockchain.infoにはビットコインの各ブロックの情報を検索することができます。第590357個のブロックを検索して見ると、その結果は以下の通りです。

image.png

ビットコインNO. 590357のブロック

このブロックには2680件の取引があり、生成時刻は2019年8月16日7時2分15秒、カウンタは3271780214です。

これらの中に、ブロック生成時のディフィカルティー(Difficulty)、カウンタ(The Nonce)、ターゲット(The Target)とブロック内の全トランザクションに対するマークルツリーのルートハッシュ(Merkle Root)は少し理解しにくいと思うので、これからはこれらを簡単に説明します。

1、ブロック生成時のディフィカルティー(Difficulty

ビットコインブロックの生成間隔を10分に保持するために、ディフィカルティー(Difficulty)が導入されました。ビットコインのルールによると、2016個ブロックごとに、2016個ブロックの平均生成時間によってディフィカルティー(Difficulty)が調整されてブロックの生成間隔を10分に合わさせます

ディフィカルティー(Difficulty)の計算方法は:

ディフィカルティー(Difficulty)=ターゲットの最大値(maximum_target)/ターゲットの最小値(current_target)

2、カウンタ(The Nonce)

以前に紹介したビットコインを生成する過程は「マイニング」と呼ばれています。実際に、「マイニング」はある数学問題を解決することです。カウンタ(The Nonce)はこの数学問題の答えです。

3ターゲット(The Target)

カウンタ(The Nonce)の範囲はターゲット(The Target)に制限されました。ブロック生成時のディフィカルティー(Difficulty)はターゲット(The Target)によって決めます。

4、マークルツリーのルートハッシュ(Merkle Root)  ブロック内の全トランザクション

1ハッシュリスト(Hash List

ハッシュ関数とはいずれの長さのデータを入力すれば最後に固定の長さの文字を出力することです。現行のP2Pネットワークでデータを送る時に、同時に複数のパソコンからデータをダウンロードします。一部分のパソコンが不安定や信頼性が低いかもしれません。データの完全性を確保するために、より効果的な方法は大きなファイルを小さく分割することです。これで、一部分のデータがなくなった場合にはこの部分だけ改めてウンロードすればいいんです。それではどうやってなくなった部分を確認しますか?

その方法はそれぞれの分割された部分のハッシュを計算します。全てのハッシュを合わせてルートハッシュを計算します。ファイルをダウンロードする前に、信頼できるパソコンからルートハッシュとハッシュリストをダウンロードします。それで、これらでダウンロしたファイルの完全性をチェックすることができます。

 

image.png

2)マークルツリー(Merkle Tree

マークルツリー(Merkle Tree)の中にもデータを小さく分割してそれぞれのハッシュを計算します。それで、2個ずつ合併してまだハッシュを計算し、この過程を繰り返してルートハッシュを生成します。結果、まるで木のような仕組みのでマークルツリー(Merkle Tree)と名前付けされました。

image.png

マークルツリー(Merkle Tree)の役割はデータの完全性を速く検証することです。この仕組みはいくつかの利点があります。

まずはシステムの効率と開拓性を向上させます。ブロックヘッダにはルートハッシュだけを入れても十分です。それで、全てのデータをダウンロードしなくても取引を検証することができます。

 

END