ライトニングネットワークのチャネルバランス
今回はチャネルバランスのリバランスについての備忘録です。ライトニングネットワークの概要はここ、チャネルバランスはここが参考になると思います。
チャネルバランスを均衡に保つためにリバランスは必要か
リバランスをする方法
ボブは以下のようなペイメントチャネルを持っていたとする。
Alice 0--2 Bob 0--2 Carol
| |
+----- OTHERS ------+
ボブは、ある理由で、チャネルバランスの均衡をとりたいと思う。そこで、ボブはBob - Alice - OTHERS - Carol - Bobという経路を取って自分自身に支払いをすることで、以下のような資金のリバランスをとることができる。
Alice 1--1 Bob 1--1 Carol
| |
+----- OTHERS ------+
リバランスにはアクティブとパッシブがある
アクティブリバランス
ある特定の決済(例えば、Bob - Carol - OTHER)をしたいがためにするリバランスをアクティブリバランスと呼ぶ。しかし、この特定の決済をするための経路はリバランスができる状態(Bob - Alice - OTHERS - Carol - Bob)であれば、代替経路(Bob - Alice - OHTERS - Carol - OTHER)があるので、それを使えば良い。したがってアクティブリバランスは必要ない。
AMP(Atomic Multipath Payment)が実装されるまでの間は、確かにこのアクティブリバランスは必要。例えば、ボブが0.5BTC受け取りたい状態で以下のチャネルを持っていた場合がそれである。この場合はリバランスをしないと0.5BTC受け取れない。
Alice 1.8--0.2 Bob 0.3--1.7 Carol
| |
+--------- OTHERS ----------+
パッシブリバランス
しかし、パッシブリバランスという考え方がある。これはボブのインバウンドとアウトバウンドの量を均等にすることで、ルーティングエラーを防ぐ目的がある。では、やはりリバランスは必要かというと、ある一定量の資金を持っているノードであれば、ある期間は受取が多く、ある期間は差出が多く、最終的には均衡が保てるだろうと期待されている(どうにもならない場合はパッシブリバランスは必要になってくるとは思うが)。
チャネルバランスの疑問点
チャネルバランスを保つためにリバランスする方法があることが分かったが、そもそもバランスが取れている状態にネットワークがなるのか?なるとすればバランスを取ろうとする動機は何か?例えば、上記にあるようなイン・アウトバウンドの均等を保つことでルーティングエラーを減らし、ルーティング手数料を稼ぐことが動機であるが、そもそもバランスを取ることが難しい。例えば、オンラインショップが大きなチャネルをボブに対して開設したとする(OnlineShop 2--0 Bob)。そしてユーザーが商品を購入しショップが資金を受け取るには、
(1)各ユーザーがオンラインショップとチャネル開設をするか
(2)各ユーザーとチャネル開設しているアリスが大きなチャネルをオンラインショップと開設するかである
(1)については既にチャネル開設しているユーザーにとっては不要なチャネル開設になりうる。(2)についてもアリスがチャネル開設してくれるか不明である。以上より販売者が受取可能となるチャネルバランスになることは難しいと思われる。そもそも販売者にしてみれば、上記の例ではボブとのチャネル開設は不要である。販売者は受取可能になるためにできることはあるのだろうか?
リバランス:資産の再分配をすること。時間の経過(支払や受取をする)とともに、自身の持っているチャネルの支払・受取限度の比率が変ってくるため、これを最適な(当初の)状態へ戻すこと。
(例)
Alice 1--1 Bob 1--1 Carol(初期状態)
Alice 0--2 Bob 0--2 Carol(数ヵ月後:BobはCarolから受取ができない。)
Alice 1--1 Bob 1--1 Carol(リバランス後:Bobの保有残高は変化しないが、Carolからの受取ができるようになる。)
参考
1 c-lightningで自分自身へ支払いをする方法
2リバランスについて
3Laoluによるリバランス見解