ビットコインマイニング確率

ハッシュレート、ネットワーク難易度、時間からビットコインのブロックを発見する確率を、リアルタイムのマイニングシミュレーション表示とともに推定します。

インタラクティブシミュレーションを読み込んでいます...

レッスン

理論 — ビットコインマイニング確率

プルーフ・オブ・ワークは、勉強のしようがない宝くじです。ブロックを追加するには、SHA-256 ハッシュが目標値を下回るヘッダを提示しなければならず、ヘッダを変えたときのハッシュは予測できないので、方法は当てずっぽうしかありません。以下はすべてそこから出てきます——期待試行回数に、1 回の試行にかかる時間を掛けたもの。

各記号の意味

D
難易度。目標領域がどれだけ小さいか、したがって 1 ブロックが何回の試行を要するか。このページではスライダーですが、実際のネットワークでは違います。
H
ハッシュレート、毎秒の試行回数。探索をどれだけ速く進むかを決めるだけで、それ以外は何も決めません。
E[T]
D · 2³² / H、期待待ち時間。予報ではなく平均です——下の一つ目の洞察が、まさにその違いを扱っています。
p
次の 1 秒でブロックが見つかる確率。1/E[T] ではありません。ステップ 4 を参照。

公式の導き方

  1. 秒ではなく、1 ブロックに要する試行回数を数えます。それが D · 2³² であり、そこには誰が試すかは出てきません。携帯電話でもデータセンターでも、必要な試行回数は同じです。
  2. 自分の試行速度で割ります。既定値では 160 × 10⁵ · 2³² / (800 × 10¹²) がおよそ 86 秒となり、表示は 1.4m と丸めます。
  3. 次にハッシュレートのスライダーを動かし、Expected Time がきっかり反比例で動くのを見てください。H を 2 倍にすれば待ち時間は半分。このページではそれが話のすべてで、そしてそこがビットコインには当てはまらない部分です。
  4. 毎秒の確率は注意して読んでください。表示は 1.157% ですが、1/86 は 1.164% です。近いけれども、行われている計算はそれではありません。計算されているのは 1 − e^(−1/E[T])。1 秒のなかには独立な試行が多数あり、その確率は足し算ではなく重ね合わせになるからです。

表示の読み方

スライダーは、ハッシュレートがブロックを買うのだと言います。Hashrate を 800 から 1600 へ動かせば、期待待ち時間はきっかり半分になります。これはこのページについては真で、ビットコインについては偽です。そしてこの二つの隔たりこそ、画面上で最も重要なものです。下の表は同じ式を実際の難易度で走らせます。ノートパソコンは 17 億年、ネットワーク全体は 10 分——ですが、むしろ最後の列を見てください。17 億年と 10 分が、678 TWh と 3.3 GWh です。待ち時間は 10¹⁴ の差があるのに電力にはそれがない。ハッシュレートが約分されて消えるからです。1 ブロックあたりのエネルギーは D · 2³² にハッシュ 1 回のジュール数を掛けたもの、ただそれだけなのです。

前提
どの試行も独立で当たりやすさが等しいこと——プルーフ・オブ・ワークがまさに成り立たせようとしているのがこれです。待っているあいだ難易度が動かないこと——ここではそうですが、ネットワークではそうではありません。そしてブロックを解いたマイナーがそれを保持できること。最後の点はただではありません。ネットワークに届くのが遅れたブロックは孤立しうるので、実際のマイナーの収入はこの式が約束する値をわずかに下回ります。またこのシミュレーションは、自身の注意書きにあるとおり、難易度とハッシュレートを約 100 万分の 1 に縮めています。見ているあいだにブロックが来るようにするためです。
成り立たない場合
難易度はここではスライダーですが、現実にはフィードバック制御です。2016 ブロックごとにネットワークは実際にかかった時間を測り、平均が 10 分に戻るよう D を動かします。つまりこのページが示す関係は、ビットコイン本体では逆向きに働きます。ハッシュレートを足してもブロックは速くなりません。2 週間ほどで難易度が上がり、10 分が戻ってくるだけです。ブロックあたりの報酬はプロトコルで決まっているので、ハッシュレートを増やしてもビットコインは増えません。同じ発行量をより多くの機械で分け合い、そのぶん電気を余計に燃やすだけです。だからこそ、エネルギーの数字はこのページのどの数学からも導けません。プロトコルが定めるのは 10 分と報酬です。3.3 GWh については何ひとつ定めていません。それを決めるのは、1 ブロックの価値と、今年のハードウェアの効率です。

期待時間は典型的な時間ではない 🖖

既定のスライダーでは表示はおよそ86秒ですが、これは平均であって予報ではありません。各ハッシュは独立な試行なので待ち時間は指数分布に従い、指数分布の中央値は平均の ln 2 倍にすぎません。ここでは約60秒です。したがってブロックの約63%は「期待」より早く到着し、平均は薄い裾に支えられています。37%は平均より長くかかり、5%は3倍以上かかります。シミュレーションを開始してイベントログを読んでください。各ブロックの実際の時間が期待時間の横に表示されます。短い待ち時間が件数を支配し、少数の長い待ち時間が平均にすべての損害を与えているのが分かります。

採掘はレースではなく宝くじ 🖖

ハッシュ計算のひと試行は、当たる確率が天文学的に低い宝くじの一枚に等しく、目標値を下回るハッシュが「当たり番号」です。ブロックに向けて「作業を積み上げる」ことはできず、ハッシュレートを増やして毎秒より多くのくじを買うだけです。次のブロックを見つける確率はネットワーク全体のハッシュレートに占める自分の割合にほぼ等しく、全体の1%の計算力を持つ採掘者は長期的に約1%のブロックを獲得します。

32ビットのnonceは数マイクロ秒で尽きる 🖖

ビットコインのブロックヘッダーには32ビットのnonceしかなく、値は約4.29 × 10⁹(2³²)通りです。100 TH/sの最新ASICはこの範囲全体をわずか約43マイクロ秒で走査してしまい、現在およそ10²³回のハッシュを要するブロックを見つけるにはくじが少なすぎます。そこで採掘者はコインベース取引のextra-nonceやタイムスタンプを変えて新しいヘッダーを次々に生成し、探索空間を広げます。

大きさの感覚

本物のブロックを1つ見つけるのに必要なもの

上のスライダーは縮尺模型なので、「難易度 160」は、あなたが電話なのか惑星なのかを何も語りません。この表は同じ式を本物のビットコインで走らせます。難易度 1.262 × 10¹⁴、ネットワークのハッシュレートは 900 EH/s 前後——2026 年 8 月の水準です。最後の列は、各マシンの待ち時間に、待っている間の消費電力を掛けたものです。

採掘する主体 ハッシュレート 1ブロックあたりの期待待ち時間 そのブロック 1 個分の電力
ノートPCのCPU 10 MH/s 1.7 十億年 678 TWh
ゲーム用GPU 500 MH/s 34 百万年 96.4 TWh
マイニングASIC 1台 200 TH/s 86 年 2.6 GWh
マイニングプール 50 EH/s 3.0 時間 3.3 GWh
ビットコイン・ネットワーク全体 900 EH/s 10.0 分 3.3 GWh

注目すべき点が三つあります。スライダーはここまで届きません——このツールの最も厳しい設定でも、本物のビットコインより約 126 万倍やさしいのです。ブロック生成を目で追えるよう、模型は意図的に縮められています。最下行は測定値ではありません。難易度は 2016 ブロックごとに、ちょうど 10 分になるよう再調整されます。この表がもっともらしいだけでなく算術的に正しいと分かるのは、そのためです。そして最後の列は真ん中の列に従いません。待ち時間は 10¹⁴ の幅に及びますが、電力はそうなりません。ハッシュレートが約分されて消えるからです——ASIC 一台とネットワーク全体が、1 ブロックあたり 25% 以内の差で並びます。残るのは効率だけであり、ノートパソコンの値が ASIC の 257,000 倍になるのはそのためです。両者のテラハッシュあたりジュール数の比、ちょうどその値です。

全プロセスの詳細解説

  1. ディフィカルティ160に対する800 TH/sのブロック待機時間 5 ステップ

    800 TH/s のハードウェアが難易度 160 に対して計算を行っており、難易度スライダーは 10⁵ 単位でカウントしている。 ネットワークがブロックを待つ時間を求め、次に任意の 1 秒間にブロックが生成される確率を計算し、さらに「期待時間」がマイナーが実際に体験する時間と言えるかどうかを考察せよ。

    1. 難易度の 1 単位は平均して 2³² 回のハッシュを要するため、難易度 160 は 1.6×10⁷ 単位となり、1 ブロックあたり 6.872×10¹⁶ 回のハッシュとなる。この数値にハードウェアは一切登場しない。これはターゲットのみに固有の性質である。

    2. ハードウェアが毎秒提供する処理能力で割る。85.9 秒となり、パネル上では四捨五入されて 1.4 m と表示される。

    3. 次は 1 秒あたりの確率であるが、一見明白に見える答えは誤りである。1 秒間で 8×10¹⁴ 回の試行が行われ、それぞれが 1/(6.872×10¹⁶) の確率で有効となるため、その 1 秒間に得られる解の期待数は 0.011642 となる。これは個数であって確率ではない。これらハッシュのうち 2 つが同時に適合することを妨げるものは何もないからである。

    4. 代わりに、8×10¹⁴ 回の試行のすべてが失敗する確率を求める。p が極めて小さいため、(1 − p) をその乗数まで累乗すると e−1/85.9 に収束し、パネルにはその余事象である 1.157% が表示される。ステップ 3 との 0.007 ポイントの差は、1 秒間に 2 つのブロックを生み出す場合に起因しており、あちらでは 2 回分、こちらでは 1 回分としてカウントされている。

    5. 同じ指数関数が、別の問いにも答えてくれる。t 秒経過後もまだ待っている確率は e−t/85.9 である。これを 1/2 と置くと、待ち時間の中央値は 59.5 秒と導き出され、平均を実に 26 秒下回る。

    解答

    パネルには期待時間 1.4 m と毎秒 1.157% の確率が表示され、1 つの指数関数がその両方をもたらしている。 平均は典型的な待ち時間ではない。63.2% のブロックは「期待」時間より前に到着し、4.98% はその 3 倍を超える 257 秒以上を要する。マイニングが不公平に感じられる理由は、その条件付き確率にある。ブロックが出ないまま 5 分間計算を続けたリグも、たった今電源を入れたリグも、次の 1 秒間で直面する確率はまったく同じ 1.157% である。なぜなら e−(s+t)/85.9 を e−s/85.9 で割ると e−t/85.9 となり、s の形跡はどこにも残らないからである。どんなマイナーであれ「そろそろ当たる順番だ」ということはない。パネルの連続失敗カウンターの数値は増えていくが、それがカウントしている確率自体はそれを全く気にも留めていない。

  2. 難易度 850(300 TH/s を 10 人のマイナーで等分) 5 ステップ

    難易度 850 に対して 300 TH/s、そして 10 人のマイナーがそのハッシュレートを均等に分担している。 ネットワークのブロック時間を求め、次にある 1 人のマイナーが 1 日で経験する結果を計算せよ(これらは同じ問いではない)。

    1. 同じ方程式で、より大きな数値:1 単位あたり 2³² 回のハッシュである 8.5×10⁷ の難易度単位は 3.651×10¹⁷ 回のハッシュとなり、毎秒 3×10¹⁴ 回の処理により 1217 秒でこれらを消化する。パネル上では四捨五入されて 20.3 m と表示される。

    2. 1 秒あたりの確率はそれに伴って小さくなり、0.082% となる。どちらの行にも含まれていないものに注目されたい。それはマイナーの数である。リグが 10 台であろうと 80 台であろうと、チェーンのブロック生成率は総ハッシュレートと難易度によって固定されているため、どちらの表示値もマイナーの台数には依存しない。

    3. しかし、1 人のマイナーに関しては、それがすべてを決定づける。10 人のそれぞれに均等な 30 TH/s を割り当て、それを同じ公式に入力すると、自分が獲得するブロック間の時間は 12,169 秒、すなわち 3.38 時間となる。

    4. 1 日は 86,400 秒である。これは、あなた個人にとって 7.10 ブロック、10 人全員で 71.0 ブロックに相当する。

    5. ブロックは固定のレートで独立して生成されるため、1 日の個数はポアソン分布に従い、その標準偏差は平均の平方根となる。あなたの場合、期待値 7.10 ブロックに対してばらつきは √7.10 = 2.66 ブロックとなる。

    解答

    7.10 に対する 2.66 ブロックのばらつきは ±37.5% であり、10 人のマイナー全員にわたる同じ 1 日では 71.0 ブロックで僅か ±11.9% となる。 同じチェーン、同じハッシュレート、同じ方程式であるが、すべての差は σ/μ = 1/√μ という関係に由来し、全体のフローの 1/10 を取ると、相対的な運の偏りは √10 = 3.16 倍になる。これこそがプーリング(マイニングプール)の背景にある算術である。共同で発見したすべてのブロックを分配することに合意した 10 人のマイナーは、追加のハッシュ計算を 1 回も増やすことなく、日々の収入の 37.5% の変動を 11.9% の変動へと引き換えている。上記のパネル表示のどちらにもマイナー数は入っておらず、それは完全に正しい。期待時間はチェーン全体の性質であり、リスクは自分が所有するその一部の性質だからである。

参考文献 (5)

例題

  • 簡単 - 低難易度(20)、2000 TH/s → ブロックが頻繁に見つかる——広いターゲット領域
  • バランス - バランスの取れた既定値:800 TH/s、難易度160 → 中程度のブロック生成頻度
  • 難しい - ハードモード:難易度850、300 TH/s → 極小のターゲット、ブロックは非常に稀にしか見つからない