ライトニングノード実装と言われて多くの方が最初に連想するのはLightning Labs社が開発を主導するLnd、その次にBlockstream社主導のCLNかと思います。世の中のライトニングノードの98%以上がこの2つのいずれかのノード実装に該当するような勢いでシェアを寡占していますが、ライトニングノード実装自体は他にもあります。そのような「第3勢力」的なノード実装の中で一番古くからやっていて存在感を放っているのはACINQ社のEclairでしょう。

ライトニングネットワークの最初の数年間は一般ユーザーでもEclairを選んで利用する人もいましたが、今ではすっかりC向けでは存在感がなくなってしまったEclairについて、なぜ今も生き残っているのか、どういう差別化ポイントがあるのか見ていきます。

・ACINQ社の、ACINQ社による、ACINQ社のための実装

・大規模ノードとしてなら採用価値あり?

・もっと周辺ツールが公開されればシェアは増えそうだが、そうはならない理由

ACINQ社の、ACINQ社による、ACINQ社のための実装

まずEclairの一番の特徴はというと、Phoenix Walletを運営するACINQ社がPhoenix WalletのLSPとして多数の顧客ノードとライトニングネットワークを中継する役割を担うために開発を続けているという点です。

💡
LSPとはセルフカストディ型のライトニングウォレットのエンドユーザーに流動性提供をする役割のノードです。ライトニングの特徴として「受取可能額(インバウンドキャパシティ/リモートバランス)」の概念があり、ライトニングで受け取りから始めたい場合は誰かに流動性を提供してもらう必要があります。一般的にはウォレットの運営事業者が行い、一定の手数料を課します。

LSPについては過去記事をご覧ください:

今年はLSP戦国時代の幕開け
先週はカストディアルなライトニングウォレットに対する逆風もあり、LSPに頼るがノンカストディアルなウォレットが勢力を伸ばしている話を書いたところですが、今週まさに後者の代表例であるBreezが「Open-LSP Model」というサードパーティLSPとの収益シェアリング計画を公表しました。 また、本稿の執筆中にもc=というSpiral (Square Crypto)と関連の深いLSPが表舞台に出てくるなど、ウォレットの裏側でユーザーにサービスを提供するLSP業界の発展が見込めそうです。 Breezはなぜ、どのようなモデルで第三者LSPを取り込むことにしたのでしょうか、そしてその取り組みは成功するのでしょうか。 ノード管理の大変さは技術だけの問題ではない ビットコイン研究所で何度も触れているように、大規模なルーティングノードの運用はけっこう大変です。ましてやライトニングウォレットを運営するLSPという立場もあると、可用性や速度面、コスト面の要求は単なるルーティングノードより高くなる上に、気まぐれなユーザーが何ヶ月もオフライン状態を継続した後に急に大きな送金を受け取りたいような場
LSPは儲からない?ノンカストディアル・ライトニングウォレットを支えるインフラからVoltageが撤退
皆さんが主に使われているライトニングウォレットはノンカストディ型のものでしょうか? ライトニングウォレットは大別するとカストディ型・ノンカストディ型に分けられますが、一般的にはカストディ型のもののほうが人気があります。ライトニングノードほどではなくとも、初めて使うときにチャネルの開設が必要であったり、ときどき起動して同期しないといけないなど、多少の不便やコストがあるためです。 とはいえ、ノンカストディ型のライトニングウォレットにも需要はあり、大きな金額を安心して使いたいユーザーが使っていたり、カストディ型のウォレット運営が規制面などで難しい地域で提供されていたりします。昔はスマホにがっつりライトニングノードを丸ごと載せてしまうアプローチも試されたりしましたが、今は「LSP」と呼ばれるサービスプロバイダーと二人三脚でライトニングノードとして機能する、軽量な「LSP型のライトニングウォレット」が主流となっています。 具体的にはPhoenix、Breez、Zeus、Blixt、Mutinyなど多くのウォレットがこの形態を採用しており、LSPという存在がノンカストディ型のライトニングウォ

他にほとんどユーザーがいないということは、Eclair自体にACINQが求める機能がどんどん入っていき、ACINQにとって不要な機能は追加されないということでもあります。EclairはあくまでACINQ社の、ACINQ社による、ACINQ社のためのライトニングノード実装であることを覚えておきましょう。

ちなみに昔はEclairのブラウザ拡張などもあり、C向けの需要を狙っていた時期もありました。おそらくブラウザ拡張経由でWebでライトニングを使う状況が増える(WebLNという規格で)と思ってのことでしたが、今はEclairのブラウザ拡張はおそらく退役しており、似たことを実現するならAlbyのブラウザ拡張を利用することになります。AlbyもEclairノードに接続できた時期もありましたが、今はできなくなっています。

The 6 different Lightning backends for Alby Hub
Alby Hub runs on top of several lightning implementations: LDK, LND, Greenlight, Phoenixd, Breez SDK and Cashu Mint.

大規模ノードとしてなら採用価値あり?

では、ACINQ社が必要としている機能はなにかというと「とてつもないスケールのライトニングノードを安定運用できる」に尽きます。

まず、AmbossでACINQのノードを見てみると、なんとパブリックキャパシティが434 BTC、公開チャネル数が2248本もあります。これに加え、Phoenix Walletの各ユーザーと非公開チャネルを1本ずつ持っているので、そこにも少なく見積もって数千本はチャネルが存在します。

ACINQ - 03864e...7a3f8f - Amboss Space
03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f - 2248 channels - capacity 43,401,842,543 sats - Bitcoin Mainnet - Amboss Space

送金の中継(ルーティング)も行っているので右から左へ様々な送金が毎秒何件も試みられているこのようなノードは非常に高いパフォーマンスと信頼性が要求されます。万が一このノードが故障したら冷や汗が止まらないでしょう。

そのためにACINQには自動バックアップ機能やネイティブのロードバランシング機能などがあり、これらの機能を自作したり既存プラグインなどで賄わないといけないLNDやCLNと比べてパッケージ提供感が強いです。

また、このような巨大ノードを運用する際のセキュリティ対策として、ACINQはライトニングノードからの出金になる操作にはハードウェアウォレットの操作が必要な仕組みを導入しています。詳しくは過去記事をどうぞ:

ACINQはハードウェアウォレットでライトニングノードを守っている?
ライトニングは仕組み上、自分のノードが長期間オフラインになっているとチャネルを共有する相手の不正によって資金を喪失するリスクがあります。一番簡単な対策は定期的に(例えば週に1度は)オンラインになることですが、人間は忘れることもあるので実務上はほぼ常にオンラインであろうとするのが最善です。そこでUmbrelのような自宅サーバーやVoltage.cloudのようなホスティングサービスの出番なわけですね。 「オンライン要求」と呼ばれるこの特徴は残念ながらライトニングノードはホットウォレットとしてしか存在しえないという弱点に繋がっています。もちろん、十分にセキュリティを強化すればある程度は問題ありませんが、長期保管のゴールドスタンダードであるコールドウォレットと比べると攻撃方法が多数考えられるのは間違いありません。 個人ユーザーはまだしも、数百BTCをライトニングで運用している取引所やウォレットLSPなどはどのようにセキュリティ対策を行っているのでしょうか? 今日はルーティングノードのパブリックキャパシティで数百BTC、Phoenix Walletのプライベートチャネルでさらに数百BTC

もっとも、この仕組み自体は(ほぼ技術ブログで内容は述べられているものの)オープンソースで提供されているわけではないため、Eclairを導入しても同様のシステムを自作しなければ同じことは実現できません。

また、CLNやLNDはビットコインノードをバックエンドに用意しなくても動作する簡易なモードがあり、低コストでお試しすることができますが、Eclairは必ずバックエンドにBitcoin Coreが必要になるなど、お手軽さは重視されていません。

もっと周辺ツールが公開されればシェアは増えそうだが、そうはならない理由

このように、エンタープライズ向けとしてのスペックは十二分に高いと思われるEclairですが、シェアをなかなか伸ばすことはできていない印象です。その理由がいくつか挙げられます:

管理用ツールなどが少なく、増えづらい条件が揃っている

C向けを捨てているため、オープンソースの管理ツールがほとんど対応していません。もちろん、REST APIがあるので対応させることはできるでしょうが、REST API自体が簡易な上にあまり評判はよくありません。

ましてや業務用であり、ACINQの使い方自体もカスタマイズが前提(Phoenix Wallet↔ACINQ間はかなり高度にカスタマイズされたライトニングを使っている)となっているため、汎用ツールが開発されにくい条件が揃っているといえます。

お手軽さはLND、CLNには大きく劣ると言えるでしょう。

肝心のエンタープライズ向け開発は競合ノード実装も頑張っている

また、巨大バックエンドを担えるノード実装がEclairだけかというと、そこは各社頑張っており、複数のノードを立ち上げてうまくロードバランシングする方法などがあります。特にCLNやLDKを使って大規模なトラフィックをさばくことができているノードもあり、BlockstreamやBlockといった有名どころが開発を主導しているためニッチなネームであるACINQにとっては不利でしょう。(そもそもACINQが積極的に売り込んでいるイメージもあまりないですが)

LNDも大規模なノードに採用されることはありますが、大規模運用を想定した洗練度は低めな印象を受けます。(最近やっとデータベースが効率化されました)

開発にマイナーな言語を採用している

EclairはScalaという言語で開発されています。2024年のStackOverflowの調査によるとプロ開発者のうちScalaを過去一年で使った、または来年使いたいと答えたのは2.9%と、C(CLNの開発言語)の16.9%、Go(LNDの開発言語)の14.4%、Rust(LDKの開発言語)の11.7%に大きく引けを取っています。

開発、カスタマイズや監査など様々な状況においてEclair自体のコードベースを確認する可能性があるので、マイナーな言語というだけでコストが増加し、採用のハードルにはなります。


Eclairはこれらの短所にもかかわらず、エンタープライズのバックエンド向けに検討してみる価値はあるノード実装だと思うので、いつか立てて実験したいと思っています。Umbrelが対応していれば楽なんですが…