仮想通貨マイニングとは?
目次
はじめに
マイニングの仕組み
マイニングは全ての仮想通貨で行われているのでしょうか?
プルーフ・オブ・ワーク (PoW)
仮想通貨のマイニング方法の違い
CPUマイニング
GPUマイニング
ASICマイニング
マイニングプール
まとめ
仮想通貨マイニングとは?
ホーム記事
仮想通貨マイニングとは?

仮想通貨マイニングとは?

初心者
Published Dec 6, 2018Updated Mar 22, 2022
8m

概要

仮想通貨のマイニングとは、ブロックチェーンのトランザクションを検証し、有効性を確認するプロセスを指します。また、新しい仮想通貨を発行するためのプロセスでもあります。マイナーが行う作業には膨大な計算資源が必要ですが、それがブロックチェーンネットワークの安全性を支えています。誠実、かつ成功したマイナーには、新しく発行された仮想通貨とトランザクション手数料が報酬としてお支払いされます。


はじめに

マイニングとは、ユーザー間で行われた仮想通貨のトランザクションを検証し、ブロックチェーンの公開台帳に追加するプロセスのことです。また、マイニングは、既存の循環供給に新しいコインを追加する役割も担っています。

マイニングは、Bitcoinのブロックチェーンが分散型の台帳として機能するための重要な要素の1つです。すべてのトランザクションは、中央集権的な管理者を必要としないピア・ツー・ピア・ネットワークに記録されます。この記事では、Bitcoinネットワーク上で行われるマイニングについて説明しますが、同じマイニングメカニズムを採用しているアルトコインでも同様のプロセスが実装されています。


マイニングの仕組み

新しいブロックチェーントランザクションが作成されると、メモリプールと呼ばれるプールに送られます。マイナーの仕事は、これらの保留中のトランザクションの有効性を検証し、ブロックに追加することです。ブロックとは、ブロックチェーンの台帳の1ページであり、そこには複数のトランザクションが (他のデータとともに) 記録されていると考えることができます。
具体的には、マイニングノードは、メモリプールから未確認のトランザクションを収集し、候補ブロックに組み入れる役割を担っています。その後、マイナーはこの候補ブロックを有効な確定ブロックに変換しようとします。しかし、そのためには複雑な数学的問題の解を見つけなければなりません。これには多くの計算能力が必要ですが、ブロックのマイニングに成功するたびに、マイナーは新たに作成された仮想通貨とトランザクション手数料からなるブロック報酬を得ることができます。マイニングのプロセスを詳しく見てみましょう。


ステップ1 - トランザクションのハッシュ化

ブロックをマイニングする最初のステップは、メモリプールから保留中のトランザクションを取り出し、 ハッシュ関数を使用して、1つずつ提出することです。データの一部をハッシュ関数にかけるたびに、ハッシュと呼ばれる固定サイズのアウトプットが生成されます。マイニングでは、各取引のハッシュは、識別子として機能する数字と文字の文字列で構成されています。トランザクションハッシュは、そのトランザクションに含まれるすべての情報を表します。
マイナーは、各トランザクションを個別にハッシュ化してリスト化する以外に、カスタムトランザクションを追加し、その中で自分自身にブロック報酬を送ります。このトランザクションは、コインベーストランザクションと呼ばれ、新しいコインを発行するためのものです。ほとんどの場合、コインベーストランザクションが最初に新しいブロックに記録され、その後、検証したいすべての保留中のトランザクションが続きます。

ステップ2 - マークルツリーの作成

すべてのトランザクションがハッシュ化された後、そのハッシュはマークルツリーと呼ばれるものに整理されます。ハッシュツリーとしても知られるマークルツリーは、トランザクションのハッシュをペアに整理し、ハッシュ化することで形成されます。その後、新しいハッシュはまたペアに整理され、もう一度ハッシュ化され、単一のハッシュが作成されるまでこのプロセスが繰り返されます。この最後のハッシュは、ルートハッシュ (またはマークルルート) とも呼ばれ、基本的には、そのハッシュを生成するために使用された以前のすべてのハッシュを表すハッシュです。

ステップ3: 有効なブロックヘッダ (ブロックハッシュ) の発見

ブロックヘッダは、個々のブロックの識別子として機能し、各ブロックがユニークなハッシュを持つことを意味します。新しいブロックを作るとき、マイナーは前のブロックのハッシュと候補ブロックのルートハッシュを組み合わせて、新しいブロックのハッシュを生成します。しかし、この2つの要素とは別に、ナンスという任意の数字を追加する必要があります。

そのため、候補ブロックを検証しようとすると、マイナーはルートハッシュ、前のブロックのハッシュ、ナンスを組み合わせて、ハッシュ関数にかける必要があります。その目的は、有効とみなされるハッシュを作ることです。

ルートのハッシュと前のブロックのハッシュは変更できないので、マイナーは有効なハッシュが見つかるまでナンスの値を何度も変更する必要があります。

有効であると判断されるためには、アウトプット (ブロックハッシュ) が、プロトコルによって決められたある目標値よりも小さいことが必要です。Bitcoinのマイニングでは、ブロックハッシュが一定数のゼロではじまることが必要です。これは、マイニング難易度(ディフィカルティ)と呼ばれています。

ステップ4 - マイニングされたブロックのブロードキャスト

先ほど見てきたように、マイナーはブロックヘッダを異なるナンス値で何度もハッシュ化する必要があります。つまり、マイナーは有効なブロックハッシュが見つかるまで、この作業を繰り返します。そして、有効なナンス値を見つけたマイナーは、自分のブロックをネットワークにブロードキャストします。他のすべてのノードは、ブロックとそのハッシュが有効かどうかをチェックし、有効であれば、新しいブロックをブロックチェーンのコピーに追加します。

この時点で、候補ブロックは確定ブロックとなり、すべてのマイナーは次のブロックのマイニングに移ることになります。時間内に有効なハッシュを見つけられなかったすべてのマイナーは、候補ブロックを破棄し、マイニング競争をまた1からやり直します。


マイニング難易度調整

マイニング難易度は、プロトコルによって定期的に調整され、新しいブロックが作成される速度が一定に保たれるようになっています。これにより、新しいコインの発行ペースが安定、かつ予測できるようになりました。難易度は、ネットワークに投入された計算能力 (ハッシュレート) の大きさに比例して調整されます。

そのため、新しいマイナーがネットワークに参加して競争が激化するたびに、ハッシュ化の難易度が上がり、平均ブロックタイムの減少を妨げられます。これに対して、多くのマイナーがネットワークを離れることになれば、ハッシュ化の難易度が下がり、新しいブロックをマイニングすることが難しくなります。これらの調整により、ネットワークの総ハッシュパワーに関わらず、ブロックタイムを一定に保つことができます。


2つのブロックが同時にマイニングされた場合はどうなりますか?

たまに、2人のマイナーが同時に有効なブロックをブロードキャストしてしまい、ネットワーク上に2つの競合するブロックが生成されてしまうことがあります。マイナーは、最初に受け取ったブロックをもとに、次のブロックのマイニングを開始します。これにより、ネットワークは2つの異なるバージョンのブロックチェーンに (一時的に) 分割されます。

これらのブロックの競争は、次のブロックがマイニングされるまで、競争しているどちらかのブロックの上に続けて行われます。新しいブロックがマイニングされると、その前にマイニングされたブロックが勝者となります。放棄されたブロックは、オーファンブロックステールブロックと呼ばれ、このブロックを選んでいたすべてのマイナーは、勝者のブロックのチェーンのマイニングに戻ることになります。


マイニングは全ての仮想通貨で行われているのでしょうか?

マイニング可能な仮想通貨の例としては、Bitcoinが最も人気があり定着していますが、すべての仮想通貨がマイニング可能というわけではありません。Bitcoinのマイニングは、Proof of Work(PoW)というコンセンサスアルゴリズムに基づいています。


プルーフ・オブ・ワーク (PoW)

Proof of Work (PoW) は、Satoshi Nakamotoによって作られたオリジナルのブロックチェーン・コンセンサスメカニズムです。2008年に発行されたBitcoinのホワイトペーパーで世界で初めて発表されました。一言で言えば、PoWは、ブロックチェーンネットワークが、第三者の仲介者を介さずに、分散した参加者全員のコンセンサスを得る方法を決定します。これは、悪質な行為者の意欲を削ぐために、かなりの計算能力を必要とさせることで実現しています。
これまで見てきたように、PoWネットワーク上のトランザクションは、マイナーによって検証されます。.マイナーは次のブロックをマイニングする権利を得るために、専用のマイニングハードウェアを使って複雑な暗号パズルを解くのを競います。有効な解を最初に見つけたマイナーは、トランザクションをブロックに入れ、それをブロックチェーンにブロードキャストして、ブロック報酬を受け取ります。

ブロック報酬に含まれる仮想通貨の枚数は、各ネットワークによって異なります。例えば、Bitcoinのブロックチェーンでは、成功したマイナーは、各ブロック報酬として、6.25 BTCとトランザクション手数料を得ることができます (2021年12月現在)。ブロック報酬のBTC枚数は、半減期の仕組みにより、210,000ブロックごと (約4年ごと) に半減していきます。


仮想通貨のマイニング方法の違い

仮想通貨をマイニングする方法は1つだけではないです。新しいハードウェアやコンセンサスアルゴリズムの登場により、機器やプロセスがどんどん新しくなっています。通常、マイナーは専用のコンピューターユニットを使用して複雑な暗号パズルを解きます。ここでは、代表的なマイニング方法の仕組みをご紹介します。


CPUマイニング

CPU (中央演算処理装置) マイニングでは、コンピュータのCPUを使用して、PoWで必要なハッシュ関数を実行します。Bitcoinの初期には、マイニングのコストや参入障壁が現在と比べて低かったです。マイニングの難易度は通常のCPUでも対応できたので、誰でもBTCのマイニングに挑戦することができました。

しかし、マイニングをする人が増え、ネットワークのハッシュレートが上昇するにつれ、CPUでは収益性の高いマイニングを行うのは難しくなっていきました。さらに、計算能力の高い専用のマイニングハードウェアが登場したことで、最終的にはCPUマイニングはほとんど不可能になりました。現在では、すべてのマイナーが専用のハードウェアを使用しているため、CPUマイニングはもはや有効な選択肢ではありません。


GPUマイニング

GPU (画像処理用演算プロセッサ) は、さまざまなアプリケーションを並行して処理するために設計されています。一般的にはゲームやグラフィックのレンダリングに使用されますが、マイニングにも使用されます。

GPUは比較的安価で、人気のASICマイニングハードウェアよりも柔軟性があります。アルトコインの中には、GPUでマイニングできるものもありますが、効率性はマイニングアルゴリズムと難易度に応じます。


ASICマイニング

ASIC (特定用途向け集積回路) は、単一の特定の目的を果たすために設計された集積回路です。仮想通貨では、マイニングのためだけに開発された専用のハードウェアのことを指します。ASICマイニングは高効率ですが、コストがかかります。

マイニングは競争です。マイニングで利益を得るためには、競争力のあるマイニングハードウェアが必要です。マイニング技術の最先端であるASICマイナーは、CPUやGPUに比べて1台あたりのコストが非常に高くなります。また、ASICの技術が次々と進化しているため、古いASICではすぐに採算が合わなくなり、買い替えが必要になることが多いです。そのため、ASICマイニングは電気代を除いても最もコストの高いマイニング方法の一つとなっています。


マイニングプール

ブロック報酬は最初に成功したマイナーに与えられるため、そもそも正しいハッシュを見つけられる確率は極めて低いです。マイニングパワーの割合が少ないマイナーは、自力で次のブロックを発見できる可能性はさらに低く、ほぼ不可能です。マイニングプールは、この問題に対する解決策を提供します。

マイニングプールとは、マイナーが資源 (ハッシュパワー) をプールして、ブロック報酬の獲得確率を高めるグループのことです。プールがブロックの発見に成功すると、マイナーは貢献した作業量に応じて報酬をプールの全員で均等に分配します。

マイニングプールは、ハードウェアや電気代の面で個々のマイナーにメリットがありますが、マイニングを独占することで、ネットワーク上で 51%攻撃が行われる懸念があります。


まとめ

仮想通貨のマイニングは、BitcoinをはじめとするPoWブロックチェーンにおいて、重要な役割を担っています。これにより、ネットワークの安全性を確保し、新しいコインの発行を安定させることができます。マイニングには一定のメリットとデメリットがありますが、最も分かりやすいのは、ブロック報酬で得られる潜在的な収益です。しかし、マイニングの利益は、電気代や市場価格など様々な要因に影響されます。利益が出るという保証はありませんので、仮想通貨マイニングに挑戦する前に、自分で調査を行って、すべての潜在的なリスクを評価する必要があります。