覚えておきたいこと、忘れないようにメモメモ

データ的な

ブロックチェーンのブロックの構造!中身で使われるnonce(ナンス)とは?

投稿日:

ブロックチェーンを調べるにあたって、ブロックチェーンの特徴や利点などは各種本やHPに載っていたので調べやすかったのですが、ブロックチェーン内部で個々のブロックがどのように計算されているかまではイマイチつかめませんでした。

ブロックチェーンの仕組みについては
ブロックチェーンの仕組みを簡単に説明。改ざんや複製は難しいの?
にまとめてあります。

が、いろいろな断片情報を租借した結果、ブロックを作る際には下記のような内容を行っているようです。
以下にメモメモします。
興味がある方はご一読ください。
しかし、調べだすと構造内部まで気になりだすのは理系脳の性でしょうか(笑

スポンサーリンク

ブロックチェーンのブロックの構造は?

ブロックチェーンとは、

① お金や物、サービスなどの取引が発生するごとに履歴データを記録していく。
② 履歴データが一定数集まるごとに1まとまりのブロックとして集約する。
③ それ以前に生成されていたブロックと今回のブロックを繋げる(チェーン)。

を順に行っていく仕組みです。

③に書かれているように「それ以前に生成されていたブロック」と「今回(新しく作られた方)のブロック」を繋げるとき、新しく作られた方のブロックには一つ前のブロックの情報を要約したデータも含むようになっています。
(一個前のブロックのデータも含むため、繋がっている(チェーン)と表現されています)

つまり、ブロック内には、

・②で集めた履歴データ
・ひとつ前のブロックの要約データ

のデータが含まれています。

「②で集めた履歴データ」はそのままズバリなので問題ないですが、
「ひとつ前のブロックの要約データ」とはなんでしょうか。
どうやって要約しているのでしょうか。

要約にはハッシュ値が活用されています。

ハッシュ値とは?

ハッシュ値とは、入力値となる「任意のデータ」を「ハッシュ関数」と呼ばれる関数に代入すると、入力値よりも小さくランダムなデータとして出力されます。
この出力結果を「ハッシュ値」と呼びます。

入力データ(データ量大) → ハッシュ関数 → ハッシュ値(入力値よりもデータ量小)

ハッシュ値の特徴として、

① ハッシュ値から入力データを推測(逆計算)できない。
② 入力データが少しでも変わると出力結果であるハッシュ値も異なる。
③ 同じ入力データを同じハッシュ関数に代入すると、同じハッシュ値が出力される。

が挙げられます。
ブロックの計算ではこれらの特徴を利用しています。

ハッシュ値の詳細については
ハッシュ値とは具体的になに?特徴や利用例をご紹介
にまとめていますので合わせてご覧ください。

スポンサーリンク

ブロックチェーンのブロックの中身の詳細

本題に戻ります。
ブロックに含まれている「ひとつ前のブロックの要約データ」
をさらに分けると、


・1つ前に生成されたブロックの内容を入力値としてハッシュ関数で計算したハッシュ値
・偽造防止のためのnonce(ナンス)(後述)

の2種類で構成されています。

つまり、ブロック全体では、

・②でまとめた履歴データ
・1つ前に生成されたブロックの内容を入力値としてハッシュ関数で計算したハッシュ値
・偽造防止のためのnonce(ナンス)(後述)

の3種類のデータが含まれています。
(その他のデータもありますが今回の話とは関連しないので省略します)

ここで、新単語、nonce(ナンス)がでてきました。
nonce(ナンス)とはなんでしょうか。

ブロックチェーンで使われるnonce(ナンス)とは

ブロックチェーンは偽造防止に優れたツールといわれています。
偽造防止の要となっているのがnonce(ナンス)と呼ばれるパラメータです。

上述のように、ブロックを作るときは、1つ前のブロックをもとに求めたハッシュ値を一緒に格納しています。

上の図に載せているように、ブロックから計算されたハッシュ値は
000ha5a」
0009ate」
のように、先頭文字に0が複数続いています。

これは偶然ではなく、決められた桁数分(上の例では3桁分)の0が続くようなナンスを探し出す作業をしているためです。

ナンスの値を変えてハッシュ関数に代入し、結果が0が続く値を探し出す作業のことをマイニングと呼んでいます。また、マイニングをする人をマイナーと呼びます。

気になるマイニングの仕方は次回まとめます。

まとめ

いかがでしょうか。
ブロックチェーンで作られるブロックには、
「履歴データ」と、ハッシュ値とnonce(ナンス)からなる「ひとつ前のブロックの要約データ」が含まれています。

そしてハッシュ値が決められた値になるようなナンスを地道に探し出す(マイニング)ことでブロックが作られています。

次に気になるのは、マイニングとはなにか。ですね。

スポンサーリンク

-データ的な
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ブロックチェーンの仕組みを簡単に説明。改ざんや複製は難しいの?

スポンサーリンク 今さら感はありますが、ビットコインなどの仮想通貨の売買が流行っています。 仮想通貨とはブロックチェーンによる分散型台帳技術を使っているそうですが、 ブロックチェーン? 分散型台帳技術 …

【図解あり】マイニングのアルゴリズムは?同時にナンスを発見した場合や難易度とは

スポンサーリンク ブロックチェーンとは、データ群から一定数のデータをまとめてブロックにして、すでに作成済みのブロック群につなげていく作業です。 ブロックを作る際には、前のブロックと今回のブロックをつな …

ハッシュ値とは具体的になに?特徴や利用例をご紹介

スポンサーリンク インターネットでデータを送受信するときに、受信途中でデータが壊れていると律儀に 「データが壊れています」 と表示されますよね。 長時間かけてダウンロードしたのにー! …と泣きたくなる …