皆さんはマイニングプールの払い出しの計算方法について考えたことはありますか?

恥ずかしながら、私は先週末までこのトピックについて深く考えたことはありませんでした。しかし、実際にマイニングをしている方にとっては非常に重要な側面です。そして場合によってはマイニング自体の分散性を損なう可能性すらあります!

今日は代表的なマイニングプールの報酬計算方法をいくつか紹介し(PPS、FPPS、PPLNS)、その中でもFPPSが絶大な支持を得ていることとそれによってマイニングプールの集中化が招かれてしまっているという、先週末ラトビアのリガで開催されたBaltic Honeybadger 2024で聞いた主張を考えてみます。

・PPS、FPPS、PPLNSとは

・FPPSが絶大な支持を得ている理由

・FPPSの脆弱性がマイニングプールの寡占化を加速させる?

PPS、FPPS、PPLNSとは

これらの報酬計算方法を理解するには、まずプールマイニングについて一定の知識が必要となります。マイナーはマイニングを試行していくうちに「シェア」と呼ばれるものを発見することがあり、これをマイニングプールに提出することで実際にマイニングしていることを証明します。

シェアとは簡単に言えば「目的の難易度のビットコインブロック発見には至らなかったが、仮に難易度がずっと低かったらブロック発見となっていたもの」です。例えば難易度が1万倍低かったら、正当なブロック1つあたり約1万個発見されますが、これを発見するにもマイニングと同じ作業が必要となるため、提出したシェアの数から貢献したハッシュレートを推定することができます。

マイニングプールは提出されたシェア数を元に報酬を計算しますが、そこで何種類かの計算方法があるわけです。

PPS (Pay-Per-Share)

まず、マイナーの視点で一番シンプルかつボラティリティが低いのがPay-Per-Shareと呼ばれるもので、マイニングプールは単純に「シェア1つあたり◯ sats」と金額を決めて払い出すものです。

マイナーの観点からすれば、プールが実際にブロックを発見しようがしなかろうがシェアの提出時点で報酬が決定するので、報酬のボラティリティがマイニングプールの採掘成功に左右されません。

逆にマイニングプールからすると報酬の払い出しが必ず発生するので、収益である実際のブロック採掘のボラティリティリスクを負うことになります。したがって、マイニングプールはある程度の手数料を課すこととなるほか、しばらくブロックが採掘できなかった場合でも払い出しを継続する資金力が必要となります。

なおPay-Per-Shareは実際に採掘するブロックの手数料収入を予測できないため、ブロックの新規発行分だけを払い出しの計算対象に含め、手数料はプールの収入となってしまいます。このため、現在ではほとんど見ることはありません。

PPLNS (Pay-Per-Last-N-Shares)

PPLNSでは、マイニングプールによってブロックが発見された際に、プールに対して提出された直近のN個のシェア(そのブロックの発見に貢献したもの)のうち、当該マイナーの提出したものの割合に応じて報酬が支払われる計算方法です。

もちろん、シェアの発見自体がマイニングのプチ版なのでマイナーからすると報酬のボラティリティが発生することになります。ある程度の規模があれば長期間にわたって計測すれば特に問題はないはずですが、特に小規模なマイナーは少しコストがかかっても報酬の固定を望むことが非常に多いと業界関係者は言っています。(例えばUpstream Data社のSteve Barbour氏のこの記事にもそのような記述があり、業界的には常識のようです)

収益のボラティリティをマイナーに負担させることができるため、プールの運営はしやすいという特徴があります。(ブロックが発見されなければ報酬の支払いも発生しない)

マイニングプールのうちOceanなどはこれに近い仕組みになっています。

FPPS (Full Pay-Per-Share)

Full PPSはPPSに対して「実際に採掘したブロックの手数料収入の部分」をボーナスとしてマイナーが貢献したハッシュレートに応じて払い出すという、そこだけはPPLNSに近い仕組みを追加したハイブリッドモデルです。

マイナーからすればシェアを提出した時点で報酬が得られるほか、ブロックの手数料収入も(ボラティリティこそあれど)取りっぱぐれないという収益最大化要素もあり、最も人気となっている報酬計算方法です。現在ではほとんどのマイニングプールがこれを採用しています。

FPPSが絶大な支持を得ている理由

このように、FPPSが最人気の報酬計算方法で、ほとんどのマイニングプールはFPPSを採用しています。これはマイナーが「手数料を払ってでも収益のボラティリティを低減したい」という、マイニングプールを利用する目的自体と合致する需要が強いためです。

マイニングは最初の設備投資さえ行えばあとは変動費に応じた収入が得られる、というシンプルなモデル化をされる傾向にありますが、ここに(本来なら発生する)収益のボラティリティが生じてしまうと資金繰りのリスクなどが顕在化してしまう可能性があります。そのリスクを避けるために、マイニングプールに手数料を払っているわけです。

そのため、よりマイニングプールが取る手数料の小さいPPLNSよりも、高めの手数料を支払ってでも確実に報酬が得られるFPPSが選好されるのでしょう。

FPPSの脆弱性がマイニングプールの寡占化を加速させる?

マイニングプールがFPPSを採用するにはブロックを発見できなかった期間に報酬を払い出す資本力が必要です。また、プールのハッシュレートが小さければ小さいほどブロックを発見する間隔は大きく、収益のボラティリティが収束するのにかかる期間が長くなってしまうため、FPPSは「大きいプール」「資金が潤沢なプール」が有利となってしまっており、マイニングプールの寡占化の要因の1つと見る人もいます。

しかし、もし1つFPPSがマイニングプールの寡占化につながる理由として、FPPSの仕組み上の脆弱性により利用者にKYCを課す必要性が高いことが挙げられます。

マイニングプールが利用者であるマイナーから受けうる攻撃にはブロックウィスホルディング攻撃というものがあります。マイナーがブロックを発見したとき、故意にマイニングプールに提出しないという攻撃です。

一見、意味不明な攻撃に見えるでしょう。しかし、PPS/FPPSにおいてマイナーはブロックの発見の有無によらず報酬を得ているため、マイニングプールに提出するインセンティブが実はありません(FPPSにおいては手数料が十分に高ければ提出するインセンティブになるかもしれません)。むしろ、提出しないことによってブロックの生成ペースが落ち、次回の難易度調整が低くなり、将来的にブロックを発見しやすくなるという影響すらあります。

他のマイニングプールによる攻撃という可能性だってあります(むしろこれが本命かもしれません)。競合するマイニングプールから報酬を得つつ、実際のブロックは自社のマイニングプールで発見すれば報酬を二重に受け取るようなもので、一番の攻撃インセンティブはここにあるでしょう。

この攻撃を未然に防ぐことはなく、長期間にわたってユーザーから提出されたシェアを分析して「このユーザー、ハッシュレートの割に発見するブロック数が少ない、常に運が悪い(運ではなく悪意があるかもしれない)」というユーザーを追放するしかありませんが、誰でも参加できるマイニングプールだと追放しても戻ってきてしまいます。そこでKYCを導入することによって、悪意あるマイナーの追放をより簡単にする、という発想です。

しかし、マイナーにKYCを課すことが当局リスクなどを増大させることは自明ですよね。つまりKYCを避けたいマイナーはPPLNSのような仕組みでボラティリティを受け入れるか、ブロックウィスホルディング攻撃に対する「保険」としてより高い手数料を受け入れるしかなく、競争力が低下する可能性があります。


数ヶ月前に、ハッシュレートの合計50%近くを占める様々なマイニングプールが利用するブロックテンプレートが実は同一のもの(Antpoolが採用しているものと同一)という事実が発見されました。これも実はFPPSに関係するのではないかという説があります。

最有力説はAntpoolに対するプロキシとして機能しているプールがとても多いという説です。彼らはAntpoolにシェアを提出しており、固定の報酬を得ているという意味でブロックウィスホルディング攻撃のリスクをAntpoolに押し付けています。このようなプロキシは何らかの付加価値を提供することで選択されます(例えばマイニング機材のローン金利を優遇するなど)。その一方でブロックテンプレートはAntpoolに与えられたものを使うしかないため、Antpoolの影響力が大きくなりすぎるというデメリットがあります。

もう1つの説として、Coboというマイニング金融を扱う企業があり、そこがブロックウィスホルディング攻撃に対する保険をFPPSマイニングプールに対して提供しており、その条件として特定のブロックテンプレートの使用を求めているのではないかという説です。この場合、マイニングプールより(ブロックテンプレート決定権において)上位の存在としてCoboのようなマイニング金融プロバイダが存在することになります。

マイニングの金融化は「より見えにくい」ところでマイニングプールが寡占化する環境を作り出しているかもしれません。

まとめ

・PPLNSはマイニングプールがブロックを発見した際のみ、直近N個のシェアを貢献したマイナーに報酬が比例配分される。ブロックが見つからなければプールからの払い出しもないためマイナーの収益にボラティリティがあるが、プール運営側から見るとリスクが少なく低コスト。

・PPSはマイニングプールがシェアの数に応じて固定の報酬を払い出して収益のボラティリティを肩代わりする方式。マイナーにとっては収益が固定できる一方、少し手数料コストがかかる。ブロック内の手数料は予測できないため分配できない。

・FPPSではPPSに加えて、実際にブロックを採掘した際にハッシュレートを貢献していたマイナーたちにブロック内の手数料をボーナスとして比例配分する方式。最近で最も人気の方式だが、資金力とハッシュレートのあるマイナーが有利である。

・ブロックウィスホルディング攻撃という、PPS/FPPSプールが脆弱な攻撃が存在し、これがマイニングプールのKYCや保険商品の台頭につながっている。このように、マイニングの金融化がプールの運営に与える影響がマイニングプールの寡占化につながっているという指摘がある。