﻿---
title: "Bitcoinマイニング：ブロックテンプレート、プルーフ・オブ・ワーク、プール、採算"
description: "Bitcoinマイニングは候補ブロックを構築し、ネットワークターゲット以下のプルーフ・オブ・ワークを得るためSHA-256dヘッダー空間を探索する。テンプレート識別、取引とcoinbaseの有効性、nonceとextranonce探索、フルノード検証、伝播、ステールリスク、プールシェア、支払規則、難易度、エネルギー、採算を分けて分析する。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bitcoinマイニング：ブロックテンプレート、プルーフ・オブ・ワーク、プール、採算

> プロトコルとマイニングを学ぶための分析であり、投資または事業運営の助言ではありません。結果はランダムで、ネットワーク規則、難易度、手数料、プール条件、稼働率、機器、電力、資金調達、税務、市場価格に左右されます。予想収益やハッシュシェアは、ブロック、支払、利益を保証しません。

<a id="answer"></a>

## 要点

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などの債務には、別の相手方・集中リスクがある。

<a id="mechanism"></a>

## マイニングの分析手順

1. **識別情報と権限を固定する。** `chain`、`network`、`client version`、ルール集合、`bestblockhash`、テンプレート提供者、プール接続先、受取主体、観測時刻を記録する。ノード、構築者、運営者、ファームウェア、施設、機器所有者を分ける。
2. **候補選択を再現する。** `mempool` と `UTXO set` をスナップショットし、取引有効性、依存関係、手数料、weight、署名演算、locktime、witness commitmentを検証する。候補を再構築し、fee rateをコンセンサスとみなさずポリシー選択を説明する。
3. **Coinbaseとヘッダーを照合する。** 高さ別補助金、手数料合計、出力、commitment、前ブロックハッシュ、Merkle treeを検証する。可変の `nonce`、coinbase `extranonce`、`Merkle root`、`time`、`version bits` を追跡し、制限超過テンプレートを拒否する。
4. **探索と提出を検証する。** compact targetを復号し、ネットワークのバイト順とハッシュ規則で `block_hash <= target` を検査する。解を得たら全ブロックを再構成し、`submitblock` または実運用プロトコルで提出して受理・拒否証拠を残す。
5. **独立検証と伝播を追跡する。** 複数フルノードでヘッダー、取引、スクリプト、coinbase、chainwork検証を比較する。伝播、競合先端、stale・orphan結果、reorg処理を測る。証明発見と正規チェーン残留は別である。
6. **報酬とプール会計を照合する。** `coinbase`、`subsidy + transaction fees`、プール料、準備金、`pool target`、`network target`、受理 `share`、stale share、支払方式、成熟、最低支払、カストディ、相手方エクスポージャーを分ける。
7. **採算と安全性をストレステストする。** 実効レート、稼働率、効率、電価、冷却、人件費、ホスティング、保守、減価償却、資金、税、出力抑制、補助金、手数料、価格、難易度を示す。出塊変動、故障、価格・fee shock、難易度遅延、プール不履行、検閲、集中、reorgを試す。

成果物はブロック提案と計算探索の証拠である。有効性はノードが、どの有効分岐を採るかはfork choiceが、ターゲット変更は所定境界のdifficulty ruleが、必要承認深度はアプリケーションが決める。マイニングはこれらに関与するが代替しない。

<a id="example"></a>

## 計算例

### 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等の契約を適用し、プール支払の期待値とブロック条件付き収益を分ける。

<a id="risks"></a>

## リスクとレビュー上の誤り

### プロトコル・テンプレート上の誤り

- マイナーが取引を有効にすると述べ、フルノードが候補を独立検証する点を外す。
- 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集中がない証拠とする。

<a id="misconceptions"></a>

## よくある誤解

- **マイナーは好きな取引を有効として承認できる。** 候補を選び並べるが、コンセンサス違反ブロックは誠実なフルノードが拒否する。
- **Nonceだけが変更可能である。** ExtranonceはcoinbaseとMerkle rootを変え、timeと許可されたversion fieldも探索空間を広げる。
- **プールシェアはブロックの一部分である。** 容易なpool targetを満たす作業証拠であり、大半はnetwork targetを満たさずブロックにならない。
- **期待日収は保証された支払である。** 発見はランダムで、支払時期はpool contract、maturity、counterparty履行にもよる。
- **ハッシュレートが高ければ必ず儲かる。** share、difficulty、fee、price、efficiency、power、全費用が結果を決める。

<a id="related"></a>

## 関連トピック

- [Bitcoin](/ja/crypto/bitcoin/)
- [プルーフ・オブ・ワーク](/ja/crypto/proof-of-work/)
- [ハッシュレート](/ja/crypto/hashrate/)
- [難易度調整](/ja/crypto/difficulty-adjustment/)
- [チェーン再編](/ja/crypto/chain-reorg/)

<a id="sources"></a>

## 出典

- [Blockchain Technology Overview](https://doi.org/10.6028/NIST.IR.8202) - NIST (参照日: 2026-08-19)
- [Bitcoin: A Peer-to-Peer Electronic Cash System](https://bitcoin.org/bitcoin.pdf) - Bitcoin.org (参照日: 2026-08-19)
- [Bitcoin Developer Guide: Mining](https://developer.bitcoin.org/devguide/mining.html) - Bitcoin Project (参照日: 2026-08-19)
- [Bitcoin Developer Guide: Block Chain](https://developer.bitcoin.org/devguide/block_chain.html) - Bitcoin Project (参照日: 2026-08-19)
- [Bitcoin Developer Reference: Block Chain](https://developer.bitcoin.org/reference/block_chain.html) - Bitcoin Project (参照日: 2026-08-19)
- [Bitcoin Core: miner.cpp](https://github.com/bitcoin/bitcoin/blob/master/src/node/miner.cpp) - Bitcoin Core (参照日: 2026-08-19)
- [Bitcoin Core: pow.cpp](https://github.com/bitcoin/bitcoin/blob/master/src/pow.cpp) - Bitcoin Core (参照日: 2026-08-19)
- [BIP 22: getblocktemplate - Fundamentals](https://github.com/bitcoin/bips/blob/master/bip-0022.mediawiki) - Bitcoin BIPs (参照日: 2026-08-19)

Source: https://wiki.fcontext.com/ja/crypto/mining/index.mdx
