プロトコルとマイニングを学ぶための分析であり、投資または事業運営の助言ではありません。結果はランダムで、ネットワーク規則、難易度、手数料、プール条件、稼働率、機器、電力、資金調達、税務、市場価格に左右されます。予想収益やハッシュシェアは、ブロック、支払、利益を保証しません。
要点
Bitcoinマイニングとは、有効な候補ブロックを構築し、その80バイトヘッダーをSHA-256dで反復ハッシュして、数値がコンセンサスターゲット以下の結果を探す処理である。成功したマイナーはブロックを提案するだけである。無効な取引を有効にしたり、プロトコル外の真偽を決めたり、他人のコインを支配したりはできない。各フルノードが作業証明、ヘッダー、取引、スクリプト、使用済み出力、ブロック制限、許容coinbase額を独立検証する。
マイニングノードやプールは getblocktemplate などで候補データを得る。主なフィールドは version、previousblockhash、transactions、coinbasevalue、target、bits、height、weightlimit、sigoplimit である。テンプレートはポリシーで選ばれた出発点であり、掲載取引の必須採用や、変更したブロックの受理を保証しない。コンセンサス有効性、ローカルmempoolポリシー、手数料選択、プール規則は別の層である。
ハードウェアはヘッダーの変種を探索する。32ビットnonceを使い切ると、ソフトウェアはcoinbaseのextranonceを変えてMerkle rootを再構築し、許される範囲で時刻やバージョンも更新して新しい探索空間を作る。各ハッシュは独立試行である。互換ハッシュレートが増えれば期待成功頻度は上がるが、特定ブロックを予定したり期限内の成功を保証したりはしない。
ソロマイニングは有効ブロックの許容coinbase出力を全て受け取る一方、支払変動が大きい。プールは作業を集約し、容易なシェアターゲットで貢献を推定する。ネットワークターゲットも満たしたシェアだけがブロックになり得る。プールは支払変動を下げても、ネットワーク全体の期待発行量を増やさない。カストディ、テンプレート制御、シェア検証、PPSやPPLNSなどの債務には、別の相手方・集中リスクがある。
マイニングの分析手順
- 識別情報と権限を固定する。
chain、network、client version、ルール集合、bestblockhash、テンプレート提供者、プール接続先、受取主体、観測時刻を記録する。ノード、構築者、運営者、ファームウェア、施設、機器所有者を分ける。 - 候補選択を再現する。
mempoolとUTXO setをスナップショットし、取引有効性、依存関係、手数料、weight、署名演算、locktime、witness commitmentを検証する。候補を再構築し、fee rateをコンセンサスとみなさずポリシー選択を説明する。 - Coinbaseとヘッダーを照合する。 高さ別補助金、手数料合計、出力、commitment、前ブロックハッシュ、Merkle treeを検証する。可変の
nonce、coinbaseextranonce、Merkle root、time、version bitsを追跡し、制限超過テンプレートを拒否する。 - 探索と提出を検証する。 compact targetを復号し、ネットワークのバイト順とハッシュ規則で
block_hash <= targetを検査する。解を得たら全ブロックを再構成し、submitblockまたは実運用プロトコルで提出して受理・拒否証拠を残す。 - 独立検証と伝播を追跡する。 複数フルノードでヘッダー、取引、スクリプト、coinbase、chainwork検証を比較する。伝播、競合先端、stale・orphan結果、reorg処理を測る。証明発見と正規チェーン残留は別である。
- 報酬とプール会計を照合する。
coinbase、subsidy + transaction fees、プール料、準備金、pool target、network target、受理share、stale share、支払方式、成熟、最低支払、カストディ、相手方エクスポージャーを分ける。 - 採算と安全性をストレステストする。 実効レート、稼働率、効率、電価、冷却、人件費、ホスティング、保守、減価償却、資金、税、出力抑制、補助金、手数料、価格、難易度を示す。出塊変動、故障、価格・fee shock、難易度遅延、プール不履行、検閲、集中、reorgを試す。
成果物はブロック提案と計算探索の証拠である。有効性はノードが、どの有効分岐を採るかはfork choiceが、ターゲット変更は所定境界のdifficulty ruleが、必要承認深度はアプリケーションが決める。マイニングはこれらに関与するが代替しない。
計算例
1. Nonceは探索空間の全てではない
80バイトのBitcoinヘッダーには32ビットnonceがあり、2^32 = 4,294,967,296 通りある。200 TH/s なら、この数のヘッダーを試す時間はおよそ次のとおり。
4,294,967,296 / 200,000,000,000,000 = 0.0000214748 seconds
ここで仕事は終わらない。coinbase extranonceを変え、新しいMerkle rootを導出し、許可された他のフィールドも更新して次のnonce空間を作る。ヘッダーnonceを機器の全探索容量とみなすのは誤りである。
2. ソロ変動と電力費
ネットワークが 600 EH/s、実効マイナーが 200 TH/s なら簡略シェアは 200 TH/s / 600 EH/s = 0.0000333333%。1日 144 ブロックとすると期待値は lambda = 144 * 0.000000333333 = 0.000048 blocks/day、平均待機は 1 / 0.000048 = 20,833.33 days。ポアソン近似の日次ゼロブロック確率は P(0) = exp(-0.000048) = 99.9952001152% である。
3.5 kWの機器を1 kWh当たり0.06米ドルで動かす直接電力費は 3.5 kW * 24 * USD 0.06/kWh = USD 5.04/day。冷却、ホスティング、停止、修理、減価償却、資金、税は含まない。期待値は入金時点ではなく、低確率のソロ成功を日次債権として示してはならない。
3. Coinbase会計と成熟
高さに対応する補助金が 3.125 BTC、有効に含めた取引手数料が 0.42 BTC とする。簡略例でcoinbaseが作れる最大価値は 3.125 + 0.42 = 3.545 BTC。超過請求は無効で、過少請求は許されても価値を失う。
Coinbase出力は使用前にコンセンサス上 100 blocks の成熟が必要である。成熟前にstaleになり、後からreorgされる可能性もある。プール画面残高、未成熟coinbase出力、最終外部支払は、カストディと決済リスクが異なる請求権である。
4. プールシェアと支払仮定
同一難易度の受理シェアを仮定し、プール合計が 2,000,000、一人のマイナーが 50,000 なら、記帳割合は 50,000 / 2,000,000 = 2.5%。ブロック価値が3.545 BTC、プール料が 2% なら、例示分配額は 3.545 * (1 - 0.02) = 3.4741 BTC、比例配分は 3.4741 * 2.5% = 0.0868525 BTC となる。
プールターゲットがネットワークより 1,000 倍容易なら、受理シェアがネットワークターゲットも満たす簡略確率は 1 / 1,000。実会計では可変シェア難易度を正規化し、重複・staleを排除し、明示されたPPS、FPPS、PPLNS等の契約を適用し、プール支払の期待値とブロック条件付き収益を分ける。
リスクとレビュー上の誤り
プロトコル・テンプレート上の誤り
- マイナーが取引を有効にすると述べ、フルノードが候補を独立検証する点を外す。
- chain、network、fork、tip、client、template provider、poolの識別を混ぜる。
- mempoolやtemplateをコンセンサス状態、完全な取引集合、確定した将来ブロックとみなす。
- ancestor、descendant、weight、signature operation、lock、commitmentを無視して個別fee rateだけで選ぶ。
- subsidy height、included fee、coinbase output、witness commitment、Merkle rootを誤算する。
- 新しいtip後も古いprevious hash、target、許可外のtimeやversion範囲を探索する。
- encoding、endianness、algorithmを誤ってheader hashとtargetを比較する。
プール・運用上の誤り
- 受理pool shareをnetwork-valid blockと同一視し、difficultyを正規化せずshare数を使う。
- expected hash shareを保証されたblock、revenue、payment dateに変える。
- pool block shareを恒久的hardware ownershipとし、templateとpayment集中を無視する。
- stale・rejected share、latency、firmware、temperature、uptime、curtailment、failureを省く。
- payout method、fee basis、reserve、minimum、maturity、custody、withdrawal、default条件を無視する。
- 独立受理、伝播、正規選択、reorg確認前に発見ブロックをfinalとする。
- 認証、変更管理、事故対応なしでcredential、受取address、remote firmwareを再利用する。
経済・安全性上の誤り
- price、difficulty、fee、power、cooling、labor、depreciation、financing、taxなしでgross BTC期待値をfiat profitと呼ぶ。
- device efficiency、utilization、cooling、location、time、energy mixなしでhashrateから電力や排出を推論する。
- difficultyがhashrateへ即応する、または10分ブロックが時刻表どおり到着するとする。
- halvingがprice上昇、miner capitulation、security spending維持を保証するとする。
- majority hash powerが署名偽造、任意coin奪取、invalid inflationのnode受理を可能にするとする。
- 高いaggregate hashrateをpool、manufacturer、firmware、geography、energy、network、software集中がない証拠とする。
よくある誤解
- マイナーは好きな取引を有効として承認できる。 候補を選び並べるが、コンセンサス違反ブロックは誠実なフルノードが拒否する。
- Nonceだけが変更可能である。 ExtranonceはcoinbaseとMerkle rootを変え、timeと許可されたversion fieldも探索空間を広げる。
- プールシェアはブロックの一部分である。 容易なpool targetを満たす作業証拠であり、大半はnetwork targetを満たさずブロックにならない。
- 期待日収は保証された支払である。 発見はランダムで、支払時期はpool contract、maturity、counterparty履行にもよる。
- ハッシュレートが高ければ必ず儲かる。 share、difficulty、fee、price、efficiency、power、全費用が結果を決める。
関連トピック
出典
- Blockchain Technology Overview - NIST (参照日: 2026-08-19)
- Bitcoin: A Peer-to-Peer Electronic Cash System - Bitcoin.org (参照日: 2026-08-19)
- Bitcoin Developer Guide: Mining - Bitcoin Project (参照日: 2026-08-19)
- Bitcoin Developer Guide: Block Chain - Bitcoin Project (参照日: 2026-08-19)
- Bitcoin Developer Reference: Block Chain - Bitcoin Project (参照日: 2026-08-19)
- Bitcoin Core: miner.cpp - Bitcoin Core (参照日: 2026-08-19)
- Bitcoin Core: pow.cpp - Bitcoin Core (参照日: 2026-08-19)
- BIP 22: getblocktemplate - Fundamentals - Bitcoin BIPs (参照日: 2026-08-19)