Lightning Network は、支払いチャネルを使ってビットコインを送るネットワークです。Bitcoin の基盤となるネットワークのルールを利用するため、第二層と呼ばれます。参加者は、支払いのたびに基盤ネットワークへ記録する代わりに、すでにロックしたビットコインの配分を合意のうえで更新します。別のコインを使うわけではありません。協力している間は素早く支払えます。協力が終わった場合も、あらかじめ用意した Bitcoin トランザクションで決済できます。
通常のビットコインの支払いは、限られたブロックの空き容量をほかの取引と取り合いながら、記録されるのを待ちます。Lightning では、まず参加者が支払いチャネルを用意し、その後は署名済みのデータを交換して資金の配分を変えます。通常どおり協力していれば、完了した支払いを一件ずつブロックに記録する必要はありません。それでも、最終的な決済を支えるのは Bitcoin トランザクションです。この追加の層が Bitcoin のルールを取り払ったり、独自のトークンを発行したりすることはありません。 [2] [1]
チャネルは、実際のビットコインを裏付けとする、二人の参加者の間の取り決めです。開設時には、基盤ネットワーク上で funding transaction、つまり資金を拠出する取引を作ります。その出力、すなわち使うための条件が付いた一定額の資金が、チャネルの元になります。参加者は、閉鎖時に資金を分けられるよう、署名済みの commitment transactions を用意します。残高の変化は、すでにロックしたビットコインへの権利の配分を変えるもので、新しいビットコインを作るものではありません。 [2]
自己管理型ウォレットでは、鍵とチャネルの管理に必要なデータを自分で管理できる必要があります。アプリによっては直接これらを扱い、別のアプリでは補助サービスを利用します。一方、カストディ型サービスでは、運営者が資金とチャネルを管理します。画面の残高は、運営者がいくら引き出せると認めているかを記録したものです。Lightning という名前や画面の金額だけでは、両者は区別できません。誰が署名できるのか、何をバックアップするのか、どのサービスの稼働に頼るのかを確認する必要があります。 [2]
チャネルの相手に支払うと、二人で新しい資金配分に署名します。一般的なチャネルの仕組みでは、古い状態を失効させます。失効済みの状態で決済しようとすると、不正をした側が自分の資金を失う可能性があります。アプリ上の数字を書き換えるだけの、拘束力のない処理ではないのです。相手が協力しなくなっても、用意済みの commitment transaction を使って Bitcoin 上で一方的にチャネルを閉じられます。ただし、この保護には正しい状態データと期限内の対応が必要です。 [3]
単純化したチャネルで、自分の側に 1 000 000 sat、相手の側に 0 sat あるとします。Satoshi、略して sat は BTC の最小単位です。相手に直接 200 000 sat を支払うと、配分は自分が 800 000 sat、相手が 200 000 sat になります。合計額は変わらず、この更新自体に新しいブロックは必要ありません。この例では、手数料と必須の準備金を省いています。実際のチャネルで、表示された残高をすべて送れるという意味ではありません。 [3]
受取人との直接のチャネルがなくても支払えます。複数のチャネルを経由できますが、それぞれの区間で、支払いの方向へ動かせる資金が必要です。これが方向別の流動性、つまりその方向へ実際に送れる金額です。資金が反対側にあれば、総容量が大きくても役に立ちません。準備金、処理中の支払いの上限、中継手数料、ノードが稼働しているかどうかも結果に影響します。 [3]
複数のチャネルを通る支払いを結び付けるのが HTLC、Hashed Timelock Contract です。これは条件付きで資金を受け取る仕組みで、合意した暗号学的な指紋に一致する同じ秘密を明かすことと、時間の条件が関わります。その秘密を preimage と呼びます。受取人がこれを明かすと最後の支払いを受け取れ、中継者も自分宛ての支払いを受け取れます。期限は受取人に近いほど短く設定され、中継者に対応する時間を残します。支払いが完了しなければ、該当する時間条件を満たしたうえで資金を取り戻せますが、すぐに戻るとは限りません。 [3]
経路上で送る方向の資金が足りない、ノードが停止している、手数料が設定した上限を超える、といった理由があります。チャネル情報が古くなっていることもあります。その場合、ウォレットは別の経路を試したり、対応していれば支払いを分割したりできます。一度の失敗が、そのまま盗難やビットコインの消失を意味するわけではありません。ただし、普段の支払いが速いからといって、すべての支払い要求が最初の試行で即座に成功する保証もありません。 [3]
チャネルの最新状態を守り、相手が失効済みの状態を公開していないか監視する必要があります。そのような試みを監視し、期限内に対応できるサービスが watchtower です。ただし、すべてのバックアップや、利用するウォレット固有の復旧手順を代わりに引き受けるものではありません。Seed Phrase は鍵を復元するための単語列ですが、それだけで必要なチャネルデータまで復元できるとは限りません。使い始める前に、バックアップと復旧の方法、依存する補助サービスについて理解しておきましょう。 [4] [5] [6]
チャネルの開設と閉鎖には Bitcoin トランザクションを使います。一方的な閉鎖では、待機期間や手数料が発生し、処理中の HTLC を解決するために追加の取引が必要になる場合もあります。処理中の支払いに使われている資金は、該当する条件に従って解決するまでロックされることがあります。失敗しても即時かつ無料で返金されるとは限らず、普段の支払いが速くても基盤ネットワークへの出金が同じ速さとは限りません。それでも、Bitcoin 上で決済できることが、自分で管理するチャネルを支えています。 [4]
理解を深めるには、この項目とあわせて次もお読みください トランザクション, SegWit, Taproot, ウォレット, Transaction Fees. 次の項目からも参照されています ウォレット, SegWit, Taproot, ビットコインアドレス.