2020年1月16日 2 min read

LNノードの故障時にGOXを防ぐ複数台体制のカギ

LNノードの故障時にGOXを防ぐ複数台体制のカギ
Photo by Joshua Case / Unsplash

ライトニングノードの多くは個人が動かしているものですが、特に大規模な事業者が動かす場合に考慮すべき点がいくつかあります。例えば常に送受金が可能になるようにチャネルの残高を管理したり、オフラインになってしまうことがないようにすることです。また、デバイスが故障した場合などに速やかに復旧するために、まだオンチェーンに反映されていない送金などのデータをバックアップしておく必要もあります。

今回の記事では、ライトニングノードのネットワークからの切断時や故障時に、安全に予備のデバイスに切り替えるために普段から「同じノード」を複数台のデバイスから使えるようにする進展を紹介します。

「バックアップ」のノード

上述したとおり、事業者にとって致命的なことに、今はオフラインのノードは支払いに使えませんし、万が一長期間オフラインになってしまうと不正行為とみなされ相手によってチャネルの残高が没収される可能性があります。そこで、ある程度大きな金額をライトニングで使用しているユーザーが、ライトニングノード固有のデータをクラウドなど違うデバイスにあるデータベースにバックアップし、故障に備えるということが現在行われています。

その状況で、ノードを動かしているデバイスが故障したときに、別のデバイスで速やかにライトニングノードを立ち上げることができれば、データの損失もチャネル残高の没収も免れることができます。これは一番簡単なライトニングノードの「バックアップ」と言えるでしょう。

ただし、ここに1つ「罠」があります。平常時に複数のライトニングノードが起動していて、1つのデータベースを共有していると、同時に書き込もうとするなどしてデータが破損する可能性があります。(同じソフトで動いていれば、同時にアクセスしようとすることも容易に想像できます。)
こうなると、意図せずとも不正行為を働いたとして、やはりチャネル残高没収の憂き目に遭います。これを避けるには、ノードが落ちたことを確認してから予備のノードを起動しなければならず、ダウンタイムが発生します。この問題に関して、ライトニング払いのAPIを開発しているSuredbitsが昨年末、Eclair Walletにシンプルな解決策を実装して提案しました。

データベースロック

Suredbitsが実装したデータベースロックとは、ライトニングノードのデータが格納されているリモートのデータベースにアクセスしている最中は、予備のノードからのアクセスを許さない、というものです。

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to ビットコイン研究所.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.