Nayuta Wallet の紹介(2022年12月)

弊社がリリースしている Nayuta Wallet アプリの紹介記事です。

https://play.google.com/store/apps/details?id=com.nayuta.core2

今回は LSP とチャネルオープンについて紹介をします。

LSP (Lightning Service Provider) とチャネルオープン

今まで弊社がリリースしたウォレットアプリは、アプリ内に Lightning Networkノード(以下、LNノード)を持ち、他の LNノードとも自由に接続できるようにしていました。図でいえば A の構成です。

チャネルを作る相手として会社でも LNノードを運用していましたが、そこへの接続が必須というわけではありませんでした。
そのため、チャネルの作成などはアプリのユーザが全部行う必要があり、それなりに慣れた人でないと何をするのかわからないかもしれません。

他の構成としてよく見られるのが B のようにアプリの方にはウォレットのデータを持たず、サーバの方に本体があるタイプです。取引所などが代表的なところでしょう。
この構成の利点は、Lightning Network 的なものはサーバで行われるため、ユーザは特に気にせずとも使えるようになっているところです。「それだけ?」と思うかもしれませんが、Gmail や銀行預金などもこのタイプになるので、それに慣れ親しんだユーザからすると構成A は面倒だと感じることでしょう。

Bitcoin を扱っている人からすると、鍵データは手元に置いておきたいと考える人も多いです。その上で Lightning Network の扱いを簡単にするための構成として考え出されたのが C の構成です。
LNノードとしては各自で鍵を持って独立して動いているのですが、チャネルとして直接接続しているのは LSP機能を提供する LNノードだけにします。こうすることで、アプリが LSP と通信することで何らかの機能を提供することが可能になります。
LSP の仕様というものは特に決まりは現在のところないので、機能は実装依存になります。ここでは Nayuta Wallet とその提供する LSP について記述します。

https://github.com/nayutaco/Support/wiki/Nayuta-Wallet-2022

Nayuta Wallet は LSP に対してチャネルオープンする要求を告げ、LSP は要求に従った着金を確認するとチャネルオープンと引き換えに手数料をもらうような運用になっています。
オープンできない場合、Lightning Network で送金があった場合はそのまま送金失敗になり、Bitcoin で送金があった場合は Nayuta Wallet から払い戻しができるようになっています(Submarine Swap のスクリプトへの送金になっている)。

チャネルのオープンやクローズは基本的に funder 側が支払うことになるので、手数料はその運用として使われます。

--

--