マイニングの話題になると、少なくともここ数年は規制や検閲という部分に関する関心が高まっている実感があります。マイナーがマイニングプールに接続する現状ではプール側が検閲を行えるのではないか、いくつかの大手マイニングプールが検閲を行うと実質的にネットワーク全体が検閲をしているのと同じ状況にならないか、といった疑問です。

ビットコインの検閲耐性はマイニングプール間、マイナー間の競争によってこれまで守られてきました。経済合理性を欠く検閲行為は検閲をしないマイナーへの報酬増加に繋がり、マイナーは検閲を行わないプールへと移動することが予想できます。これ自体はかなり強力な理屈で、ビットコインにおけるProof of Workのイノベーションの1つです。

他方、マイニングプールが大きな影響力を持っていることを認識し、その影響力の根源であるブロックテンプレートの作成を個別のマイナーも行えるようにしようという発想もあります。時折話題に上がるStratum V2プロトコルにそのような機能が盛り込まれています。

果たしてStratum V2プロトコルはマイニングプールの影響力を押さえることができるのか、それともその部分は誇大広告なのでしょうか。

Stratum V2のサイトはこちら

マイナーとマイニングプールの関係

ビットコインのマイニングについて考えるとき、マイナーとマイニングプールの関係を押さえることは非常に重要です。なぜなら今日においてプールを利用しないマイニングは非常に珍しく、またそれぞれが異なる役割を分担する事業であるためです。

「マイナー」とはASICなどの専用機材と電力を用意してマイニングという言葉から連想されるハッシング競争を行う主体とすると、「プール」は複数のマイナーが協力して収益を安定化させる組合のようなものです。一般的にブロックの生成を行っているのはマイニングプールであり、マイナーは自己の判断でマイニングプールを切り替えることができます。

一般的には地理的に近い(通信の遅延が少ない)接続先サーバーを用意しているプールに接続しますが、ASICのファームウェア最適化など付加価値を提供しているプールも選べます。

大手のマイニングプール2~3社でビットコインのハッシュレートの過半数が取れてしまう!という話題が定期的に上りますが、マイニングプールが悪意ある行動や経済合理性のない行動を取るとマイナーの信用を失ってしまい、マイナーが離脱するという結末が見えているためか現時点ではマイニングプールによる攻撃例はありません。

ビットコインはその規模の大きさからも51%攻撃で儲けるのが難しい通貨でもあります。

したがって、マイナーとマイニングプールは主従関係というよりはビジネスパートナーであり、マイニングプール間にも競争原理が働いています。このことからこれまでプールに起因する大きな問題は起こってきませんでしたが、昨今は競争原理よりも強力な主体からの圧力が高まってきています。そう、アメリカを始めとする各国政府や国際機関による金融規制です。

Stratum V2の使い道

ビットコインは通貨である以上、送金手段でもある必要があります。もしも大手のマイニングプールに圧力がかかって自由に送金できなくなったら問題です。

そこでStratum V2はマイニングプールがマイナーに採掘させるブロックの内容を検閲することができてしまう問題への対策として頻繁に取り上げられますが、実はそれ以外にも現行のStratum V1プロトコルを改善する部分も多数あります。

というのも、Stratum V2を採用しても必ずしもマイナーが自身でノードを用意し、ブロックテンプレートを作成する必要はないためです。むしろ他にも以下の機能が追加されており、これらを目当てに導入が進む可能性が高いと考えられます:

・ネットワーク面での効率化

・手柄を盗む中間者攻撃への対策 (通信の暗号化)

・プロトコルのより厳密な定義 (プロキシの仕様など)

逆に独自にブロックテンプレートを作成する機能は比較的ニッチで、もしマイニングプールが経済合理性に反する検閲を行う場合にのみ役立つことになるでしょう。もしプールが作成してくれるのであればマイニングのオペレーションがいくらか単純化できるためです。

導入の状況

さて、Stratum V2は従来のStratumと比較して長所がいくつかあることがわかりました。実際にマイニングプールにおいてStratum V2に対応している割合はどれくらいなのでしょうか?

実はまだリファレンス実装であるSRI (Stratum Reference Implementation)が完成しておらず、実用に耐えるレベルのものがリリースされるのにあと半年ほどかかると見込まれているようです。Stratum V2を強く推進しているBraiins Pool (Slush Pool)のみが独自に実装したものを部分的に導入していますが、各マイナーがトランザクションを選択するという機能については未実装だそうです。

Braiins Pool自体も総ハッシュレートの約1.5%という比較的小さなプールなので、Stratum V2の導入はまだまだ始まってすらいないことがよくわかります。ただしFoundryUSAなどの大手もStratum V2自体は支持している(開発に資金を提供している)ので、数年スパンで見ると大手プールも順次対応していく可能性が高いと予想できます。

ちなみにBraiins / Slushpoolは2010年に誕生した世界初のマイニングプールで、昔からビットコイナーらしい人たちに運営されています。(マイニングプールやマイナーの中の人は必ずしも思想がビットコイナーとは限らない)

本当に検閲耐性を改善できるのか

Stratum V2はよくマイニングプールがトランザクションを検閲できる問題への対策として取り上げられます。ところが実際のところ、マイナー自身がブロックテンプレートを作成できるだけでは検閲可能性が残ってしまうという指摘もあります。

1つ目の理由はブロックテンプレートを独自に作成してもマイニングプールが承認する必要があるため、トランザクションの選択がパーミッションレスとはいえないことです。当たり前の話ではありますが、マイニングプールは収益の安定化だけではなく最大化を目指すマイナーが集まっているため、仮に手数料をほとんどもらわないブロックを採掘すると機会損失となります。このため、マイナーがブロックテンプレートを提案したときもプール側からの承認が必要になり、規制対応でこの承認が得られない場合が考えられるためです。(実質的にプール側に拒否権がある)

2つ目の理由は相変わらずプールが採掘報酬の払い出しを管理しているためです。例えばマイナーが経済制裁対象のアドレスからのトランザクションを含めたブロックテンプレートで採掘した場合など、前述のブロックテンプレート承認段階では防げなかったことを理由に事後的にマイニングプールが報酬の払い出しを拒否することが考えられます。この場合、確かにそのトランザクションは検閲を免れたかもしれませんが、マイナーは経済的に痛手を負ってしまうので自主的に検閲することが予想されます。このように、Stratum V2はマイナーが報酬の分配をプールに握られている問題の解決にはなっていません。払い出しを拒否されたらマイニングプールを変更することはできても、失った報酬は戻りません。

上記のことから、Stratum V2には現行のStratumプロトコルと比較して改善点と言える部分も多数ありますが、マイニングプール間やマイナー間の経済合理性に基づく競争原理と比べると検閲耐性・分散性への貢献は小さいと言えるでしょう。ただし、現行Stratumよりちゃんと仕様が明確化される点においてはプール間のスイッチングコストの低下という検閲耐性面でのメリットがあります。

余談ですが、BraiinsがStratum V2の導入を推進している背景には彼らが提供するASICファームウェアBraiins OSがあります。このファームウェアの利用時はハッシュレートの数%がBraiins自身に提供され実質的な手数料となりますが、このとき提出される「シェア(ハッシュを行った証拠)」についてユーザーが中間者攻撃を行って手数料の回収を試みることができるため、その対策として暗号化を伴うStratum V2を推進しているのではないかという指摘があります。

まとめ

・Stratum V2はマイナーとマイニングプール間の通信プロトコルの新バージョン

・個別のマイナーがブロックテンプレートを提案する機能のほか、効率やセキュリティを改善するいくつかのアップデートが含まれる

・リファレンス実装が未完成のため導入はまだほとんど始まってすらおらず、数年かかると見込まれる

・検閲耐性についてはブロックテンプレートの承認や報酬の支払いをプール側に握られているためそれほど大きな効果はないと考えられる。ビットコインマイニング自体のマイナー間の競争、プール間の競争のほうが検閲を罰する仕組みとして圧倒的に機能する

・ただし、現行のStratumより仕様が厳密なことでプールの切り替えが簡単になれば上記の競争原理による検閲耐性はさらに改善される