Lightning NetworkのRouting

Bluewalletを使ってみたら、確かに残高に反映されて、そこからtippin.meに残高を送れた。
おおーすげーと思いつつ、直接channelを張っているわけでもないのに、なぜそうなるのかを、Exploring Lightning Network Routingを読んで追う。

channelバランス

最初のfunding transactionによってデポジットされたものを、こう呼ぶ。 これは銀行残高の考え方に近い。 Lightningのユーザは、手数料をへらすために、できるだけchannelを開いたままにしておきたい。
送受信額はもちろん増やしたいはずだけど、このプロセス自体も銀行に近い。

これが続いていくと、inとoutのバランスが取れていく。

Routing

普通のユーザは電源がついたり消えたりするデバイスを使っている。なので、直接channelを開くのは現実的ではない。 だから、普通Routing Nodeにつなげる。Routing Nodeは若干の手数料を稼ぐ。

これはNeutrinoみたいなSPVでも良い。

ゲートウェイノードは、ブリッジチャンネルのような仕組みを使って、より分散されていくはず。

Advertised and non-advertised channels

断続的にしか利用できない支払いチャネルは、ルーティングに使用されるべきではなく、ほとんどのLightning Nodeは、ルーティングには使えず、ネットワークグラフには登場しない。 普通のnodeはinvoiceや追加ルーティング情報をもとにしてアクセスする。

Buffer capital

ルーティングノードは、常にネットワークつながっているだけではなくて、inとoutのバランスをとって集約していかないといけない。 バランスが崩れても保てる用に、ある程度のバッファーが必要になる。

Autopilot

これはエンドユーザ向けの機能。ゲートウェイノードを見つけて自動で接続する。 いろんなメトリクス指標を使って接続先を判断できるようになるとベスト。

これはインターネットに似ている。

Bridge channels

最も重要なことは、いつでもいくらでも送れること。ゲートウェイに比較して、ブリッジはより多くのアマウントを持っていたほうが良い。 ネットワークが拡大するにつれて、支払いは2つ以上のゲートウェイノードと複数のブリッジノードを定期的に行き来する。 経路の始めと終わりがエンドユーザになる。

Atomic Multi-Path Payment

少額の支払いに分割することで、大きい支払いを実施する。これは裏で実行されるので、ユーザは何も意識する必要はない。