PeerSwapを使ってチャネルバランスを調整 #reckless

PeerSwapを使ってチャネルバランスを調整 #reckless

ライトニングネットワークのノード運用に欠かせないのがチャネルの資金バランスの維持。自ノードがBitfinexやNicehashなどアウトバウンドキャパシティを吸い取られやすいノード(いわゆるSinkノード)とチャネル開設しているとすぐにアウトバウンドキャパシティ不足になってしまう。逆に、チャネル開設直後ではインバウンドキャパシティがないため、支払いを受けたりルーティングをすることができず、インバウンドキャパシティ不足状態となる。そこで登場したのがLNBIGやLOOPなどのLSPとよばれるライトニングサービスプロバイダーだ。LSPの登場で、チャネルバランスが偏っていても、これらのサービスを使うことでチャネルのバランスを調整することができる。

今回はPeerSwapと呼ばれるチャネルバランスを調整するツールを使ってみたので、その手順を紹介する。ただし、このPeerSwapはまだ開発途中でありいくつか注意点がある。

  • まだベータ版であり少額利用を推奨
  • 現状、メイカーはサービス手数料を取ることはできない
  • Swapoutの要求が多いと自身のオンチェーン資金が枯渇する

PeerSwapとは

PeerSwapはチャネル開設しているノードとのサブマリンスワップをするためのツールである。サブマリンスワップはオンチェーンBTCとLNのオフチェーンBTCをトラストレスに交換する技術で、詳細はこちらの記事を参照。サブマリンスワップの実装にはLOOP、Boltz、deezy.ioやNLOOPが存在する。LOOP、Boltzサーバーはスワップのメイカーとして流動性を供給していて、テイカーであるユーザーはLOOPクライアントやWebサイトを通してスワップ要求を出す。(NLOOPはBoltzサーバーに対するテイカーという位置づけ、という理解だけど間違っていたら教えてください)これまでのサブマリンスワップは、ユーザーはテイカーとしてしか参加できなかったが(正確にはBoltzはOSSなので自前でサーバーを立てればメイカーになれる)、PeerSwapを使うことでサブマリンスワップのメイカー・テイカーの両方になれるのが魅力的なサービスだと思われる。

使い方

Githubのインストール手順に従うだけで簡単にビルド・インストールできる。ただし、ビルドにはGoが必要なのでUmbrelユーザーでは難しいかもしれない。またDockerfileはあるが、そのlnd用イメージがないのでDockerでのインストールも簡単にはできない(誰かDockerイメージ作って😊)。なのでUbuntuなどへLNDやCLNをインストールしているユーザーが今回の対象。

自分の環境ではLNDが同居しているサーバーへインストールしたが、TLS証明書とマカロンファイルを使うことでリモートサーバーへインストールして使うことも可能。

今回は以下の手順を実施した。

  1. LNDが同居しているサーバーへPeerSwapをインストール
  2. peerの許可
  3. swapout

1.実際にインストールしてデーモンを起動する(詳細はこちら)。※現状ビルドしても実行ファイルがGOPATH/binへインストールされないので、手動でコピーする必要あり。このイシューについてはこちら

2.listpeersコマンドを実行するとチャネル開設しているピアでPeerSwapをインストールしているノード情報が表示される。PeerSwapではホワイトリスト形式でピアを管理している。なので、まずは自身でピアを許可する必要がある。

上記コマンド結果の中でswaps_allowedがtrueになっているpeerを探して、addpeerコマンドを実行することで対象peerとスワップができるようになる。swaps_allowedがfalseになっているpeerでも、ノード運用者へ連絡してaddpeerしてもらうことも可能で、こちらのほうがプライバシー的に良い。peerswapのポリシー設定ですべてのピアを許可する設定も可能だが、そうすると悪用される場合があるので要注意。

3.以下は10万satsのswapoutを実行したもの。PeerSwapではオンチェーンTXが3承認されると以降のスワップ処理が開始される。

スワップが完了すると、claim_tx_idの情報が更新される。またlistpeersを実行してスワップで支払った手数料を見ることもできる。今回は10万satsのスワップアウトに対して420satsの手数料を支払った。後述するが、この420satsはメイカーが作ったオンチェーンTxに対する手数料で、LN上で支払われる。また、スワップアウト用アドレスからコインを回収するにもオンチェーン手数料が必要なので、10万satsのスワップアウトTxからオンチェーン手数料を引いた金額が自身のウォレットへ入ることになる。実際のTXを確認したい方はこちらを。

背面下では

上記のコマンドでSwapout要求を出すと背面化で何が起きているのかというと、まずSwapoutでは依頼したテイカーのアリスがオンチェーンTxの手数料を払う必要がある。この支払はLN上で行われる。オンチェーン手数料分のインボイスをメイカーのボブが送ってくるので、LNで送金する(下図のpay fee invoice)。送金が完了すると、ボブはスワップアウト用アドレスへコインを送金する(下図のcreate opening tx)。このTxの3承認後、アリスはClaim用インボイスへ支払いをする(下図のpay claim invoice)。ボブはこの支払を完了させるためにプリイメジを公開する、と同時にアリスはこのプリイメジを使うことでスワップアウト用アドレスからコインを引き出すことができる(下図のbroadcast claim tx)。

画像の引用元はこちら

以上がPeerSwapのSwapoutの流れである。といっても処理フロー自体はサブマリンスワップと同じなので、この界隈にいる方であれば簡単に試すことができると思う。

PeerSwapはホワイトリスト形式なので、スワップしたい場合ノード運用者へ連絡する必要あるのが面倒ではある。全ピア許可設定も危険なので、ある程度信頼のあるノードやLSPをリスト化しておくとよいのかもしれない。また、ピア追加してもらうために課金するWebサイトなどがあるのも面白いかもしれない。

DHコミュニティ内での実験

最後に、コミュニティメンバーの中でPeerSwapを使ってみたい方がいれば、同テレグラムでピア追加申請の旨を教えてください。Swapの最小金額は10万サトシの約3000円からできますが、まだベータ版ということなのでRecklessとして使ってみましょう!Umbrelユーザーの方は以下を参考にインストールしてみてください。

Remaining : 0 characters / 0 images
1,000

Sign up / Continue after login

Related stories

Writer

ちょビットコイナー

Share

Popular stories

LNノードの運用益はどれぐらい?パート1

1577

LNノードの運用益はどれぐらい?パート3

962

【Muun】ちょっと変わったライトニング搭載ノンカストディアルウォレット

786