なぜノンカストディアル型のライトニング送金は頻繁に失敗してしまうのか?【書き起こし】
今回の記事は以前反省会で放送した「なぜノンカストディアル型のライトニング送金は頻繁に失敗してしまうのか?」を、書き起こして文章にしたものです。気になる方はぜひ動画の方も視聴ください。
東:最近頭を悩ませていることの一つとして、ライトニング送金が安定しないという問題があります。ライトニングで送金しようとしても、うまくいかず失敗するケースが最近増えてきた気がするんです。
そこで、ライトニング送金がなぜ安定しないのか、なぜ失敗するのかという要因とその対策について、あまりライトニングに詳しくない人にも理解しやすい形で、小川さんに解説してもらいたいなと考えています。
また、カストディアル型と、ノンカストディアル型のウォレットの2つを使い分けているんですが、特に、ノンカストディアル型のウォレットで送金が安定しない問題が最近起きています。
では、なぜこうした問題が発生するのか。ノンカストディアル型のライトニングウォレットの難しさや、安定した送金を実現するためのポイントについて、分かりやすい言葉で説明してもらいたいと思っています。小川さんとの質疑応答や議論を通じて、この問題について深く掘り下げていきます。
比較的新しいノードへの送金は失敗しやすい?
東:最近、ノンカストディアル型のライトニングウォレットで送金が全然安定しない問題があるんです。エラーメッセージもいくつか出てきますが、その中で一番多いのは「ルートが見つかりません」というエラーです。ただ、流動性に問題はないし、送金額もそんなに大きくないので、理論的には送金は成功するはずなんですが、なぜか全然成功しないんですよね。
例えば、ノンカストディアルのウォレットからバイナンスへ1万satoshiを送ろうとしても、失敗することがよくあります。なぜこうしたことが起きるのか、ライトニングの仕組みを含めて解説してもらえますか?
小川:はい。まず、ライトニングについて簡単におさらいしたいのですが、オンチェーン送金は送金データをビットコインネットワークに伝え、マイナーがそのデータをブロックに取り込むことで送金が行われる仕組みです。一方で、ライトニングネットワークでは、送金をネットワーク全体に伝えず、送金者が直接または繋がっているノードを経由して送金を行います。
つまり、ライトニングネットワークでは、送金を行う際に、送金者が経路を選択して送金をする仕組みとなっています。
ここで、東さんがノンカストディアルなウォレットを使って、ライトニング送金がなかなか成功しない、失敗する現象があるとお話ししましたが、最初に考えられることは、バイナンスのライトニングノードが比較的新しいノードであるということです。
そして、特にモバイルウォレットの場合、ネットワーク情報が不足していて、正しい経路を選択することが難しい場合があります。ですので、モバイルウォレットで送金した際は、ライトニングネットワークの情報がまだ同期されていなくて、正しい経路選択ができなかった可能性が考えられます。
送金手数料の設定が低すぎると送金ができない
東:自分の場合、一定時間待って何度試しても同じ問題が続くことがあります。その場合はどのように対処すればよいでしょうか。
小川:その場合、他に考えられる原因としては、送金手数料が低すぎて経路選択がうまくいっていない可能性があります。自分が設定した最大手数料よりも低い手数料での経路選択ができていない可能性も考えられます。
東:確かにライトニングでは送金者自身が最大で許容する手数料を、最大1%や0.1%といった具体的な割合で設定することができます。ただし、この条件が厳しすぎると、送金可能な経路が見つからず、送金が失敗する可能性があります。例えば、不動産を探す際に条件を厳しく設定しすぎると、条件に合致する物件が見つからない状況と似ています。
小川:そうですね。
モバイルウォレットが失敗しやすい理由はCPUやメモリ不足?
東:ただ、最大許容手数料を例えば5パーセントに引き上げたんですよ。この設定であれば通るだろうと思ったんですが、それでも失敗が続いたんです。
それで、モバイルウォレットの開発者に問い合わせたことがあります。エラーが発生している旨を伝えたら、開発側がモバイル上で過去に閉じたチャンネルなども含めた不要な情報が蓄積されており、そのため経路選択に時間がかかってしまうと説明されました。一度情報をクリアすると一時的に安定することもあるが、再度送金を試みると同じ問題が再発することがありました。
こうした状況についてもう少し詳しく聞きたいのですが、ライトニングネットワーク上でのノードやウォレットの情報は通常どのように保存され、蓄積されていくのでしょうか。また、それが送金の安定性に影響を及ぼす可能性はありますか。
小川:ライトニングネットワークでは、モバイルウォレットやノードの種類に関わらず基本的に同様の情報が保存されます。ライトニングの場合、経路選択にはチャネル情報やノード情報などが必要ですが、これらの情報はウォレットやサーバーに蓄積され、経路選択のために利用されます。しかし、モバイルウォレットの場合は、限られたCPUやメモリのリソースを利用するため、計算に時間がかかることがあり、それが送金の失敗に影響することがあります。
ですので、サーバーであればそれほど問題ない計算でも、モバイルウォレットの場合はCPUやメモリのリソースが限られており、経路選択に時間がかかることがあるため、モバイルウォレットだと送金が失敗する原因の1つとなる可能性があると考えられますね。
他に考えられる失敗の要因は?チャネル管理や流動性について
東:特に最近は、以前と比べて非常に不安定になっているように感じます。この状況には他にも考えられる要因があるのでしょうか?例えば、ライトニングネットワーク上のチャネル数の増加が影響している可能性もありますよね。
小川:それも考えられます。それ以外にも、モバイルウォレット内のチャネル数が影響している可能性も考えられます。自身が保有しているチャネル数が多すぎることも一因となっているかもしれません。経路検索する選択肢が増えてしまうので。
東:なるほど。ただ、自分はプライベートチャネルをBoltzノードに一つだけしか貼っていないんですよね。それでも全然安定しないんですよね。
小川:あとは、バイナンスに送ろうとして、流動性が足りてないというくらいでしょうか。
東:いや、せいぜい1万satoshiくらいなので、Boltzやバイナンスの間を経由して確実に送金できるはずだと思うんですよね。しかし、それでも全然通らないんです。結構、テストも繰り返してみました。
ノンカストディアル型は使いやすくなる?新技術トランポリンルーティングについて解説
東:このような問題が数万satoshiのような大きな金額で送金しようとすると、さらに悪化して送金が通らない可能性もあると考えています。ノンカストディアルのライトニングウォレットは、しばらくの間、数年間にわたって開発が進められ、改善もされてきましたが、やはり少し難しいと感じてしまいました。こういった部分、小川さんの考えはどうでしょうか?
もし皆が難しいと感じるなら、カストディアル型のサービスに移行していく可能性もありますよね。カストディアル型の方が安定しているし、チャネルマネジメントのことを気にする必要もありませんしね。
ノンカストディアルのウォレットでも、いずれはカストディアル型と同じようなUXで使えるようになるのか、また新しい工夫や技術が登場する可能性はあるのか、小川さんのご意見はいかがでしょうか。どういった進展があるのか、教えていただけると嬉しいです。
小川:モバイルウォレットの場合、CPUやメモリ不足によって経路選択に時間がかかることがありますね。経路選択を外部に委託する仕組みは一応存在していて、まだ実装はされていないと思いますが、それが「トランポリンルーティング」というものです。
それを利用すれば、経路選択を外部のノードやサーバーに託して、サーバー側で経路選択を行い、その経路上でモバイルウォレットが送金を行うという方法を採用すれば、ある程度は緩和されるのではないかと考えています。
東:モバイルのノンカストディアルウォレットで送金が失敗する多くのケースは、やはりこの経路選択の計算に起因するものだと認識で合ってますかね?
小川:そうですね、その通りだと思います。
東:では、このトランポリンルーティングが実装されていくと、モバイルのカストディアルウォレットでも経路選択の計算は外部サーバーが担当するため、モバイル上の負担も減少し、送金の安定性が向上するということですね。
BreezやPhoenixといったLSP型のアプローチは?
東:なかなかモバイル上で経路選択を完全に行うのは難しいのかなと感じましたね。もともと、BreezやPhoenixなどは、こうした課題からLSP(Lightning Service Provider)と呼ばれるものを採用しています。簡単に言うと、ウォレットを提供する会社のノードが、ユーザーにとってわかりやすい方法でノード接続を行い、UXを向上させるアプローチです。
これらの方法では、経路選択にどのようなメリットがあるのでしょうか?このLSPとウォレットが統合されたノンカストディアル型ウォレットは、経路選択の段階でも安定性を保つ工夫がされているのでしょうか?
小川:Breezはおそらく、モバイル上で経路選択を行っていると思われます。Phoenixウォレットの場合も、現状ではモバイル上で経路選択を行っていると考えられますが、将来的にはトランポリンルーティングやトランポリンペイメントなどにも力を入れており、外部への委託なども検討されているかもしれません。ただし、現時点ではまだモバイル上で経路選択を行っている可能性が高いです。
東:なるほど。Phoenixは最近、スプライシングという技術を導入して、チャネルのサイズや流動性のマネジメントをより効率的に行えるようにしています。トランポリンルーティングについても実装していく可能性が高そうっていうことですね。
ウォレットのバージョンを最新に保つことも大切
東:そろそろまとめに入っていきます。ノンカストディアルなライトニングウォレットが安定しない問題の主な原因は経路選択の計算に関するものであり、。トランポリンルーティングといった新たな技術やアプローチが導入されることで改善が期待される、という認識で正しいでしょうか。もし付け足すべきことがあればお知らせください。
小川:少し関係がないかもしれませんが、ウォレットのバージョンを最新に保つことも大切だと思います。特にLSP型ウォレットの場合、LSPのサーバーと同期する必要があるため、古いバージョンでは最新情報が正しく取得できず、経路選択に影響が出る可能性があります。したがって、モバイルウォレットを使用する際には最新のバージョンにアップデートすることが重要です。
東:そうですね、Blixt Walletなどのオープンソースウォレットは頻繁にアップデートされるんですが、アップデートする度に安定したり、不安定になることがある気がしています。発展途上といった感じですね。
想定よりも複雑な話題もあったかもしれませんが、今回はここまでにして、次回以降も技術的な話題をわかりやすく議論していく予定です。ありがとうございました。