ライトニングノードの最強の手数料の設定方法になっていたかもしれないPairwise Fee Schedulesとは
ライトニングの中継ノードの運営で苦慮するのは適切な手数料設定です。なぜなら、あるチャネルからの収益を最大化させるためには「チャネルの回転率を高める」ことと「中継あたりの手数料率を最大化する」ことが求められるためです。
チャネルには双方向に送金需要がある場合と、専ら一方向に送金需要がある場合があるので、費用を払ってでも残高を「再チャージ」したいような場合もあります。これを一般的にチャネルのリバランスと呼びます。
リバランスにはLNを経由して自分自身のチャネルに送金する方法や、スワップサービスを利用する方法など色々ありますが、その中でも比較的最近生まれた方法に「インバウンド手数料(ディスカウント)」を利用して特定のチャネル経由で中継を受け付けやすくするという戦略があります。
Inbound Routing Feeについては過去記事を参照してください。
実際にInbound Routing Feeを設定するとそのチャネルからの中継が発生しやすくはなるのですが、問題なのが「どのチャネルに出ていく中継か選べない」ことです。Inbound Routing Feeがどでかい調節弁として機能しても、細かい結果が望んだとおりになるとは限りません。
そこでInbound Routing Feeと並行して提案されていたPairwise Fee Schedulesというコンセプトならどう解決されていたか、今回はこれについて詳しく見ていきましょう。
・ライトニングの中継は実質的に非代替性の残高のトレーディング
・Pairwise Fee Schedulesは厳密な値付けを可能にする技術
・莫大な組み合わせ数やBOLT対応の必要性が欠点
ライトニングの中継は実質的に非代替性の残高のトレーディング
冒頭で言った通り、送金の中継をするライトニングノードは実質的にチャネル内の資金を何回転させられるか、いくらで売れるかという商売をしています。これはつまり、それぞれのチャネルごとにチャネル内資金の特徴が異なり、そのため適切な手数料設定が異なるということになります。
実際にライトニングチャネルには手数料がゼロに設定されているものから0.5%程度のものまで幅広く存在します。(それより高く設定されているチャネルすらありますが、そのレベルになると本当に中継させる気があるのか疑わしいです)
もちろん中継ノードにも様々な戦略が存在するので一概には言えませんが、収益を最大化するには中継できる残高をいかに安く早く仕入れるか、仕入れた残高をいかに高く早く中継に使えるかの勝負になるのはすべての戦略に共通しています。そこで、なかなか仕入れがうまくいかないチャネルの仕入れにお金を出そうというのがInbound Routing Feeの考え方です。
そこで問題となるのが、中継ノードがせっかくお金を払って中継を獲得したのに、その中継で出ていく先のチャネルの回転率も低くて結果的にあまり得をしていないようなケースです。Inbound Routing Feeは中継元のチャネルを指定できても、中継先のチャネルに関しては選ぶことができないためです。
これは値付けの問題ですが、たくさんチャネルを持っていると交換しているもの(中継元チャネルの残高と中継先チャネルの残高)同士の組み合わせがたくさんあるので自分にとって不利な組み合わせが選択されてしまう可能性が高くなります。送金者にとって一番おいしいためです。
Pairwise Fee Schedulesは厳密な値付けを可能にする技術
そこでPairwise Fee Schedulesという提案がありました。
これは具体的には、中継元のチャネルと中継先のチャネルの組み合わせによって手数料を設定するという手数料の公開方法です。先ほどのトレーディングの例えに戻ると、正しく「チャネルAのローカルバランスとチャネルBのローカルバランスを交換するときの比率」を表現することができるため、中継ノード目線で最も厳密な値付けを可能にします。
個人的にはルーティングの本質を考えたときに一番しっくりくる手数料の設定方法だと思います。
逆にPairwise Fee Schedulesが存在しないことによって、LN全体で手数料が高止まりしやすい構造になっているともいえます。中継ノード目線だと、自身が不利な組み合わせで送金を中継してしまったときでも赤字が膨らまないように高めに手数料を設定する必要があるためです。
したがって、ユーザー目線ではPairwise Fee Schedulesが導入されたほうが安くLNを利用できるというメリットが考えられます。
莫大な組み合わせ数や対応の複雑性が欠点
それではなぜルーティングの改善策としてPairwise Routing FeeではなくInbound Routing Feeが導入されたのでしょうか?
1つは対応が比較的簡単だったためです。Inbound Routing Feeに非対応のノードはそれを無視しても大抵の場合は送金が行えます。Pairwise Routing Feeで同じことをしようとすると(非対応のノードと比べてすべての組み合わせにおいて必ず手数料が安くなるようにしないといけないため)設定がかなり複雑になっていまいます。
また、大規模なルーティングノードになると組み合わせの数が非常に大きくなってしまいます。例を挙げると、チャネルを3000本持っている巨大なルーティングノードでは450万通りもの組み合わせが存在するので、その設定データをどうやって伝播するのか、更新するときにどうやって更新するのかが課題になります。
このようにInbound Routing Feeに敗北を喫して現時点では導入されていないPairwise Fee Schedulesですが、一部には根強いファンがいるため将来的に再訪されるかもしれないアイデアの1つです。手数料市場の効率化が求められるフェーズがいつか来るなら、そのときまた議論が活発化するでしょう。
I like the idea of inbound routing fees, but mainly as a stepping stone towards a more ideal fee scheduling which would be pairwise fees. In this mode routing nodes would be able to pair up inbound and outbound paths through their node, and price all those transfers individually.
— Alex Bosworth (@alexbosworth) April 7, 2023
まとめ
・Pairwise Fee Schedulesは中継元・中継先チャネルの組み合わせごとに手数料を設定することができる仕組みで、ライトニングの中継手数料の設定を効率化することができる提案である
・もともとはInbound Routing Feeに対抗するアップグレード案だったが、よりシンプルなInbound Routing Feeに敗北して現時点では導入されていない
・手数料市場の効率化はユーザーにとっても手数料の低下というメリットをもたらすため、将来的に再訪されるかもしれないトピックである
次の記事
読者になる
一緒に新しい世界を探求していきましょう。

ディスカッション