Raptor

Raptor

@1203

Bitcoin Dolphin 「HyperBitcoinization」

(;;)

No posts yet

LNノードのバックアップ&リストア考察

Lightning Networkのノード運用をする場合、特に重要なのがバックアップです。オンチェーン上のビットコインのバックアップは秘密鍵を保管しておくだけで良いですが、LNのノード運用をする場合は少し特殊です。LNノードのバックアップは大きく2つに区別することができます。それは①オンチェーン資金のバックアップと②オフチェーン資金のバックアップです。①のバックアップは秘密鍵の保管をするだけで問題ありません。②のオフチェーン資金のバックアップとは、チャネルのバックアップです。LN上のチャネルは送受信がある度にチャネル状態が更新されていくので、その都度バックアップをとる必要があります。もし古いチャネル状態で相手と通信をすると、不正な状態と見なされ、最悪の場合、資金を失うかもしれません。 data loss protection そのような場合を考慮して、LNの仕様書では data loss protection (DLP)と呼ばれる安全装置が付いています(02-peer-protocol)。これは、もしアリスのチャネル状態が5で、ボブのチャネル状態が6だった場合、アリスのチャネルは古い状態なので、ボブにチャネルを強制閉鎖することを依頼できる仕組みです。この依頼を受けたボブが取れる行動は、(a)最新のチャネル状態6で強制閉鎖するか、(b)古いチャネル状態、例えば自分の残高が多くなるようなチャネル状態まで遡り、そのチャネル状態で強制閉鎖することが考えられます。ボブが(b)の選択をしても、もしアリスが嘘を付いていて最新のチャネル状態までデータを保持していると、ボブはペナルティとして、アリスに全額没収されてしまいます。そのため、ボブは(a)の正直な選択を取ったほうが無難なのです。これが data loss protection と呼ばれる仕組みで、ゲーム理論的な側面があります。この仕様は各LNソフトウェアに実装されています。 またLNDでは、static channel backup(SCB)と呼ばれるチャネル開設がある度に取得するバックアップがあります。これは、最初のチャネル状態だけをバックアップして、リストア時にSCBからチャネル状態を復元しようとするとチャネル状態が古いので、DLPによってチャネルの強制閉鎖を相手に依頼するというものです。このSCBはLNDのみ実装されており、c-lightningやEclair coreには実装されていません。LNのバックアップでは秘密鍵以外にも②のチャネルのバックアップも必要でした。一見するとこのSCBは必須な気がしますが(実際コミュニティでも議論されている<a href="https://github.c

LNノード(c-lightning)のメモ

先程あるスポットライターさんからLN決済をしようとするとエラーとなるという連絡がありました。以前も他のスポットライターさんから同様な連絡を受けることがあり、そのたびにLNノードのメンテナンスなどの対応をしていました。 前回は、あるノード経由での支払いをしようとすると、そのノードからの応答がなくタイムアウトするというものでした。そこで、そのノードとのチャネルを閉鎖したところ支払いが成功しました。 今回の場合は、支払い時のタイムアウトを延ばすだけで支払いが成功しました。そのときのログを確認したところ、支払いにかかった時間は約1分で、さらにその支払い時には複数のチャネルを経由して送金をするMPP(Multi-part Payment)による送金でした。その時の支払いは9個に分割されて送金されていました。以下の図はMPPのイメージです。大きな支払いは少額に分割して複数経路で送金するという仕組みですね。 LNの場合、送金者が送金経路を計算して送金し、失敗したら再度別ルートで送金するというトライ&エラー方式です。ネットワーク上のノードが大きくなればなるほどこの計算量も増えてくるので効率の良い計算方法が必要になってきます。 SpotlightのLNノードはc-lightining versionv0.9.0なのですが、v0.9.1ではMPPの改善がされているとのこと。検証をとりつつバージョンアップしていこうと思います。c-lightningの最新はv0.10.0ですが、安定しているかどうかの検証も必要なため、あまりバージョンはあげたくないのがSIerの性です。普段は取引所にSegwitの対応を早くしろと言っていますが、いざ自分ごととなると保守的になってしまいますね笑 なにはともあれ、Spotlightのサービス向上に努めていきます。

Archives