ASIC Miner は、ビットコイン採掘用に設計されたチップを備える装置です。候補ブロックのヘッダー、つまりブロックの基本情報をまとめたデータの数値的な指紋を繰り返し計算し、採掘の条件を満たす結果を探します。性能が高いほど毎秒の試行回数は増えますが、報酬が保証されるわけではありません。電源、冷却、制御ソフトウェア、採掘する仕事の供給元も必要です。
アンナはパソコンの横にある小さな採掘装置を見て、自分のノートパソコンでも同じことができないかと考えます。必要な計算は普通のパソコンでもできます。しかし ASIC はその仕事専用に作られているため、一般に同じエネルギーでずっと多くの試行をこなせます。ASIC は Application-Specific Integrated Circuit、特定用途向けの集積回路の略です。日常的には、そのチップを使った採掘装置全体も ASIC と呼びます。 ビットコインの採掘装置は SHA-256 を使い、条件に合う数値的な指紋、つまりハッシュを探します。正解を先に知っているのではなく、入力を変えて試し続けます。この特化によって、一般的な CPU、画像処理用の GPU、プログラム可能な回路 FPGA は、競争力のある採掘から次第に置き換えられました。ただし SHA-256 採掘チップを簡単に汎用パソコンへ作り替えることもできません。 [6] [8]
100 TH/s の性能で 3,000 W を消費する装置を考えましょう。特定製品の仕様ではなく、説明用の数字です。TH/s は毎秒何兆回のハッシュ計算をするかを表すので、この装置は毎秒100兆回試します。この速度を Hashrate と呼びます。一方、電力メーターが記録するのは電力量です。3 kW を一定に消費すれば、24時間で72 kWhになります。この量に1 kWhあたりの料金を掛けて電気代を求めます。 装置の比較には J/TH、つまり1兆回の試行に必要なエネルギーをジュールで表した値も使います。この例では 3,000 / 100 = 30 J/TH です。小さいほど同じ仕事に必要なエネルギーが少なくなります。ただし測定方法や設定をそろえる必要があります。チップ単体の数値と、コンセントで測った装置全体の消費をそのまま比べることはできません。 [7] [8]
装置が使ったエネルギーは、ほぼすべて最終的に熱になります。そのためアンナは置き場所を考える際、排熱や、構造によってはファンの音も考慮する必要があります。小さな家庭用装置と産業用マシンでは条件が大きく異なります。ASIC という名前だけでは、大きさも消費電力も分かりません。 内部にはチップのほか、電源、電圧調整回路、制御装置、採掘チップを載せた基板である hashboards があります。ファンや液冷装置が熱を外へ逃がします。ほこり、ファンの故障、不適切な電源、無理な設定は、計算エラーや停止につながります。メーカー広告の最大値だけでなく、装置全体の運転を見ることが大切です。 [7] [8]
Mining Pool に接続すると、アンナの装置は採掘者をまとめるサービスから仕事を受け取ります。プールには独立したソフトウェアと運営者がおり、チップの一部ではありません。単独採掘なら、対応する仕組みをアンナ側で用意します。装置の制御ソフトウェアである firmware が、チップに仕事を渡し、結果を送り返します。 まず誰かが取引をまとめ、Block Template と呼ばれるブロック案を作る必要があります。Full Node や他のテンプレート提供者が担当します。Full Node は、ビットコインのルールに従ってブロックと取引を独立に検証するプログラムです。BIP22 は getblocktemplate というインターフェースを、BIP23 はプール向けの拡張を記述しています。Stratum V2 は、仕事を配る Mining Protocol、独自の仕事を提案する Job Declaration、テンプレートを供給する Template Distribution を分けています。採掘者が取引を選べるかどうかは構成と対応機能によります。チップ自身が取引を選ぶわけではありません。 [1] [2] [4] [5] [9]
アンナの画面には受理された shares が表示されますが、装置がビットコインのブロックを見つけたわけではありません。Share は、プールが設けた緩い条件を満たす計算結果です。行った仕事を統計的に示し、プールは独自の支払いルールに従ってそれを計算に使います。Share は別のコインでも、自動的にブロックの一部分になるものでもありません。 ネットワーク全体の厳しい条件まで満たす結果は、はるかにまれです。その結果があればブロックを提出できますが、他のすべての検証にも通らなければなりません。Share の難易度を変えると報告頻度が変わります。それだけで装置の実際の性能が上がったり、ネットワークの採掘難易度が変わったりすることはありません。 [4] [6]
見つけた結果はネットワークへの提案であり、他の参加者への命令ではありません。Full Node はビットコインのルールを自分で検証し、強力な採掘者のブロックでも無効なら拒否します。ASIC を使っても、上限を超える報酬、権限のない他人のコインの支出、別のルールの強制はできません。 一方、運営者には重要な選択があります。使う firmware、接続するプール、そして対応環境ではブロックに含める取引です。運転中は装置の表示とプールによる長めの期間の推定値を比較し、拒否された shares、温度、実際の消費電力も確認できます。プール推定値の短期変動だけで故障とは判断できません。 [5] [10]
同じ採掘装置2台でも経済的な結果は変わります。一方は冷却が十分で電気代も安く、もう一方は停止が多く電気代も高いかもしれません。購入費、機器の減価、プール手数料、ビットコイン価格、ネットワーク難易度、採掘したブロックの取引手数料も影響します。技術的な効率は投資回収の約束ではありません。 専用化により、チップ製造や大規模施設の運営にも高い能力が求められるようになりました。採掘の集中を考える際は、チップメーカー、装置の所有者、設置場所、プールを区別する必要があります。あるプールの割合が大きくても、接続する装置をすべて同じ会社が所有しているとは限りません。 [6] [8]
周波数はチップの動作速度を決め、電圧は計算の安定性を支えます。製造時に電気的性質の小さな差が生じるため、同じ型のチップでも適切な設定は異なり得ます。Firmware がチップや基板ごとの設定を探す仕組みを Autotuning と呼びます。 周波数を下げ、電圧を適切に調整すると、全体の Hashrate が減っても J/TH が改善することがあります。逆にオーバークロックは性能を上げる一方、それ以上の割合で電力や熱を増やす場合があります。結果は機器、冷却、設定次第です。到達可能な最高性能が、長期運転に最適とは限りません。 [7]
計算の基になるのは80バイトのブロックヘッダーです。ブロックの基本情報をまとめたもので、バージョン、前のブロックのハッシュ、取引をまとめる Merkle Root、時刻、符号化された難易度の目標 nBits、32ビットの Nonce フィールドが入っています。SHA-256(SHA-256(header)) は SHA-256 を2回適用するという意味で、header はこのヘッダーを指します。 計算結果のハッシュは数値として読み取ります。必要な作業証明を満たすには目標以下でなければなりません。式では hash ≤ target です。変化しない入力部分の中間結果を再利用して高速化することはできますが、ノードが確認するのは結果と正しい目標であり、メーカーの回路配置ではありません。他のブロック有効性ルールも引き続き満たす必要があります。 [6] [10]
Nonce には2^32通りの値があります。高速な装置はすぐに試し終えるため、システムは他のデータも変える必要があります。Extranonce は、報酬を含む特別な最初の取引 Coinbase Transaction 内の補助値です。それを変えると取引と Merkle Root が変わり、次の計算の入力も変わります。 時刻フィールド nTime を許容範囲内で変えたり、適切なバージョンビットを使ったりする方法もあります。BIP320 提案は一部のビットを一般用途に確保する方法を記述していますが、ネットワークのルールを無視する許可ではありません。Stratum V2 は、装置が同じ候補を無駄に試さないよう仕事を分配することを求めます。こうした仕組みは新しい試行を供給するためのもので、1ブロックの報酬を増やすものではありません。 新しい提案 BIP323 は BIP320 を置き換え、この用途に24ビットのバージョン領域を確保しようとしています。現在の Stratum V2 仕様はすでに BIP323 を参照していますが、BIP323 の状態は依然として Draft、つまり草案です。提案の公開だけでビットコインのルールが変わるわけではありません。 [3] [4] [11]
理解を深めるには、この項目とあわせて次もお読みください マイニング, Hashrate, SHA-256, Block Header, Nonce, Extranonce. 次の項目からも参照されています Mining Pool, Hashrate, Nonce, Braiins.