【半自動】LNDg+Wallet of Satoshiでインバウンドキャパシティを得る
#LightningNetwork
補足:インバウンドキャパシティを得る
料金を払い外部からチャネルを繋いでもらうことでインキャパを得る方法もある。だがここではノードのアウトキャパをオンチェーン引き出しすることでインキャパを増やす。これにより特定のチャネルにインキャパを作りつつノードのIOレシオを改善できる。
例:
オンチェーン資金5
チャネルA アウト20 イン0 ←インキャパが欲しい
チャネルB アウト10 イン5
チャネルC アウト0 イン10
チャネル合計 アウト30 イン15
IOレシオ 15 / 30 = 0.5 ←1かそれ以上のほうがいい
↓ オフチェーン資金10(アウトキャパ10)をオンチェーン資金10へ引き出す
オンチェーン資金15
チャネルA アウト5 イン15 ←インキャパを作れた
チャネルB アウト10 イン5
チャネルC アウト5 イン5
チャネル合計 アウト20 イン25
IOレシオ 25 / 20 = 1.25 ←1以上になった
メリット
- LNBIGやAmbossのMagmaでインキャパを買うより安い
LNBIGは100万satsのインキャパを手に入れるためのコストは2,000~2,500sats程度、つまり2,000~2,500ppm
Magmaは1,000ppm~くらい(質はピンキリ)
当記事は600~1,000ppmくらい - LNDgで半自動
手順のほとんどがLNDgによる自動リバランス
デメリット
- 少額だとむしろ高い(逆にスケールメリットはある)
- 過程でリバランスするのでノードの構成によっては上手くいかない
大まかな流れ
- Wallet of Satoshi(以下WoS)ノードにできるだけ大きいキャパシティのチャネルを開く
- WoSチャネルのアウトバウンドキャパシティ全額を自分のWoS宛にLN送金する
- LNDgの自動リバランスでWoSチャネルにアウトキャパを貯める
- 貯まったら再度WoSチャネルのアウトキャパ全額を自分のWoS宛にLN送金する
- 3~4を繰り返す
- WoSに残高が貯まったら自分のノード宛に全額オンチェーン送金する
細かい流れ
1. WoSノードにできるだけ大きいキャパシティのチャネルを開く
現在、WoSノードのFeeRate設定はチャネルのアウトキャパ、インキャパの比率で上下させているようです。
こちらのアウトキャパが少なければ0ppmに近くなり、多くなるに従って段階的に2,000ppm程度までFeeRateを上げられます。
つまりWoSに対してできるだけ大きいキャパシティでチャネル開き、こちらのアウトキャパを低%にしておけばWoSノードはFeeRateを低く保ってくれます。
2. WoSチャネルのアウトバウンドキャパシティ全額を自分のWoS宛にLN送金する
スマートフォンにWoSアプリを入れて下さい。
WoSアプリで受け取りのインボイスを発行してコピーします。数量は空白で構いません。
次にRTL等の送金機能から発行したインボイスを貼り付けます。
Fee Limitを1(0だとエラーになった気が)、First Outgoing ChannelをWalletOfSatoshi.comに指定します。
送金額は全額ですが、チャネルのイン・アウト含めたキャパシティの1%分はリザーブ分として送金できません。またチャネル閉鎖時用のCommit Fee分も送れません。なのでキャパシティの98.9%くらいを送金します。
ReserveやCommit FeeはRTLやTHのチャネル詳細で見れます。Commit Feeはオンチェーンの混み具合で数値が変わります。
この送金は自分のWoSチャネルからWoSへの送金なので手数料0satでできます。
3. LNDgの自動リバランスでWoSチャネルにアウトキャパを貯める
LNDgでWoSチャネルに対してAutoRebalancingを有効にし、リバランスインしてアウトキャパを貯めてください。
ノードによってリバランスできるFee Limitは違うかと思います。上記の場合はoRate 950ppm × Cost 0.7 = 665ppmで設定しています。つまり665ppm以下のコストでアウトキャパを貯める設定です。
ここでWoS側のFeeRate(=iRate)が低い設定になっているかが重要です。
リバランス時に最後は必ずWoSからsatsが入ってくることになりますが、コストがWoS側のFeeRate分(参考画像では10ppm)だけ上乗せされます。この数値次第でリバランスの合計コスト、成功率が大きく変わってきます。
リバランスイン側はWoSですが、リバランスアウト側チャネルはインバウンドキャパシティを作りたいチャネルを設定してください。流入が強いノード等です。アウト側チャネルによってリバランスコストや成功率が変わってきます。
4. 貯まったら再度WoSチャネルのアウトキャパ全額を自分のWoS宛にLN送金する
手順2. とやり方は同じです。
どの程度貯まったら送金するかというとWoSがFeeRateを上げてきたらです。
そして手順1. で出来るだけ大きなキャパシティのチャネルを開く理由はこの作業の回数を減らすためでもあります。
例えば80,000,000satsのチャネルを開いた場合、アウトキャパ20%程度まで低ppmなら16,000,000sats程度貯まるまで放置できます。
小さいキャパシティサイズだと頻繁にWoSアプリに送金する手間が発生します。
5. 手順3~4を繰り返す
手順3~4を繰り返してWoSアプリにSatsを貯めます。なおWoSはカストディアルウォレットなのでGOX(第三者による盗難等)に気をつけてください。
6. WoSに残高が貯まったら自分のノード宛に全額オンチェーン送金する
自分のノードからアドレスを発行してQRコードor文字列をWoSアプリで読み込みます。読み込んだものがLNのインボイスではなくBTCオンチェーンのアドレスなら自動でオンチェーン送金の画面になります。
mempoolが空いている場合は7,000sats~10,000sats程度でオンチェーン送金できます。
このとき送金額にかかわらず固定となるので一度に大量送金した方がコストは安くなります。
例えば1,000,000sats送金した場合、7,000 / 1,000,000 × 1,000,000 = 7,000ppmもかかってしまいます。送金額が50,000,000satsなら140ppmです。
コストの計算
どれくらいのコストでインキャパを手に入れられたのか例を出して計算してみます。WoSチャネル開設のオンチェーンFee等の一度のみの費用は除きます。
LNDgの自動リバランスにより、WoSチャネルにアウトキャパを貯めるのに平均600ppmかかったとします。そしてWoSアプリから自ノードにオンチェーン送金するのに5千万satsを7,000sats払って送金したとします。計算は
600 + ( 7,000 / 50,000,000 × 1,000,000 ) = 740 ppm
となり、インバウンドキャパシティを100万satsあたり740satsで手に入れられます。
余談
この方法はWoS以外にNiceHashでもできます。
WoSのオンチェーン送金手数料は最低7,000satsですが、NiceHashのオンチェーン送金手数料は500sats固定です。またNHはチャネルキャパシティ比率にかかわらずFeeRateは1ppm固定です。
これらを考えるとNHの方が安そうかと思うかもしれませんが、NHの場合リバランスコストがかなりかかる印象です。ただし1度のオンチェーン送金総額が少ない場合であればnicehashの方が安くなるかもしれません。
私のノードの場合、計算したらWoSの方がコストは安くなるようでした。
(まぁWoSとNHのどちらも自動リバランス設定して、並行してやってます。)
更に
WoSチャネルのFeeRateを低ppmで維持することによってWoS→他チャネルへのルーティングが発生しやすくなります。
このルーティングが発生すると0ppmでWoSのアウトキャパを手に入れたことになってめちゃくちゃお得です。
例として私のノードのWoSチャネルにどれくらいInFlowがあるのか、どこへOutFlowしているのか見てみます。(チャネルは9日前:22/06/05に開いた)
ついでにWoSチャネルの自動リバランスの成功率や量とか載せときます。
追記:有料部の内容ですが、6/9~6/11にかけてノードが謎のトラブルにより断続的にダウンしていたのを忘れていました。その分、少し割り引いて見て下さい😇