マイニング
前提知識
このページをよく理解するためには、まずトランザクション、ブロック、プルーフ・オブ・ワークについて読むことをお勧めします。
イーサリアムのマイニングとは
マイニングとは、現在廃止されているプルーフ・オブ・ワークのアーキテクチャで、イーサリアムのブロックチェーンに追加されるトランザクションのブロックを生成するプロセスのことです。
マイニングと言う言葉は、鉱山から金を探し当てることをたとえて付けられました。 金や貴金属が希少なように、デジタルトークンも希少であり、プルーフ・オブ・ワークのシステムで保有量を増やす唯一の方法がマイニングです。 プルーフ・オブ・ワークのイーサリアムでは、ETH の発行は唯一マイニングにより行われました。 ただしイーサリアムのマイニングは、金や貴金属と異なり、ブロックチェーンのブロックを生成、検証、発行、伝播することによってネットワークを保護する手段でもありました。
Ether のマイニング = ネットワークの保護
マイニングは、すべてのプルーフ・オブ・ワークのブロックチェーンの生命線をなします。 プルーフ ・オブ・ステークへの移行前は、イーサリアムのマイナー (ソフトウェアを実行するコンピュータ)は、時間と計算能力を使ってトランザクションを処理し、ブロックを生成していました。
マイナーが必要な理由
イーサリアムのような分散型システムでは、全員がトランザクションに同意する必要があります。 マイナーは多くの計算能力を必要とするパズルを解いてブロックを生成することで、これを実現し、攻撃からネットワークを保護していました。
以前は、コンピュータを使って誰でもイーサリアムネットワークでマイニング可能でしたが、 誰もが ETH のマイニングで利益を得られるわけではありませんでした。 多くの場合マイナーは専用のコンピュータハードウェアを購入し、安価なエネルギー源を入手する必要がありました。 平均的なコンピュータでは、マイニングに 関連するコストをまかなうのに十分なブロック報酬を得ることはほとんどありませんでした。
マイニング・コスト
- マイニング装置の構築と維持に必要なハードウェアの潜在的なコスト
- マイニング装置に電力を供給するための電気コスト
- マイニングプール利用の場合は、プールで生成された各ブロックごとにかかる一律の手数料が発生
- マイニング装置(換気、エネルギー監視、電気配線など)をサポートする設備の潜在的なコスト
さらにマイニングの収益性を詳しく確認するには、Etherscan(opens in a new tab)などが提供するマイニング計算機をご使用ください。
イーサリアムトランザクションのマイニング方法
- アカウントの秘密鍵を使って、トランザクションリクエストを書き込み、署名する。
- 次にノードからイーサリアムネットワーク全体にトランザクションリクエストをブロードキャストする。
- 新しいトランザクションリクエストを受けると、イーサリアムネットワークの各ノードがリクエストをローカルのメンプールに追加する(メンプールとはブロックのブロックチェーンにまだコミットされていな いすべてのトランザクションリクエストのリスト)。
- ある時点で、マイニングノードは数十または数百のトランザクションリクエストを獲得できるトランザクションフィーを最大化しつつ、ブロックのガスリミットを超えない方法でブロックに集約する。 次に、マイニングノードは下記を実施:
- 各トランザクションリクエストの有効性を確認し(つまり、署名を作成していないアカウントから Ether を送信していない、リクエスト形式が正しくないなど)、リクエストのコードを実行して、 EVM のローカルコピーの状態を変更する。 マイナーは、トランザクションリクエストごとにトランザクションフィーを報酬として自分のアカウントに支払う。
- ブロック内のすべてのトランザクションリクエストが検証され、ローカルの EVM コピー上で実行されると、潜在的なブロックに対するプルーフ・オブ・ワークの「正当性の証明書」の作成プロセスを開始する。
- 最終的に、マイナーは特定のトランザクションリクエストを含むブロックの証明書の作成を完了する。 その後、マイナーは証明書と新しい EVM 状態のチェックサムを含む、完成したブロックをブロードキャストする。
- 他のノードについては、新しいブロックを受け取り、 証明書を検証し、ブロック自体ですべてのトランザクションを実行する(ユーザーによって最初にブロードキ ャストされたトランザクションを含む)。 加えて、すべてのトランザクションの実行後の新しい EVM 状態のチェックサムが、マイナーのブロックによって要求された状態のチェックサムと一致することを確認する。 その時になって始めて、他のノードがブロックチェーンの末尾にこのブロックを追加し、新しい EVM 状態を正規の状態として受け入れる。
- 各ノードは、条件を満たしていないトランザクションリクエストのローカルのメンプールから、新しいブロック内の全トランザクションを削除する。
- ネットワークに新たに参加する新規ノードは、このトランザクションを含むブロックを含む、すべてのブロックを順にダウンロードする。 ローカル EVM コピーを初期化し(ブランク状態の EVM として開始)、ローカル EVM コピーの上でブロックですべてのトランザクションを実行するプロセスを実行し、各ブロックの状態チェックサムを検証する。
すべてのトランザクションは一度だけマイニングされますが(新しいブロックに追加され、初めて伝播される)、正規の EVM 状態を進める過程ですべての参加者によって実行・検証されます。 これは、信頼せず、確認するというブロックチェーンの主要な考え方を反映したものです。
ビジュアルデモ
マイニングとプルーフ・オブ・ワークのブロックチェーンに関する Austin の説明動画をご視聴ください。
マイニングアルゴリズム
イーサリアムメインネットでは、「Ethash」という 1 つのマイニングアルゴリズムのみが使用されました。 Ethhash とは、「Dagger-Hashimoto」として知られるオリジナルの研究開発アルゴリズムを受け継いだものです。
参考文献
関連ツール
- 上位のイーサリアムマイナー(opens in a new tab)
- Etherscan マイニング計算機(opens in a new tab)
- Minerstat マイニング計算機(opens in a new tab)