私たちは、ライトニングネットワークでの送金を行うには、通常、複数の中間ノードを経由した経路を構築する必要があり、中間ノードの利用可能残高は通常限られているため、最終的には支払いの成功率に影響を与えることになります。**経路内のノードに十分な資金があることを確認し、ユーザーエクスペリエンスを向上させるために、流動性管理プランを活用する必要があります。**しかし、流動性管理の問題を深く理解するには、まずいくつかの基本的な概念を導入する必要があります。例えば、ローカルバランスとリモートバランス(Local and Remote Balance)、インバウンドキャパシティとアウトバウンドキャパシティ(Inbound and Outbound Capacity)などです。
Bob はオフチェーンチャネルで Alice と HTLC を使って取引していますが、逆の方向です:Alice は R を提示してから Bob が支払ったお金をロック解除することができます。Alice が R の値を提示すれば、Bob はそれを使用してオンチェーンでロックされた Alice の BTC を解除できます。その後、Alice のチャネル内のローカル残高が増加し、オンチェーンの資産残高が(手数料を無視すれば)等価減少しました。基本的には1対1の交換です(理論を説明しやすくするために、通常の潜水艦スワップの手順に厳密に従っていないことに注意してください。実際には、ほとんどの場合、一方がオフチェーンでHTLCを作成し、もう一方がオンチェーンで対称的なHTLCを作成します)。
ライトニングネットワークの流動性管理に関する解説
著者: RGB++ Fans; ソース: バイト要素 CKB
之前の解説記事では、支払いチャネル、マルチホップルーティング、HTLCなどのライトニングネットワークに関連する核心概念について簡単に解説しました。
私たちは、ライトニングネットワークでの送金を行うには、通常、複数の中間ノードを経由した経路を構築する必要があり、中間ノードの利用可能残高は通常限られているため、最終的には支払いの成功率に影響を与えることになります。**経路内のノードに十分な資金があることを確認し、ユーザーエクスペリエンスを向上させるために、流動性管理プランを活用する必要があります。**しかし、流動性管理の問題を深く理解するには、まずいくつかの基本的な概念を導入する必要があります。例えば、ローカルバランスとリモートバランス(Local and Remote Balance)、インバウンドキャパシティとアウトバウンドキャパシティ(Inbound and Outbound Capacity)などです。
過去には、ライトニングネットワークの基本的な構成要素は、ノードとチャネルであり、後者はBTCネットワークに基づいて構築されたオフチェーンの1対1の送金施設です。チャネルを初期化する際に、両当事者は初期残高として一定額の資金を投入します。あなたの側の残高は「ローカル残高」と呼ばれ、相手側の残高は「リモート残高」と呼ばれます。 ローカル残高は、相手側に送金できる金額を決定し、支払い能力(送金容量)を制限し、リモート残高は相手側があなたに送金できる金額を決定し、受け取り能力(入金容量)を制限します。
チャネルの総容量は、各参加者の残高がチャネルを閉じるまで頻繁に変更されることができますが、両者の合計は変更できません。チャネル全体を再起動するか、「チャネルスパンサー」と呼ばれるものを使用して資金を注入する必要があります。
(この図は、あなたとRobertそれぞれの残高を示しており、あなたのローカル残高は5で、リモート残高は3で、チャネル全体の容量は8です)
上記の基本概念を理解した後、ライトニングネットワークにおける流動性管理がどの問題を解決するかを見てみましょう。次の図は、簡略化されたノード接続図を示しており、左下隅のあなたは LNTop ノードにのみ接続していることがわかります。あなたのリモートバランスが 3 であるため、最大で 3 ドルの送金を受けることができます。しかし、Sophieがあなたに 1 ドルを送金しようとする場合、中間ノードの LNTop への可用残高が不足しているため、失敗します(赤い枠内、そのノードの LNTop への送金容量は 0 です)。
言われていますが、チャネル容量はライトニングネットワークが初期段階で直面した深刻な問題の一つです。**もし流動性がネットワーク全体でより十分に分散していれば、このような問題は効果的に軽減されるでしょう。そのための解決策は一般的に「流動性管理」と呼ばれ、例えば、ライトニングプールを介してクライアントが多くの流動性のあるノードに接続する、必要に応じて新しいチャネルを開いたり閉じたりする、またはチャネルの接続や再平衡などの方法を導入してオンチェーンまたはオフチェーンでチャネルのバランスを調整することがあります。
現在、一部分のウォレットクライアントは、ユーザーの支払い行動とネットワーク状況に基づいて、チャネルをスマートに管理し、十分な流動性を確保する自動化されたチャネル管理機能を提供しています。新規ユーザーは、ライトニングネットワークに接続した直後に、「単方向投資」モードを採用することもできます。つまり、チャネル相手にのみ投資し、自分自身はチャネルの初期化時に投資を行わないことで、ユーザーの経済的負担を軽減することができますが、その代償として初期段階では外部への支払い能力/支払い容量はありません。
以下では、ライトニングネットワークの流動性管理ソリューションについて、より詳細に解説します。まず、**チャネルレンタルについて理解しましょう。このソリューションは、ノードの「受信容量」の問題を解決することを主な目的としています。**つまり、他の人があなたに送金する場合、支払い経路を成功させるためには、経路に含まれるすべてのノードに対して要件を満たす必要があります。例えば、十分な送金可能残高/送信容量がある必要があります。前述の支払い経路が失敗するシナリオの根本的な原因は、中間ノードと他のノードとの間のチャネルの流動性が不足しているためです。
チャネルの構築にはコストがかかります。参加者はしばしば一部の資金をロックし、機会費用が発生する可能性があります。そして、いわゆるチャネルのリースとは、市場志向の手段を通じてノード運営者が直接取引を行い、資金余剰のノードが他のノードにチャネルを提供することを積極的に行うためのアイディアです。たとえば、あなたが商人であり、いつでも他人からの送金を受け取る必要があり、高い限度額の要件を満たす必要があります。1日の「受け取り能力」は200 BTCを超える必要があります。
それで、あなたはLighting Poolを介して4つの大型ノードとプロトコルに合意しました。これらの4つのノードは、24時間のチャネルを構築するためにあなたと連携し、それぞれ50BTCをロックし、あなたに50BTCのリモートバランスを提供します。これにより、各チャネルでの受け取り能力は50BTCになります。誰かがあなたに送金する場合、これらの4つのノードのいずれか1つを仲介者として使用して支払い経路を構築することができます。
(1ml.comで、複数の有名なライトニングネットワークのノードオペレーターを見ることができます。これらのノードは余分な資金を持ち、他のノードとの複数のチャネルを確立し、流動性をリースして収益を得ることができます)
上記のリースプールに加えて、**流動性広告(Liquidity Advertisement)**があります。流動性プロバイダーは、ライトニングノードのゴシップメッセージを使用して自分の要求価格やチャネルの継続時間を広報することができます。要求価格を受け入れるノードは、それとチャネルを開始することができます。このようなリースベースのソリューションは、証拠金制度と組み合わせているため、一方が突然契約を破棄することを防ぎます。
**現在、Lightning Labsなどのライトニングネットワークの開発者やFiberは、単方向の注入に基づいた流動性リースのシナリオを最適化するために取り組んでいます。**例えば、FiberはCKBのスマートコントラクト機能を活用して流動性の代替支払い制度を導入する予定であり、特定のLSPサービスプロバイダーノードとユーザーがチャネルを構築し、一定期間ユーザーに無料の入金容量を提供して受け取りニーズを満たします。ユーザーが一部のお金を受け取った後、契約は自動的にコストを差し引き、関連する流動性ステーキングメカニズムについても議論されています。
大まかに言えば、チャネルリースは通常、ノード間の接続の確立、流動性の確保の問題を解決するために使用されます。以下の**スプライシング(Splicing)チャネルの場合、オンチェーンの操作によってチャネルの両側の総残高を直接変更します。**通常、チャネルの開始と終了には2/2の署名が必要であり、参加者の共有オンチェーン資産を再分配します。早期のライトニングネットワークの場合、チャネルが一度開始されると、終了して再起動しない限り、チャネルの総残高を変更することはできません。
通道の結合は後に提案された新しい方法であり、既存の通道を閉じることなく、参加者の協力の下でチャネルの両側が共同で支配するUTXOを直接オンチェーンで再構成および更新することができます。たとえば、既存の資産に新しい資産を追加して参加者が共同で管理し、それによりチャネル全体の残高を変更することができます。次の図は、このアイデアを簡単に示しており、左側には古いチャネルに対応するオンチェーン資産(UTXO1)があり、AliceとBobがマルチサインで制御しています。その後、両者がチャネルを結合し、もう1つの資産(UTXO2)を共同で管理するために追加し、最終的にチャネルの両側が共同で支配できる資産(UTXO3)の量が増え、容量が増加します。
通道拼接も、過剰な資金を減らすために使用することができます。一時的にアイドル状態の資産を通道から移動し、資金利用効率を向上させます。従来のチャネルの閉鎖/再起動に比べて、2回のオンチェーンインタラクションが必要でしたが、チャネルの結合には1回のオンチェーン操作のみが必要で、コストを大幅にドロップすることができます。チャネルの結合には明らかな利点がありますが、歴史的な理由から、このソリューションは完全に成熟していないため、広範な採用にはまだ時間がかかります。
通道拼接を理解した後、**チャネルリバランス(Channel Rebalancing)の考え方を紹介します。これは、手数料を無視して、チャネルを閉じずにチャネル内の総容量を変更せずに、オフチェーン残高を調整する手段です。**ライトニングネットワーククライアントを実行し、合計3つの支払いチャネルを他のノードと確立したと仮定します。
各チャネルの資金配分は次のとおりです:
現在の問題は、チャネル2とチャネル3での送金可能額が不足していることです。対戦相手に最大0.1 BTCを送ることができますが、大口の送金ニーズには対応できません。一方、チャネル1の送金可能額は0.9 BTCに達しており、短期間では使用しきれません。明らかに最善の方法は、チャネル1から余剰資金を他の2つのチャネルに移すことです。したがって、チャネル1のローカル残高から0.4 BTCをチャネル2に、0.4 BTCをチャネル3に移動することを計画しています。このような効果を実現するためには、2つの**環状支払い(circular payment)**を完了する必要があります。
具体的な操作方法は上図に示すとおりです。直接ノードXに0.8BTCを送信し、後者がYとZにそれぞれ0.4BTCを送信し、その後YとZがチャネル2およびチャネル3でそれぞれ0.4BTCをあなたに送信して、ローカルの残高を増やします。これにより、将来の大口送金ニーズを満たすために十分な転送可能な資金が得られます。
図を見ると、**ループペイメントの本質は、自分自身に送金して、異なるチャネル間の残高を行き来させて、最終的に全体の残高をあなたの予想結果に配分することですが、この方法だけでは任意のチャネルの合計残高を空から増やすことはできません。さらに、その実施には以下の仮定が必要です:XはY、Zに対して十分な資金移動ができること、つまり、ループペイメントには通常、関連するノードがあらかじめ一定の流動性準備を持っていることが求められます。
ループ支払いは、チャネルの再バランスの考え方の一つの実現方法であり、再バランスの方法は、潜水艦スワップなどの他の方法と組み合わせて実践できます。以下では、サブマリンスワップを紹介し、通道を閉じないで、HTLCなどの方法を利用して、オンチェーンとオフチェーンの資金を交換する方法を説明します。
最も簡単な潜水艇の交換シーンは、オンチェーンでチャネルに入金することです。たとえば、Alice がすでに Bob と 1 対 1 のチャネルを確立しているとします。しかし、しばらくすると、Alice のローカル残高がほぼなくなり、外部に支払いをすることができなくなります。この時、Alice はさらに資金を注入する必要があり、チャネルを閉じて再起動する必要があります。しかし、このチャネルはリースされており、早めに閉じるのはあまり得策ではありません。では、どうすればよいでしょうか?
潜水艇を介した場合、プロセスは比較的容易になりますが、HTLCを使用する必要があります。まず、Aliceはランダムな数値Rを生成し、そのハッシュH®を取得します。その後、Aliceはオンチェーン上でBobのアドレスにBTCを送信し、解除条件はHTLCの制約を受けます。BobはこれらのBTCをオンチェーンで解除するために、H®に対応する元の数値Rを知る必要があります。
Bob はオフチェーンチャネルで Alice と HTLC を使って取引していますが、逆の方向です:Alice は R を提示してから Bob が支払ったお金をロック解除することができます。Alice が R の値を提示すれば、Bob はそれを使用してオンチェーンでロックされた Alice の BTC を解除できます。その後、Alice のチャネル内のローカル残高が増加し、オンチェーンの資産残高が(手数料を無視すれば)等価減少しました。基本的には1対1の交換です(理論を説明しやすくするために、通常の潜水艦スワップの手順に厳密に従っていないことに注意してください。実際には、ほとんどの場合、一方がオフチェーンでHTLCを作成し、もう一方がオンチェーンで対称的なHTLCを作成します)。
上記のシナリオは、主にオンチェーン資産をオフチェーン残高に交換するために使用されます。AliceとBobの操作方向を調整するだけで、引き出し操作に変更したり、オフチェーン残高をオンチェーン資産に換金することができます。**潜水艇スワップは、HTLCとタイムロックなどの組み合わせ機能によって安全を保証します。**相手が途中で協力を拒否しても、HTLCにロックされたお金は安全です。なぜなら、相手はHTLCの秘密鍵を知らないためです。時間ロックが切れた後、元本を取り戻すことができます。
しかし、上記のシナリオでは、あなたの元本は盗まれませんが、オンチェーンでHTLCを作成する必要があり、それには手数料の消耗が必然的に発生します。相手がお断りすると、あなたには一定の影響が生じます。これらの問題を解決するために、サブマリンスワップにはいくつかのサポート手段があります。例えば、前払い金、信用システムなどの罰則手段があります。
再度要約すると、**サブマリン・スワップの核心的な考え方は、オンチェーン/オフチェーンの資産を柔軟に交換することです。**チャネルの再バランスの考え方に従うと、より優れた流動性調整策を実現することができます。ここでは簡単な例を挙げます:
しかし、以上の知識をまとめると、潜水艦の相互交換やチャネルの結合、チャネルの貸し出しなどの流動性調整操作はすべてオンチェーンに操作痕跡を残し、手数料が発生します。このような操作を頻繁に行うと、ユーザーの経済コストとUXに圧力がかかります。BTCのライトニングネットワークはBTCメインネットに依存しているため、頻繁なオンチェーンのやり取りは現実的ではありませんが、CKBベースのFiberはこのような圧力が比較的小さく、流動性管理の体験がスムーズです。しかし、ライトニングネットワークとFiberはともに新しい流動性ソリューションについて積極的に研究を行っており、将来的にはMercury Layerなどのプロジェクトチームとの積極的な協力のもと、より適切な道筋を見つけ出す可能性があります。