【マイニングとは】マイニング計算が大変な理由や個人で行うための方法
ビットコインなどの暗号資産に関連して、「マイニング」という単語を耳にした方も多いと思います。今回は、マイニングとは何か、マイニング計算の詳細や個人でマイニングを行う方法などについて解説します。
マイニングとは
マイニングとは、ブロックチェーン技術を活用した暗号資産などで、取引記録を作成する際に必要となる計算を行うことです。中央銀行や運営者が存在せず、多くの人の協力で運営管理が維持される暗号資産では、この必要な計算をしてくれた人に報酬が支払われる仕組みになっています。ビットコインなどの暗号資産では、時間とともに新たな通貨が増える設計になっていて、その新規発行分の通貨がマイニングに成功した人に支払われます。
何もないところから通貨が増えて、それを掘り出すように得ることから、採掘という意味のマイニングが使われるようになりました。このようなマイニングを行って、利益を得ようとする企業、個人はマイナー(採掘者)と呼ばれます。
【関連記事】「【ビットコインとは】仕組みや特徴、注目される理由とメリット・デメリット」
マイニング計算が大変な理由
ブロックチェーンは、改竄ができないデジタル帳簿です。より正確に言えば、改竄をしてもすぐに発覚をして、正しい記録に置き換えられるように設計されています。このブロックチェーン技術を活用して、ビットコインやイーサリアムなどの仮装の通貨を発行し、その取引記録をブロックチェーンで管理するというのが暗号資産です。
この「改竄ができない」「改竄をしてもすぐに発覚をする」ということを保障しているのがマイニング計算です。マイニング計算は、あえて時間がかかる計算になっています。ブロックチェーンは、取引データをブロックに格納し、これを数珠繋ぎにして管理をしています。このブロックとブロックを接続する時に使われる鍵となるのがハッシュ値という数値ですが、この数値を計算するのに時間がかかるのです。
ハッシュ値を計算するときは、そのブロックの内容データとひとつ前のブロックのハッシュ値、さらに任意のナンス値(Number Used Once、使い捨て数値)の3つに基づいて計算をします。この「前のブロックのハッシュ値」も使われるというところがポイントです。
例えば、5番目のブロックのデータを改竄したとします。データが変わると5番目のブロックのハッシュ値も違ってきてしまいます。すると、6番目のブロックに記録されている正しいハッシュ値と異なった値となり、矛盾が生じます。さらに、その矛盾は7番目のブロック、8番目のブロック…と影響をしていきます。つまり、どこかのブロックのデータを改竄して、それを隠蔽しようとすると、それ以降すべてのブロックのハッシュ値を計算し直さなければならなくなるのです。
しかし、ハッシュ値の計算は、あえて手間のかかる計算に設計してあります。世界中のマイナーが計算を競っている中で、犯人はそれ以上の速度でマイニング計算をしなければなりません。そんなことをするには、スーパーコンピューターでも開発をしなければ無理な話です。
これにより、データが改竄されない、改竄されてもすぐに発覚するということが、マイニング計算を大変にすることで保障されています。
マイニング計算の決め手は「ナンス値」
具体的なハッシュ値の計算は、「ブロックに記録されている内容データ」「前のブロックのハッシュ値」「ナンス値」の3つの値から、決められたアルゴリズムに従って計算をします。この計算自体はシンプルで簡単なものです。しかし、得られた結果の数値に合格条件が設けられているのです。例えば、「先頭の3桁が0でなければならない」などです。この場合、得られる結果のうち、下位0.1%の小さい値しか合格しません。
ここで決め手になるのが「ナンス値」です。その他の2つはすでに決まっているデータですが、ナンス値はマイナーが自分で決めていいのです。つまり、同じ計算をナンス値を変えながら何回も繰り返して、合格する値が得られるナンス値を見つけるのがマイニング計算です。
合格するナンス値を見つけるには、この例ですら、最低でも1000回同じ計算を繰り返さないと合格する値は得られません。しかも、この合格率は、安全性を保障するために、過去2週間の実績を見て、難易度が調整される仕組みになっています。
マイニング計算にグラフィックボードが利用される理由
マイニング計算は、ひとつひとつはさほど複雑なものではなくても、ナンス値を変えながら何回も繰り返し計算する必要があります。こういう計算をするのに、コンピューターのCPU(Central Proces Unit)はあまり向いているとは言えません。CPUは、いろいろな処理を順番にこなしていくように設計されているからです。
一方で、GPU(Graphics Process Unit)はマイニング計算に向いています。GPUは画像処理をするために設計された計算チップで、画面の縦横に並んだドットの色と明るさを決めるために、大量の並列計算ができるように設計されています。ここがマイニング計算に向いているのです。
一般に、GPUを積んだ拡張カードがグラフィックボードと呼ばれ、映像制作などの業務に使われるコンピューターに搭載されています。また、個人では、ゲーマーがグラフィックボードを積載したパソコンを使います。近年のゲームは、画像の精細さ、リアルさの進化が著しく、ゲーム画面を表示するには、グラフィックボードで画像処理計算をする必要があります。
マイニングの報酬はビットコインで支払われるので、ビットコインの相場が上がると、実質的な報酬も増えることになります。すると、マイニングをする企業、個人が増加します。これにより、グラフィックボードが品薄となり、販売時の実勢価格が上昇し、ゲーマーはグラフィックボードが買えなくなり困ったことになります。
逆に、ビットコインの相場が下落をすると、それまでマイニングをしていた企業、個人が撤退するので、中古のグラフィックボードが市中に出回り、グラフィックボードの実勢価格が下がり、ゲーマーは喜ぶことになります。
グラフィックボードのメーカーでは、このようなおかしな関係は好ましくないと考え、対策を取るようになりました。画像処理用のグラフィックボードに、マイニング計算をする場合だけ速度が低下する仕組みを入れ始めています。同時に、マイニング計算専用のボードも開発をして発売するというように、マイニングと画像処理を分離をしていく方向を取り始めています。
個人でマイニングを行うには?
マイニングは、廃工場などを買い取って、大量のコンピューターを並べ、大規模に計算するマイニング工場が一般的ですが、個人でもマイニングをすることができます。ただし、ノートPCやスマホではかなり難しく、ほとんど利益を出すことはできません。
グラフィックボードを使った自作PCなどを持っているゲーマーが、ゲームをしない間にマイニングをして、お小遣い稼ぎをしているというのが一般的です。また、趣味のひとつとして、自分でマイニング専用の自作PCを作る人もいます。
必要なものは、グラフィックボードつきのPCと、あとはマイニングソフトウェアです。マイニングソフウェアはネットに無料のものから法人仕様のものまでさまざまなものがあります。やっていることは単純なことなので、ソフトウェアを入れたら、後は計算をさせておくだけです。
ビットコインが高値をつけているときは、個人でマイニングをしても、電気代をまかなえるぐらいは利益が出るという人もいます。
マイニングに対する批判
ブロックチェーンを維持するには、このようなマイニング計算が必要で、しかも改竄を防ぐために、「大量の無駄な計算をさせる」という仕組みになっています。このことから、マイニング計算に使われる電力が問題になっています。
英国ケンブリッジ大学では、ビットコインを維持するのに必要な電力の推計値をリアルタイムで公表しています(https://cbeci.org)。これによると、年間の電力消費量に換算をすると64.70テラワット時になっています。これは「グローバルエネルギー統計イヤーブック2020」によると、コロンビアの国全体の電力消費量とほぼ同じです。
しかも、マイニングが盛んに行われるのは、寒冷地(コンピューターの冷却がしやすい)で、電気代が安い国です。具体的にはロシアと中国が最も盛んです(中国では法律によりマイニングが禁止になりました)。このような国の電力は化石燃料を使って発電されている割合が高く、大量の温室効果ガスを生み出すことになっています。
ブロックチェーン技術や暗号資産技術そのものは素晴らしいものの、果たして仮想通貨を維持するのに、環境にこれほどインパクトを与えることは妥当なのかという疑問の声が生まれています。同時に、電力を消費しないマイニング計算を考案して、それを暗号資産の運用に応用するという研究も始まっています。
ブロックチェーンや暗号資産が広く使われるようになり、さまざまな課題が指摘されるようになりました。今後は、このような課題を解決する技術の開発が焦点になっていきます。
まとめ
マイニングとは、暗号資産などで、取引記録を作成する際に必要となる計算を行うことです。報酬として新規発行された暗号資産がもらえる仕組みになっているため、採掘という意味のマイニングという言葉が使われます。
マイニング計算をするには、並列計算が必要となり、画像処理用のグラフィックボードが使われます。また、マイニング計算は大量の電力を消費することから、環境に与えるインパクトが問題視されるようになっています。
ライター
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから