94 / 736SV2

Stratum V2

マイナーとプールの通信、そして誰が取引を選ぶのか

Stratum V2 は、採掘機とプールが作業をやり取りする方法を定めます。通信を保護し、必要な構成がそろえば、マイナー自身がブロックに入れる取引を選べます。

公開された複数のプロトコル、つまりメッセージ交換の規則から成ります。基本の Mining Protocol が作業と結果を伝え、任意の Template Distribution と Job Declaration が独自のブロック案を使えるようにします。V2 接続だけでその機能が保証されるわけではありません。

Eva は Bitcoin の採掘専用装置である ASIC を持っています。複数のマイナーの作業を調整し、報酬を分配するプールに接続しました。採掘機は、取引をひとまとめにした新しいブロックを Bitcoin の履歴に追加できる計算結果を探します。機械が正しい課題を受け取り、結果が本当に選んだプールへ届く必要があります。いずれは、ブロックに入れようとする取引も自分で決めたいと考えています。Stratum V2 はこれらの参加者の通信を扱います。Mining Protocol が土台で、Template Distribution と Job Declaration はブロック資料の提供と独自の作業の合意に使う任意の部分です。そのため、V2 を掲げる二つのプールでも、利用できる機能は異なり得ます。 [1] [3]

Stratum V1 はマイナー同士の協力を容易にしましたが、通常の暗号化されていない接続では、途中でメッセージを読まれる余地がありました。取引を選ぶのも一般にはプールでした。2019 年、Braiins の Jan Čapek と Pavel Moravec は Matt Corallo らとともに Stratum V2 を発表しました。目指したのは、保護された効率的な通信と、マイナーの自主性を高めることです。仕様は公開され、開発はオープンなプロジェクトとして続いています。Bitcoin のブロック有効性に新しい規則を持ち込むものでも、収益増を自動的に約束するものでもありません。 [8] [6]

Eva とプールを結ぶインターネット経路上の第三者が、採掘メッセージをひそかに読んだり書き換えたりできてはいけません。V2 は、AEAD と呼ばれるメッセージの完全性確認を伴う暗号化を使います。仕様では、遠隔接続で最初に行う Noise の暗号学的な接続手続きが必須です。ローカルネットワークでは、この手続きの使用を任意にできます。クライアントは信頼できる経路で入手したプールの認証用公開鍵でサーバーを確認します。この公開鍵で、サーバーが自身の身元を証明するために使うデジタル署名を確認します。保護するのは転送部分です。プールには渡した情報が見えますし、暗号化はファームウェアの安全性、会計の正確さ、報酬の支払能力までは証明しません。 [2] [10]

Eva は必ずしも採掘機を買い替える必要はありません。Translation Proxy は、古い機械から Stratum V1 を受け取り、プール側へは V2 で通信できる仲介プログラムです。しかし後半の接続を保護しても、ASIC とプロキシの間が変わるわけではありません。そこは V1 のままで、別の保護が必要です。プロキシは複数の機械をまとめて扱い、同じ情報の繰り返し送信を減らすこともできます。プロトコルを変換するだけでは、Eva が取引を選んでいることにはなりません。追加機能とプールの協力が必要です。 [7] [8]

取引を選ぶには、まず何が有効で、どのブロックの後に新しいブロックをつなぐかを知る必要があります。Eva は Bitcoin の規則を独立して確認する自分のフルノードから、その情報を得られます。Template Provider はブロックのひな型を提供するソフトウェアです。ひな型は将来のブロックの下書きで、完成したブロックではありません。必要な機能を持つ Bitcoin Core や別のノードを利用できます。Template Distribution は getblocktemplate を繰り返し問い合わせる代わりに更新を送ります。NewTemplate と SetNewPrevHash がひな型と前ブロックへの接続を伝え、RequestTransactionData が取引データを要求し、SubmitSolution が見つかった解を返します。 [5]

Eva は Job Declarator Client を使います。これは彼女のひな型を受け取り、Job Declaration 対応プールと利用方法を合意するプログラムです。Full-Template モードでは AllocateMiningJobToken で作業識別子を取得し、DeclareMiningJob で取引を示し、必要なら ProvideMissingTransactions に応答します。その後、採掘サーバーへ SetCustomMiningJob を送ります。Coinbase-only モードは取引一覧を事前に開示せず、DeclareMiningJob も使いません。割り当てられた識別子と、ブロック報酬を含む特別な取引である coinbase の情報を使います。プールは提案を拒否できるため、代替接続も重要です。独自の取引選択は意思決定をより多くのマイナーへ分散できますが、プールの報酬支払義務はなくなりません。 [4]

ここまでの例はメッセージ名を覚えなくても理解できます。ただし、設定や開発では正確な形式が重要です。V2 は合意した機械向け表現、つまりバイナリでデータを送ります。メッセージのヘッダーは 6 バイトで、extension_type、msg_type、msg_length が拡張、メッセージ種別、内容の長さを示します。暗号学的な通信を確立した後、最初のプロトコルメッセージ SetupConnection で、プロトコル、バージョン、必要な機能を取り決めます。成功は SetupConnection.Success が確認します。サービスの V2 表記は、実際のプログラム同士の合意の代わりにはなりません。 [1]

チャネルは接続内の独立した採掘セッションです。別のブロックチェーンや決済チャネルではありません。Standard Channel はブロックデータの短い要約であるヘッダーに対する作業を割り当てます。Extended Channel では、仲介役が coinbase 取引の可変部分 extranonce を使い、より広い試行範囲を分けられます。Group Channel は複数チャネルへの一括配信を助けます。OpenStandardMiningChannel と OpenExtendedMiningChannel がそれぞれのセッションを開きます。理由は単純です。二台が全く同じ候補を試せば、同じ仕事に電力を使ってしまうからです。 [3]

プールは Eva の貢献を継続的に測る必要があります。Mining share は割り当てた難易度の基準を満たす結果です。大半の shares は、ブロックに必要な、より厳しいネットワークの基準には達しませんが、達するものもあります。NewMiningJob または NewExtendedMiningJob が仕事を渡し、SetNewPrevHash が前ブロックへの接続を有効にし、SetTarget がチャネルの基準を設定します。SubmitSharesStandard または SubmitSharesExtended が、作業識別子、連番、ヘッダーの可変データを含む結果を送ります。受理された結果は、まだウォレットへの支払いではありません。プールの報酬計算と Bitcoin の規則に基づくブロックの有効性は別問題です。 [3]

まず機器、ソフトウェア、選んだプールの対応を確認します。次に、どの通信区間が保護され、検証鍵がどこから来たか、安全な転送だけが目的か、それとも取引も自分で選ぶかを確かめます。後者には、動作する Template Provider、Job Declarator Client、対応するプール機能が必要です。遅延、拒否や期限切れの shares、エラーログ、障害時の動作を観察します。手順書は使用中のバージョンに合っていなければなりません。Stratum V2 は採掘の連携を改善できますが、安全な機器管理の代わりにはならず、フルノードが Bitcoin を検証する規則も変えません。 [6] [7]

理解を深めるには、この項目とあわせて次もお読みください Bitcoin, マイニング, Mining Pool, Braiins, Braiins Pool, ASIC Miner. 次の項目からも参照されています ASIC Miner, Mining Pool, Nonce, Marek「Slush」Palatinus.

DOC · 001Stratum V2 — Protocol Overview一次資料 DOC · 002Stratum V2 — Protocol Security一次資料 DOC · 003Stratum V2 — Mining Protocol一次資料 DOC · 004Stratum V2 — Job Declaration Protocol一次資料 DOC · 005Stratum V2 — Template Distribution Protocol一次資料 DOC · 006Stratum V2 specification repository一次資料 DOC · 007Stratum Reference Implementation libraries文書 DOC · 008Braiins — Past and future of mining protocols一次資料 DOC · 009Bitcoin Optech — Stratum V2 topic文書 DOC · 010Noise Protocol Framework文書 DOC · 011Galaxy Research — Future of Bitcoin mining protocols文書
改訂日: 一次資料を優先 · 投資助言ではありません