テクノロジー

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

ブロックチェーンとは、データ群から一定数のデータをまとめてブロックにして、すでに作成済みのブロック群につなげていく作業です。
ブロックを作る際には、前のブロックと今回のブロックをつなげる為に、前のブロックの要約した内容を今回作るブロックに組み込んでいます。
そして、ブロックを確定するためにナンスというパラメータの最適値を探すマイニング作業を行っています。

今回はナンスを探すマイニング作業とは何かについてまとめています。

スポンサーリンク

【過去記事のご紹介】
本記事をお読みになる前に、

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

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

・ハッシュ値について
ハッシュ値とは具体的になに?特徴や利用例をご紹介
を事前に読まれると本記事の内容がより分かりやすいと思います。
合わせてご覧ください。

※ 当サイトではアフィリエイト広告を利用しています

マイニングのアルゴリズム


図のように、ブロックには

① 履歴データ、
② 1つ前のブロックのハッシュ値、
③ nonce(ナンス)

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

①~③のデータの集まりであるブロックを入力値としてハッシュ関数に代入します。
その結果算出されるハッシュ値が、このブロックの最終的なハッシュ値となります。

最終的なハッシュ値は決められた桁数分の0が先頭文字に連続していないといけないという決まりがありますので、そのようなハッシュ値をマイニングして探さなければなりません。

ここで、ブロックの構成データのうち、
①履歴データ、②1つ前のブロックのハッシュ値の値、
は固定値なので変えることができません。

そのため、③nonce(ナンス)の値をいろいろ変えて計算することで、ブロック全体が0の数を満たすハッシュ値を探していきます。

ハッシュ値を探す作業ですが、ハッシュ関数の特徴として、
「出力値(答え)から入力値を逆算できない」という特徴をもっています。

すなわち、決められた桁数分の0が先頭文字に連続するハッシュ値を見つけるには、
いろいろな数字を適当に総当りでナンスに代入して試していくしかありません。
膨大な数を道に計算していく大変な作業です。

ナンスに代入して計算していき、見事該当するハッシュ値が見つかると、ようやくブロックの内容が確定します。
確定したブロックは既存のブロックチェーンの最後尾につきます。

また、ハッシュ値を最初に見つけた人は取引情報を確定したということで取引の承認者と呼ばれ、報酬ももらえます(ビットコインの場合)。
マイニングは、1等が当たるまで我先に宝くじを買い続けるようなものですね。

スポンサーリンク

当たるまで数字を代入し続ける行為が、金脈にあたるまでひたすら掘り続ける作業と似ているため、マイニング(採掘)と呼ばれています。

このように、マイニングをするときは、決められた0の数を満たすハッシュ値を探すためにひたすらnonceに数字を代入して計算することになるので、マイニングの成功しやすさは単純に「計算量」に比例します。
そのため、パソコンの性能が早いほど有利となります。
一般的なパソコンに搭載されているCPUよりも高性能なGPUやASICを搭載したパソコンが使われることが多いです。

また、仕事量(パソコンの計算量)に応じて報酬が貰える仕組みのため、ブロックチェーンのマイニング作業を
プルーフオブワーク方式(Proof of Work方式/PoW方式)
とも呼びます。

複数人が同時にnonceを発見した場合

マイニングは世界中で行われているため、決められた0の数を満たすnonceがほぼ同じタイミングで見つかることもあります。
nonceが見つかるとブロックが確定し、ブロックチェーンの最後尾につくことになります。
同時に見つかった場合はそれぞれのブロックが同じブロックの最後尾につくため、ブロックが枝分かれします。

その後も枝分かれしたそれぞれのブロックにつけられたハッシュ値を基に、次のブロックを確定させるマイニングが行われていきます。

最終的に先に6つのブロックが繋がった方を正しいブロックと認定し、他方のブロックチェーンはキャンセルされます。

そのため、一時的には枝分かれしますが、時間の経過とともに一本のチェーンになります。

マイニングの難易度とは

マイニングして計算される最終的なハッシュ値は事前に決められた桁数分の0が先頭文字に連続して並ぶことになるわけですが、0の数を調整することで、ハッシュ値の発見までにかかる計算時間を調整できます

0が3つ並ぶハッシュ値(000arag)を探すより、0が5つ並ぶハッシュ値(00000hpoi)を見つけるほうが難しいですよね。

このように1ブロックの生成にかかる時間が安定するように難易度を調整することを
ディフィカルティー
といいます。

ちなみに、有名なビットコインでは、マイニング作業が約10分で発見できるように0の数を調整しています。

まとめ

いかがでしたか。
マイニングは最適なナンスの値を見つけるためにひたすら適当な値を代入していく、膨大な計算力を必要とする作業です。
マイニングをするためにはGPUなどの非常に高性能(高価)なパソコンを用意し、その性能を最大限使い続けるための電気代をバンバン使って見つける必要があります。
しかも世界中の人々が同時に探しているため、自分より先に見つけてしまうこともあります。
その代わり、マイニング作業に成功したら仮想通貨で報酬が支払われます。

運がよければ短時間で正解を引く可能性もあるのでマイニング成功を連発する可能性もあるギャンブル要素も高いといえます。
運試しにマイニングしてみるのもありかもですね。

スポンサーリンク
目が疲れやすいと感じたら「アサイベリーアイ


最近パソコンやスマホを使い続けると目がしょぼしょぼしやすい…
集中してパソコンしていると目が疲れやすくなった…
というときにの原因の一つにアントシアニン不足が考えられます。

アントシアニンを手軽に補うならアサイベリーがおススメです。
アサイベリーにはアントシアニンが多い食材として有名なブルーベリーよりも4.6倍多くのアントシアニンが含まれています。

そのアサイベリーをふんだんに使ったサプリメントの「アサイベリーアイ」。
錠剤タイプのサプリメントなので、手軽にアントシアニンを摂取できます。

初回970円と他のアサイベリー系サプリよりも低価格。
しかも定期販売としては珍しく継続指定回数の制限がありません。
1回だけ試したい!など、気軽に試せるのは嬉しいです。