Bitcoin 2023カンファレンスではビッグな発表がいくつかありました。その中でも3本の指に入るものにmempool.spaceエクスプローラーを運営するMempool社が「トランザクションアクセラレーター」サービスの提供を開始するという発表がありました。

これはユーザーがMempool社に手数料を払うことで、Mempool社と提携したマイナーが任意のトランザクションを(トランザクション内で支払った手数料に関わらず)次のブロックに入れてくれる、というものです。

このサービスの存在意義について、RBFやCPFPといった方法でトランザクションの手数料を後から追加することができるのになぜ?という声もありました。また、もしもこのサービスの利用が増えてしまうとビットコイン自体に様々な弊害が生まれることを懸念する意見もあります。

この記事では新サービスの概要と想定される影響について情報を整理します。

ビットコイントランザクションの配信と承認

今回発表されたMempool Transaction Acceleration Marketplaceには主に2つの用途が考えられます。「ノンスタンダードなトランザクション」をマイナーに提出して手数料を払うことと、通常のトランザクションの承認を早めることです。それぞれどのような場合でしょうか。

「スタンダードなトランザクション」とは

ユーザーが署名したビットコイントランザクションがマイナーにたどり着くまでには、そのトランザクションがP2Pネットワーク上をノードからノードへと伝播していく段階があります。

しかし、ビットコインノードはどのようなトランザクションでも他のノードに転送するわけではありません。不正なトランザクションでなくても、ノード実装ごとに異なる基準(ポリシールール)に基づいて一部のトランザクションはフィルタリングされてしまいます。

例えばあまりにもサイズが大きいトランザクション(400KB以上など)、経済的合理性に欠ける(スパムの可能性が高い)と疑われるトランザクションなどはネットワークを伝播しにくく、マイナーのノードまで辿りつくことは稀です。そのため、何らかの理由でこのようなトランザクションをブロックに含めてほしい場合、これまでは直接マイナーに提出する必要がありました。

ViaBTCなど一部のマイニングプールはウェブ上でトランザクションを提出するためのフォームを提供していましたが、表向きそのようなサービスを提供していないプールにも採掘してもらいたい場合はコネが必要でした。

また、トランザクションがネットワークを伝播しないということはRBFによって後からトランザクションの手数料を積み増すことができないということでもあります。

Bitcoin Core 24.0からのFull RBF既定化についての議論まとめ
この1週間ほど世間の話題はFTXの信用不安問題で持ちきりですが、ビットコイン開発者の多くは全然違う論争に巻き込まれていました。Bitcoin Coreの次期リリースである24.0において、ノードのポリシーとしてFull RBF (mempoolfullrbf)というものが導入される予定のところ、これに反対する意見が出たためです。 結果的には導入継続という流れになりましたが、このように誰でも意見・議論できることがビットコイン開発における健全性維持の1つの仕組みです。 それでは議論の内容を見ていきましょう。 RBFとは RBFとはReplace-by-Feeの略で、配信したがまだブロック…

Mempool社とマイナーの提携

今回Mempool社は複数のマイニングプールと提携してTransaction Acceleratorを提供しています。もともとMempool.spaceにはトランザクションをビットコインネットワークに提出するためのフォームが設置されており、おそらくMempool社が動かすビットコインノードに接続されていました。

もしもマイナーとの協力関係の一環でこのフォームからノンスタンダードなトランザクションを直接マイニングプールに提出できれば、それはこのサービスの1つの大きなユースケースとなるかもしれません。ノンスタンダードなトランザクションが最近流行した例としてはOrdinal Inscriptionsを使ったブロックチェーンへのJPEGデータの記録などが挙げられ、大きな収益を生んでいることからマイナーはトランザクションの流入経路を確保したいと思っていそうです。

Ordinalsは全satsに通し番号を振るフルオンチェーンNFTプロトコル
ここ数日で話題になっているビットコイン上のプロジェクトに、OrdinalsというフルオンチェーンNFTプロトコルがあります。 個人的には直接ブロックチェーンを利用するNFT自体が無駄という意見なので、フルオンチェーン(紐づけるファイルのデータを全てブロックチェーン上に記録する)は愚かとさえ感じますが、もちろん対価となる手数料さえ払えば何を記録するのもユーザーの自由なので今日はそこを議論するつもりはありません。 Ordinalsがどういう仕組みなのか、特にCounterpartyやRGBなどビットコイン上でNFTを扱うことのできる他のプロトコルとどう違うかに焦点を当てていきます。 Ordi…

したがって、Mempool社と複数のマイニングプールの提携によってもしウェブ上からノンスタンダードなトランザクションを提出できるようになれば、それ自体が有用なサービスとなることが考えられます。また、前述の通りノンスタンダードなトランザクションについてはRBFで手数料を積み増すことができないため、手数料の追加もMempool社のインターフェースを通して行うことになるでしょう。

ただし、トランザクション内で支払う手数料を低く抑えたい場合(トランザクションとは別の形で手数料を払いたい場合)以外はTransaction Accelerator Marketplace機能ではなくフォームだけで完結します。

通常のトランザクションに手数料を積み増すケースはあるのか?

さて、もう1つのユースケースは通常のトランザクションに後から手数料を積み増すユースケースです。ところが、上述の通りネットワークを伝播するトランザクションにはRBFやCPFPという選択肢があります。

RBFとは、あるトランザクションを配信した後、ブロックに取り込まれる前に同じ入力を使った別のトランザクションを手数料を積み増して再配信すると、各ノードで古いトランザクションが上書きされるという機能です。すなわち、ゼロ承認の段階で手数料を積み増すことでブロックに取り込まれる時期を早めたり送金を取り消す(自身宛の送金に変える)ことができます。

CPFPとは、あるトランザクションを配信した後、ブロックに取り込まれる前にそのトランザクションの出力を使用する別のトランザクションに高い手数料を設定し配信するテクニックです。後者は前者に依存するため、マイナーは2つを合わせた総合的な手数料を評価してくれるため、後者の手数料が十分に高ければ前者のトランザクションとともにCPFP前より早めにブロックに取り込まれると予想できます。一般的にはRBFが使えないが自分宛ての出力があるトランザクションの加速に利用されます。

さて、通常のトランザクションにとってMempool社のサービスに価値を見出すならRBFおよびCPFPが使えない場合、もしくはそれよりもMempool社のサービスを使いたいケースを想像しないといけません。CPFPはRBFよりコストが嵩みますが、大抵のケースではどちらよりもMempool社のサービスのほうが費用が高くつく可能性があるので、優位性はコスト面ではないでしょう。

また、RBFもCPFPも使えないケースというのは「トランザクションに必要な署名を集められずRBFを実行できない」かつ「出力のどれも自分が(単独あるいは協力的に)動かせるものではない」というシナリオです。現時点でこの両方に合致するような状況は特殊でしょう。(「ライトニングチャネル強制閉鎖のトランザクションで直接地理的に分散したマルチシグウォレットに送金する」など)

現時点で想定ユーザーがはっきりしないサービスである点は留意すべきでしょう。

サービスの利用が増えると弊害が生まれる

さて、もしこのTransaction Acceleratorの利用が増えると弊害が生まれるという指摘はどのようなものでしょうか。

まず、各ノードは自身のメモリプール内にあるトランザクションを参照してトランザクション手数料を推定しています。これはウォレットの利用時も同様で、大抵の場合は運営会社のビットコインノードのメモリプールから推定される手数料をおすすめしてきます。もしメモリプールをスキップしたり、外部的に手数料を支払うトランザクションが多いとこの手数料推定の精度が下がります。

また、マイナーは収益性を高めるためにMempool社と提携する必要が出てきます。裏を返せばMempool社と提携するマイナーが少し有利になるため、マイニングの分散性を少し低下させてしまうことも懸念されます。

ただし前述の通り、RBFやCPFPのほうが経済的であればそれほど利用が伸びるサービスではないかもしれません。その場合はどちらの弊害も微々たる程度に収まるでしょう。

メモリプールやポリシールールに関する議論

この発表で皮肉なのはMempool社がメモリプールをスキップするようなサービスの提供を発表したことでした。しかし、メモリプールの扱いについては近年様々な議論が行われており、近い将来に割と大きな変化がある分野かもしれません。

私のイチオシなのはPackage Relayというポリシーの導入です。現在メモリプールに含まれるトランザクションは手数料率順に並べられ、各ノードが指定する上限のサイズを超えると手数料率が安いものから削除されてしまいます。しかし、CPFPの使用には手数料を追加するトランザクションだけでなく、当初の手数料が低かったトランザクションもメモリプール内に必要になります。したがって場合によっては元のトランザクションが誰のメモリプールにも残っておらずCPFPできないケースが出てきます。

Package Relayが導入されると複数のトランザクションを1つのパッケージとしてまとめられるようになり、各ノードはパッケージごとの総合的な手数料率で評価し伝播するようになります。CPFPが扱いやすくなるほかにも、ライトニングのコミットメントトランザクションの手数料をゼロにしてより直感的な形にするなどの改善点が実現します。

Package relay がメモプール混雑時のLN送金効率を向上させる
最近のビットコイン手数料の高騰下では、レイヤー2のライトニングでもその影響を受けています。手数料の高

また、スタンダードネスに関するポリシールールについても意見が割れています。経済的合理性を欠くと見なされる(手数料が送金額より大きい、BRC20のような)トランザクションを排除したい人や、マイナーに直接提出される弊害を避けるには全てのノードが受け付けることが最適解と見る人がいて、このあたりも柔軟性が高まる可能性があります。それとともにネットワーク内でメモリプールの中身が大きく異なってしまうとブロックの検証等に時間がかかるようになり、オーファンブロックが増えてしまうという予想もあります。

実際に大量の未承認トランザクションが溜まった4月はブロックチェーンの先端に競合状態が数回発生するという歴史的な月となりました。原因は各ノードでの新規ブロックの検証時間の増加によるブロック伝播の遅延と見られています。

ノード間のP2Pネットワークという複雑な仕組みを諸悪の根源と見る動きもあります。例えば最近人気のNostrなどを活用してブロックやトランザクションをブロードキャストすることで直接マイナーにトランザクションを提出するルートを全員に開いたり、P2Pネットワークでの伝播による遅延を減少したりするというアイデアです。

[bitcoin-dev] Bitcoin Transaction Relay over Nostr

ポリシールールやメモリプールはビットコインのコンセンサスルールに縛られない分野なので、これから様々な実験が行われていくホットな分野になるかもしれません。

まとめ

・Mempool社がBitcoin 2023でトランザクション手数料を代行して支払うサービスを発表、トランザクション承認を早める用途を想定

・実際にマッチする顧客はノンスタンダードなトランザクションをマイナーに届けたいユーザー、何らかの理由でトランザクション自体で手数料を払いたくないユーザーかもしれない。いずれにせよニッチなサービスと考えられる

・もしニッチなサービスにとどまらなかった場合、メモリプールを参照したトランザクション手数料推定の精度が下がったり、Mempool社と提携するマイニングプールが有利となってしまう恐れがある

・メモリプールやトランザクション伝播は今ホットな分野で、様々な提案や議論がなされている