ビットコインminingproof-of-worktechnical

ビットコインマイニングの仕組み:ステップバイステップ技術解説

ビットコインマイニングの詳細な技術解説 — ブロックテンプレートの構築とトランザクション選択からSHA-256二重ハッシュ、難易度ターゲット、ナンス探索、ブロック伝播、マイニングプールの仕組み、ASIC進化史まで。

· 2分

ビットコインマイニングとは、新しいブロックをブロックチェーンに追加し、新しいビットコインを発行し、すべてのトランザクションの状態についてネットワークが中央機関なしに合意に達するプロセスです。これはビットコインを機能させるエンジンです。しかし、よく知られた「デジタルゴールドマイニング」という比喩の下には、精密で決定論的な計算プロセスがあり、詳しく理解する価値があります。

この記事では、マイナーが候補ブロックの組み立てを開始する瞬間から、そのブロックがネットワークに承認される瞬間まで、マイニングプロセスをステップバイステップで解説します。

ステップ1:ブロックテンプレートの構築

マイニングはハッシュ計算から始まるのではありません。ブロックテンプレートの構築 — 次のブロックにどのトランザクションを含めるかを決定し、マイナーがハッシュ計算するデータ構造を組み立てるプロセスから始まります。

メモリプールからトランザクションを取得

すべてのビットコインフルノードはメモリプール(mempool)を維持しています:ネットワークにブロードキャストされたが、まだブロックに含まれていない有効な未確認トランザクションの集合です。マイナーは新しいブロックの作業を開始する際、メモリプールから含めるトランザクションを選択します。

トランザクションの選択はランダムではありません。マイナーは経済的に合理的な行動者であり、ブロックのサイズ制約内で手数料収入を最大化するようにトランザクションを選択します。SegWitアップグレード以降、ブロックは400万ウェイトユニット(トランザクションの種類に応じて約1〜1.5MBの生データ)に制限されています。

実際には、トランザクションは手数料率(仮想バイトあたりのsatoshi、sat/vB)でソートされます。手数料率の高いトランザクションが先に含まれます。50 sat/vBを支払うトランザクションは10 sat/vBを支払うものより先に含まれます。この市場ベースの手数料メカニズムが、中央機関なしにビットコインの希少なブロックスペースを配分する方法です。

コインベーストランザクション

すべてのブロックには、最初のエントリとして正確に1つの特別なトランザクションが含まれなければなりません:コインベーストランザクションです。このトランザクションは入力を持たず(既存のUTXOを消費しない)、現在のブロック補助金スケジュールに従って新しいビットコインを生成します。

2026年現在、ブロック補助金はブロックあたり3.125 BTCです(2024年4月の半減期以降)。コインベーストランザクションの出力は、ブロック補助金にブロック内のすべてのトランザクション手数料の合計を加えたものです。

コインベーストランザクションにはまた、マイナーが最大100バイトのデータを埋め込める任意データフィールド(コインベースscriptSig)が含まれます。サトシ・ナカモトはジェネシスブロックのコインベースに「The Times 03/Jan/2009 Chancellor on brink of second bailout for banks」という見出しを含めたことで有名です。

マークルツリーの構築

マイナーがトランザクションを選択した後、マークルツリーを構築します — すべてのリーフノードがトランザクションのハッシュであり、すべての非リーフノードが2つの子のハッシュである二分ハッシュツリーです。このツリーのルートであるマークルルートは、ブロック内のすべてのトランザクションに対する暗号学的コミットメントである単一の32バイトハッシュです。

構築手順:

  1. 各トランザクションをハッシュ化(SHA-256d)してトランザクションID(txid)を取得
  2. txidをペアにする。奇数の場合は最後のものを複製
  3. 各ペアを一緒にハッシュして次のレベルを生成
  4. ハッシュが1つだけ残るまで繰り返す — これがマークルルート

ブロックヘッダーの組み立て

マイナーは6つのフィールドから80バイトのブロックヘッダーを組み立てます:

フィールドサイズ説明
バージョン4バイトブロックバージョン番号
前ブロックハッシュ32バイト最新の有効なブロックヘッダーのSHA-256dハッシュ
マークルルート32バイト選択されたトランザクションから計算されたマークルルート
タイムスタンプ4バイト現在のUnix時間
ビッツ(ターゲット)4バイト現在の難易度ターゲットのコンパクトエンコーディング
ナンス4バイト初期値0

この80バイトヘッダーがマイナーが繰り返しハッシュ計算するデータです。

ステップ2:ハッシュプロセス

SHA-256二重ハッシュ

ビットコインのプルーフ・オブ・ワークはSHA-256dを使用します:SHA-256ハッシュ関数を連続して2回適用します。

hash = SHA-256(SHA-256(block_header))

SHA-256は256ビット(32バイト)の出力を生成します。プルーフ・オブ・ワークを可能にするSHA-256の重要な特性は、一方向関数であることです:出力が与えられた場合、入力を試して確認する以外に計算する方法がありません。入力の小さな変更は出力の完全に予測不可能な変更を生み出します(雪崩効果)。

難易度ターゲット

マイナーの目標は、SHA-256dハッシュを256ビットの数値として解釈したとき、現在の難易度ターゲットよりも小さいブロックヘッダーを見つけることです。

概念的には、ターゲットはハッシュに必要な先頭ゼロビットの数を定義します。より低いターゲットはより多くの先頭ゼロが必要であることを意味し、ハッシュを見つけるのが難しくなります。

2026年現在、難易度ターゲットは約79〜80個の先頭ゼロビットを要求し、単一のハッシュ試行がこの条件を満たす確率は約2^80分の1 — 約10^24分の1です。

ナンスの反復

マイナーの探索プロセスは単純です:

  1. ナンスフィールドを0に設定
  2. 80バイトヘッダーのSHA-256dを計算
  3. 結果をターゲットと比較
  4. ハッシュがターゲット未満なら:有効なブロック発見
  5. そうでなければ:ナンスを1増加させて繰り返し

ナンスは32ビットフィールドで、2^32(約43億)の可能な値を提供します。現代のASICハッシュレートでは、単一のマイナーが32ビットナンス空間全体を1秒未満で使い果たします。

エクストラナンスと追加の探索次元

43億のナンス値が有効なハッシュを見つけられずに使い果たされると、マイナーは新しいハッシュセットを作るためにブロックヘッダーの別の要素を変更する必要があります:

エクストラナンス: コインベーストランザクションのscriptSig内のフィールド。エクストラナンスを増加させるとコインベーストランザクションが変わり、txidが変わり、マークルルートが変わり、ブロックヘッダーが変わります — 完全に新しい2^32のナンス値セットを試行できます。

実際には、現代のマイニングは3次元の探索空間で動作します:ナンス(内側ループ)、エクストラナンス(中間ループ)、タイムスタンプ/トランザクションセット(外側ループ)。

ステップ3:有効なブロックの発見

マイナーがターゲット以下のハッシュを計算すると、有効なブロックを見つけたことになります。このハッシュはプルーフ・オブ・ワークとして機能します — 特定の定量化可能な計算作業が費やされたという証拠です。誰でもブロックヘッダーを1回ハッシュして結果がターゲット以下であることを確認することで、この証明を即座に検証できます。検証にはマイクロ秒しかかかりませんが、証明を見つけるには数十億回の試行が必要でした。

この非対称性 — 生成は困難で、検証は容易 — がプルーフ・オブ・ワークをコンセンサスに有用にする根本的な特性です。

ステップ4:ブロック伝播

有効なブロックが見つかると、マイナーはできるだけ早くネットワークにブロードキャストします。速度が重要です:別のマイナーが同じ高さの有効なブロックを先に見つけ、そのブロックがより広く伝播すれば、遅いマイナーのブロックはオーファンブロック(より正確にはステイルブロック)となり、報酬を受け取れません。

コンパクトブロックリレー(BIP 152)

現代のビットコインノードは伝播時間を最小化するためにコンパクトブロックリレーを使用します。フルブロック(1MB以上)を送信する代わりに、ブロックヘッダーと短いトランザクション識別子のリストを送信します。受信ノードは自身のメモリプールに既にあるトランザクションとマッチングします。ほとんどの場合、ブロック伝播時間が秒単位からミリ秒単位に短縮されます。

ブロック検証

ブロックを受信したすべてのノードは独立して検証を行います:

  1. ヘッダー検証: ハッシュがターゲット未満か?前ブロックハッシュが正しいか?
  2. トランザクション検証: すべてのトランザクションが有効か?入力が未使用か?署名が正しいか?
  3. マークルルート検証: 計算されたマークルルートがヘッダーのものと一致するか?
  4. ブロックサイズ/ウェイト: ブロックが400万ウェイトユニットの制限内か?

すべてのチェックに合格した場合にのみ、ノードはブロックチェーンの自分のコピーにブロックを追加し、ピアに中継します。

ステップ5:難易度調整

ビットコインの難易度調整アルゴリズムは、ネットワーク上のハッシュパワーに関係なく、平均して10分ごとにブロックが生産されることを保証します。この調整は2,016ブロックごと(約2週間ごと)に行われます。

new_target = old_target × (2016ブロックのマイニング所要時間 / 20160分)

直近2,016ブロックが14日ではなく10日で採掘された場合、ブロックが速すぎるため、ターゲットが下がります(難易度上昇)。20日かかった場合、ターゲットが上がります(難易度低下)。調整は極端な変化を防ぐために、どちらの方向でも4倍に制限されています。

マイニングプール:集団ハッシュパワー

ソロマイナーがブロックを見つける確率は、ネットワーク全体のハッシュレートに占める割合に比例します。2026年にネットワークハッシュレートが700 EH/sを超える中、数千台のASICマシンを運用するマイナーでもネットワークのごく一部にすぎません。1 PH/sのマイナーは各ブロックを採掘する確率が約70万分の1であり、平均して約13.5年に1ブロックを採掘します。

この分散の問題がマイニングプールの誕生につながりました。多くのマイナーがハッシュパワーを結合し、報酬を比例配分します。

プールの仕組み

  1. プールオペレーターがすべてのプールメンバーにブロックテンプレートを提供
  2. 各マイナーはこのテンプレートの修正版(独自のエクストラナンス範囲)で作業
  3. マイナーはシェアを提出 — 実際のビットコイン難易度より低い難易度ターゲットを満たすプルーフ・オブ・ワーク
  4. いずれかのマイナーのハッシュが実際の難易度ターゲットも満たした場合、プールは有効なブロックをブロードキャスト
  5. ブロック報酬は貢献したシェアに比例してすべてのプールメンバーに分配

報酬スキーム

PPS(Pay Per Share): プールが実際にブロックを見つけたかどうかに関係なく、各有効シェアに対して固定額を支払う。

PPLNS(Pay Per Last N Shares): ブロック発見時の前後の期間に貢献したシェアに比例して支払う。

FPPS(Full Pay Per Share): PPSと同様だが、ブロック補助金だけでなくトランザクション手数料の推定分も含む。

集中化の懸念

2026年現在、上位4つのマイニングプールがネットワークハッシュレートの60%以上を支配しています。しかし、プールマイナーは自由にプールを切り替えることができます。Stratum V2プロトコルの開発により、個々のマイナーがプールオペレーターのテンプレートを受け入れる代わりに自分自身のブロックテンプレートを構築できるようになり、一部の集中化の懸念に対処しています。

ASICの進化:ハードウェア軍拡競争

ビットコインマイニングハードウェアは4世代にわたって進化してきました:

CPUマイニング(2009-2010)

サトシ・ナカモトは標準的なCPUで最初のビットコインブロックを採掘しました。当時のIntel Core i7は約10〜30 MH/sを達成できました。

GPUマイニング(2010-2013)

GPU(グラフィックスプロセッシングユニット)は並列処理アーキテクチャにより、SHA-256ハッシュでCPUの10〜100倍の性能向上を提供しました。

FPGAマイニング(2011-2013)

FPGA(Field-Programmable Gate Array)はGPUより優れたエネルギー効率を提供しましたが、高価でプログラミングが困難でした。

ASICマイニング(2013-現在)

ASIC(Application-Specific Integrated Circuit)はSHA-256ハッシュ専用に設計されたチップです。現代のASIC(2026年)はユニットあたり200〜300 TH/sのハッシュレートを達成し、テラハッシュあたり15〜25ワットを消費します。

主要なマイルストーン:

  • Bitmain Antminer S9(2016):14 TH/s、98 W/TH
  • Bitmain Antminer S19 XP(2022):140 TH/s、21.5 W/TH
  • Bitmain Antminer S21(2024):200 TH/s、17.5 W/TH
  • 最新世代(2026):250〜300+ TH/s、15 W/TH未満の効率

なぜプルーフ・オブ・ワークが重要なのか

プルーフ・オブ・ワークはしばしば「無駄」と批判されます。この批判はエネルギー支出の機能を誤解しています。マイニングで消費されるエネルギーは無駄にされているのではなく、特定量の物理的作業が行われたという偽造不可能な証明に変換されています。

  1. 客観的コスト: 有効なブロックの作成には実世界のリソース(電力)の支出が証明可能に必要です。このコストがシビル攻撃を防ぎます。
  2. 熱力学的ファイナリティ: 後続ブロックの下に埋もれたブロックを元に戻すには、後続ブロックの作成に使われたすべてのエネルギーを再支出する必要があります。
  3. 公正な発行: 新しいビットコインはネットワークを保護するために実際のリソースを費やす人々に配布され、物理的作業と通貨発行の直接的なつながりを作ります。

プルーフ・オブ・ワークはデジタル通貨を物理的現実に固定するメカニズムです。これなしには、ビットコインは運営者への信頼を必要とするただのデータベースに過ぎなくなるでしょう。

ブロック構造のより深い理解にはビットコインブロック構造を参照してください。マイニングの経済的影響についてはビットコイン半減期ビットコインとエネルギーを参照してください。

関連記事