暗号資産(仮想通貨)マイニングの仕組み

· 11 分で読めます

このガイドでは、暗号資産のマイナーが何を、なぜ行っているのかを説明します。トランザクションがどのようにブロックになるのか、ハッシュとノンスとは何か、難易度がどのようにブロックを予定どおりに保つのか、報酬はどこから来るのか、そしてなぜ多くの人がプールでマイニングするのかを取り上げます。全体を通して Blocknet を例にしているので、すべての数値は実際に確認できるものです。

暗号資産マイニングとは何ですか?

簡単な答え

暗号資産マイニングとは、プルーフ・オブ・ワークのブロックチェーンが新しいブロックを追加する方法です。マイナーは待機中のトランザクションをブロックにまとめ、そのブロックの難易度ターゲットを満たすハッシュを見つける競争をします。最初に見つけたマイナーがブロックをブロードキャストし、すべてのノードがそれを確認し、勝者は新たに生まれたブロック報酬を受け取ります。

マイニングは 2 つの役割を同時に果たします。トランザクションに順序を付けて、どの支払いが先だったかについて全員が合意できるようにすること、そして決まったスケジュールで新しいコインを発行し、誰かを信頼してコインを作ってもらう必要をなくすことです。Bitcoin が 2008 年にこの考え方を導入し、現在は Blocknet を含む多くのコインが使っています。2022 年以降の Ethereum のように、代わりにプルーフ・オブ・ステークを使うチェーンもあります。2 つの比較はプルーフ・オブ・ワークとプルーフ・オブ・ステークの違いをご覧ください。

ブロックには何が入っていますか?

ブロックは、トランザクションの集まりと、それを説明する短いヘッダーからなります。Blocknet のブロックヘッダーには 7 つのフィールドがあります。

フィールド 内容
バージョン プロトコルのバージョン
高さ チェーンにおけるブロックの位置
前のハッシュ 1 つ前のブロックの ID
マークルルート ブロック内のすべてのトランザクションのフィンガープリント
タイムスタンプ ブロックが作られた時刻
難易度 このブロックを見つける難しさ
ノンス マイナーが試行のたびに変える数値

前のハッシュのフィールドが、チェーンを作り出しています。各ブロックは 1 つ前のブロックを指しているので、過去のトランザクションを 1 つでも変えるとそのブロックのフィンガープリントが変わり、それ以降のすべてのつながりが壊れます。各ブロックの最初のトランザクションはコインベースで、ブロックを見つけたマイナーに報酬を支払うものです。

マイナーはどうやってブロックを見つけるのですか?

簡単な答え

マイナーはブロックヘッダーのハッシュを計算し、結果がネットワークのターゲット以下かどうかを確認し、そうでなければノンスを変えてもう一度試します。優れたハッシュ関数は出力を予測できないものにするので、勝つ唯一の方法は試行を重ねることです。ハッシュレートとは、1 秒あたりの試行回数のことです。

ハッシュ関数は、どんな入力でもランダムに見える固定長の数値に変換します。入力を 1 ビット変えるだけで、出力はまったく別のものになります。その出力を巨大な数値として扱い、ターゲット以下であればブロックは有効です。ターゲットが低いほど当たりのハッシュは少なくなり、平均して必要な試行回数が増えます。

Blocknet では、1 回の試行が Argon2id ハッシュ 1 回です。8 バイトのノンスがパスワード、ヘッダーの残りがソルトで、各ハッシュは 2 GiB のメモリを処理してから 32 バイトの結果を出します。マイナーはターゲット以下のハッシュを見つけると、ブロックをネットワークに送ります。すべてのノードはそのハッシュを 1 回計算し直して確認しますが、これは見つけるのにかかった作業のごく一部で済みます。

そのハッシュの各ステップと、なぜそれほど多くのメモリが必要なのかは Argon2id の解説で説明しています。

マイニング難易度とは何ですか?

難易度は、ターゲットを決める数値です。Blocknet ではターゲットは (2^256 − 1) を難易度で割った値なので、難易度はネットワーク全体が 1 ブロックを見つけるのに平均して必要なハッシュ数にほぼ等しくなります。

これを使えば、ネットワークの状況をすばやく読み取れます。Blocknet は 300 秒に 1 ブロックを目標としているので、ネットワークのハッシュレートはおよそ難易度 ÷ 300 です。たとえば、難易度が 6,000,000 なら、ネットワークは毎秒約 20,000 回のハッシュを計算していることになります。

ネットワークは、マイナーの増減があってもブロックが予定どおりに生成されるよう難易度を調整します。

LWMA は、1 つの異常なブロックが結果を大きく動かさないようにもしています。各ブロックの生成時間は最小 1 秒、最大 1,800 秒(目標の 6 倍)として計算されます。ブロックが 5 分より速く生成されれば難易度は上がり、遅ければ下がります。

マイナーはどうやって報酬を受け取るのですか?

各ブロックは、コインベーストランザクションで新しいコインを生み出します。Blocknet では、コインベースのアウトプットはちょうど 1 つで、金額はちょうどブロック報酬に等しく、マイナーが選んだアドレスに支払われます。ジェネシスブロックにはトランザクションが 1 つもなかったので、流通しているすべてのコインはマイニングされたものです。

報酬は公開されたスケジュールに従います。Blocknet の報酬は 1 ブロックあたり 723.25 BNT から始まってなめらかに減っていき、8,640 ブロックからなる 30 日の 1 か月ごとに 1 段階ずつ下がります。4 年後には発行量が約 1 億 BNT に達し、それ以降はすべてのブロックで 2 BNT の恒久的なテール報酬が支払われるので、マイナーには常にマイニングする理由があります。

マイニングで得たコインは、使えるようになるまで 60 ブロック(約 5 時間)待ちます。この待ち時間があるので、新しい報酬が使えるようになる前に、チェーンの一時的な分岐が解消されます。

なぜ多くのマイナーはプールに参加するのですか?

プールは多数のマイナーのハッシュレートを合わせ、グループとして頻繁にブロックを見つけ、各報酬をメンバーそれぞれが貢献した作業量に応じて分配します。ソロでは、小規模なマイナーはブロックを丸ごと見つけるまで数日から数週間待つこともありますが、プールなら同じハッシュレートで少額の支払いを安定して受け取れます。

計算するとその理由がわかります。Blocknet は 1 日 288 ブロックを生成するので、ソロで期待できる 1 日あたりのブロック数は 288 ×(自分のハッシュレート ÷ ネットワークのハッシュレート)です。あなたのマシンがネットワークの 1,000 分の 1 なら、平均して 1 日約 0.29 ブロック、つまり 3 日半に 1 ブロックを見つけますが、実際の間隔はブロックごとに変わります。

プールはシェアであなたの作業量を測ります。シェアとは、プールがあなたの接続用に設定した易しいターゲットを満たすハッシュです。すべてのシェアが報酬の取り分に数えられ、ネットワークの本来のターゲットも満たすシェアは本物のブロックなので、プールがそれをブロックチェーンに提出します。bntpool.com では次のようになっています。

自分のノードを運用していれば、ソロでマイニングして見つけたブロックをすべて自分のものにすることもできます。マイニングガイドで両方を説明しています。

マイニングの速さは何で決まりますか?

どのハードウェアが有利かは、ハッシュ関数で決まります。Bitcoin の SHA-256 はメモリをほとんど必要としないので、現在の Bitcoin のマイニングの大半は ASIC と呼ばれる専用チップで行われています。Blocknet は、ASIC に対抗するよう設計されたメモリハードな関数である Argon2id を選びました。ハッシュのたびに 2 GiB の RAM を埋めるので、メモリの容量とメモリ帯域幅が速度を決めます。

これにより、一般的なコンピューターでの計算が変わります。

seine で測定した最高の結果は AMD EPYC Zen 5 サーバー(EPYC 9R45、32 スレッド)の 49.4 H/s で、Apple M4 Max の MacBook Pro は 30.9 H/s に達します。テストしたすべての世代の結果はハードウェアガイドに、メモリハードなコインが一般的なプロセッサーに向いている理由は 2026 年の CPU マイニングのガイドにあります。

誰がチェーンの正しさを守っているのですか?

すべてのノードがすべてのブロックを確認します。ハッシュがターゲットを満たしていること、トランザクションが有効であること、報酬がぴったり正しいことです。確認に 1 つでも失敗したブロックは、どれだけ作業が費やされていても拒否されます。

2 人のマイナーがほぼ同時にブロックを見つけると、チェーンは一時的に分岐します。Blocknet のノードは、すべてのブロックの難易度の合計である累積作業量が最も多いチェーンに従うので、次のブロックがどちらかに追加されるとすぐに分岐は解消されます。ウォレットが承認数を数えるのはそのためです。Blocknet では 10 承認(約 50 分)で安全とみなされ、100 ブロックより深い再編成を行うノードはありません。

自分のコンピューターで試してみる

Blocknet のマイニングは 3 つのステップで始められます。アドレスを用意し、seine をダウンロードし、実行してデフォルトのプールである bntpool.com をそのまま使うだけです。seine はマイニングしながらスレッド数、CPU カーネル、メモリ配置を選ぶので、数分以内に最初のシェアが届くのを確認できます。

メモ

blocknetcrypto.com によると、Blocknet は 2027年2月16日 ごろに Faraday というネットワークアップグレードを予定しており、より軽量なプルーフ・オブ・ワークが導入される予定です。上のプルーフ・オブ・ワークの詳細は、Faraday 以前のネットワークについてのものです。seine は起動時と 12 時間ごとに新しいリリースを確認します。

よくある質問

暗号資産のマイナーは実際に何を計算しているのですか?

マイナーは、ノンスと呼ばれる数値を毎回変えながらブロックヘッダーのハッシュを繰り返し計算し、結果がネットワークのターゲット以下になるまで続けます。Blocknet では、1 回の試行が 2 GiB のメモリを使う Argon2id ハッシュ 1 回です。どのノンスが当たるかは誰にも予測できないので、ブロックを見つける唯一の方法は試し続けることです。

1 ブロックをマイニングするのにどれくらいかかりますか?

ネットワークごとに目標が決まっています。Bitcoin は 10 分に 1 ブロック、Blocknet は 5 分に 1 ブロック(1 日 288 ブロック)を目標としています。マイナーが参加したり離れたりしても難易度が調整されてそのペースが保たれるので、全体のハッシュレートがどうであれ、ブロック時間は目標に近い値に保たれます。

マイニングプールのシェアとは何ですか?

シェアとは、プールがあなたの接続用に設定した易しいターゲットを満たすハッシュです。シェアがあれば、ブロックを丸ごと見つけるのを待たなくても、どれだけ作業に貢献したかを証明できます。bntpool.com では、プールが接続ごとにシェアの難易度を調整して 5 分ごとに約 10 シェアになるようにし、ブロック報酬はシェアに応じて分配されます。

普通のコンピューターで暗号資産をマイニングできますか?

はい。プルーフ・オブ・ワークが一般的なハードウェア向けに設計されたコインならできます。Blocknet はメモリハードな Argon2id を使っているので、十分な RAM があればデスクトップ、ノートパソコン、Mac、サーバーでマイニングできます。マイニングスレッド 1 つにつき約 2 GB のメモリが必要で、seine はお使いのマシンに適したスレッド数を自動で計算します。