ライトニングネットワーク概要

ライトニングネットワークの概要を説明する
今回は技術的な詳細はおいておき、機能とビジネスユースケースについて紹介する

前提

ライトニングネットワークに入る前に、なぜビットコイン上にプロトコルが作成されることが重要なのか、を考える

フェアネスプロトコル

ビットコインやライトニングネットワークを "トラストレス "と呼んでいるのをよく耳にすると思う
トラストレスという言葉は、システムの他の参加者を信頼する必要がなく運用できることを伝えるために使われる。ビットコインのような分散型システムでは、常に信頼できる相手と取引することを選択できる
つまり実は、ビットコインのような分散型システムは、全くトラストレスなのではなく、プロトコルにトラストをおいている
このような仕組みのことをフェアネスプロトコルと呼ぶ

現時点でフェアネスプロトコルが最も進んでいるは、BitcoinのコンセンサスアルゴリズムであるProof of Work(PoW)であり、その指標はHash Rateで図られる
Hash Rateは下記の表のように、右肩上がりに成長しており、このフェアネスプロトコル上で取引を行えることが、分散型システムにおいては最も重要であると、私は考えている

※ www.blockchain.com Total Hash Rate (TH/s) : https://www.blockchain.com/explorer/charts/hash-rate 2023/2/25時点

ビットコインのスケーリング

ビットコインとライトニングネットワークは、どちらもフェアネスプロトコルを実装したものである。では、なぜライトニングネットワークが必要なのでか?ビットコインで十分ではないのか? ビットコインは、処理できるトランザクションの量には限りがある
これまで何度も手数料が高騰したことは知っていると思う

この問題を解決するために、ブロックサイズを大きくしたり、ブロック時間を短くしたりして処理量を増やすというアプローチもある
このような方法により多くのブロックチェーンが作成されていることはご存知と思う
しかし、大きなブロックのノードを管理するのは難しく、資金力のある少数のノード運用者だけがノードを運用し続けることになり、フェアネスプロトコルのバランスが崩れる可能性が高くなる

1トランザクションあたり平均250バイトと仮定すると、すべてのトランザクションを受信できるだけで10メガバイト/秒(MBps)または80メガビット/秒(Mbps)のデータストリームが発生することになる。これには、トランザクション情報を他のピアに転送するためのトラフィックオーバーヘッドは含まれない。高速光ファイバーや5Gモバイルの速度からすれば10MBpsは極端とは言えませんが、この要件を満たせない人は、特に高性能インターネットが安価で広く普及していない国では、ノードの運営から事実上排除されることになります。

ユーザーは帯域幅に対して他にも多くの要求があり、トランザクションを受信するためだけにこれだけ消費することは期待できません。

さらに、この情報をローカルに保存すると、1日あたり864ギガバイトになります。これはおよそ1テラバイトのデータ、つまりハードディスクドライブに相当するサイズです。

1秒間に4万件の楕円曲線デジタル署名アルゴリズム(ECDSA)署名を検証することもかろうじて可能であり(StackExchangeのこの記事を参照)、ビットコインブロックチェーンの初期ブロックダウンロード(IBD)(生成ブロックから始まるすべての同期と検証)は非常に高価なハードウェアなしではほぼ不可能である。

1秒間に4万件のトランザクションは多いように見えますが、ピーク時に従来の金融決済ネットワークと同等になるにすぎません。マシンツーマシン決済、マイクロトランザクション、その他のアプリケーションの革新は、それよりも何桁も高い需要を押し上げると思われる。

簡単に言えば、全世界の取引を分散して検証するためにブロックチェーンを拡張することはできないのです。

しかし、もしフェアネスプロトコルを維持し、スケーラブルなオフチェーン取引を行う方法があったらどうなるか、という発想から、レイヤー2プロトコルが登場した

レイヤー2プロトコルの提案はいくつかあるが、現在有力なのは2015年にJoseph PoonとThaddeus Dryjaが提案したlightning networkという方法であり、今回はそれについて触れる

ライトニング・ネットワークの仕組み

まず、ライトニング・ネットワークとは何かを一言で言えば、ビットコインのブロックチェーン上にスマートコントラクトとして実装された支払いチャネルのピアツーピアのネットワークであり、参加者がこれらのスマートコントラクトを設定し実行する方法を定義する通信プロトコルでもあると言える

ペイメントチャネル

ライトニングネットワークを理解する上で基礎になるのがペイメントチャネルの概念である たくさんの比喩がコンテキストによって存在するが、今回はハイレベルな設計のみに触れる

ペイメントチャネルの基礎となるのは、ビットコインブロックチェーン上の2対2のマルチシグネチャアドレスで、あなたが一方の鍵を持ち、相手がもう一方の鍵を持つという単純なものである これをfunding transactionと呼ぶ

あなたと相手は、このマルチシグネチャアドレスからの一連のトランザクションを積み重ねる これらのトランザクションをビットコインブロックチェーンに送信し記録する代わりに、未使用のまま保持する

したがって、このシーケンスに新しいトランザクションを追加することは、ビットコインのネットワークがそれを認識することなく、チャネル残高の一部を相手に移動することと同じである 相手が以前に取り消された状態を提出しようとすると、ペナルティを課すように設定される

ルーティング

複数の参加者が1つの当事者から別の当事者へチャンネルを持つと、複数の決済チャンネル同士をつなぐネットワーク上のパスを設定することで、決済チャンネルから決済チャンネルへ支払いを「ルーティング」することも可能となる

ライトニング・ネットワークの設計上、仲介者が資金を盗む手段がないようにすることが可能となっている

チャンネルはマルチシグネチャーのアドレスから構築され、残高更新取引は署名済のトランザクションなので、ライトニングネットワークの運用に必要な情報はすべて、分散型ビットコインネットワークの信頼から得られていることになる

また、ライトニングネットワークはゴシッププロトコルを用いて、チャンネルに関する公開情報(ネットワークトポロジー)をすべての参加者に配信している これが、後述する経路探索時に必要な情報となっている
https://lnrouter.app/

重要な点は、ライトニングネットワークは、ビットコインの上に、ビットコインのトランザクションとビットコインスクリプトを使用するアプリケーションに過ぎないことである
"ライトニングコイン "や "ライトニングブロックチェーン "は存在しない

インボイス

Lightning Networkにおける支払いは、ほとんどがインボイスの作成から始まる
(keysendというプロトコルを利用して、請求書なしで送金する方法も開発されている) インボイスのやり取りは、QA codeスキャンやテキストのコピーなど、Lightning Network外で実施される

ライトニング・ネットワークでは、決済はアトミックである
「部分的に成功した支払い」というものは存在しない

hash

Lnbc20m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqsfpp3qjmp7lwpagxun9pygexvgpjdc4jdj85fr9yq20q82gphp2nflc7jtzrcazrra7wwgzxqc8u7754cdlpfrmccae92qgzqvzq2ps8pqqqqqqpqqqqq9qqqvpeuqafqxu92d8lr6fvg0r5gv0heeeqgcrqlnm6jhphu9y00rrhy4grqszsvpcgpy9qqqqqqgqqqqq7qqzqj9n4evl6mr5aj9f58zp6fyjzup6ywn3x6sk8akg5v4tgn2q8g4fhx05wf6juaxu9760yp46454gpg5mtzgerlzezqcqvjnhjh8z3g2qqdhhwkj  

qr code

decoded

ゴシッププロトコル

チャネルが構築されると、チャネルパートナーは、その存在と詳細をライトニングネットワーク全体に公表するオプションがある

チャンネルの告知は、ピアツーピアのゴシッププロトコルで通信される
ピアツーピアプロトコルとは、各ノードがネットワーク上の他のノードの中からランダムに選択されたノードに接続する通信プロトコルで、通常はTCP/IPである
あなたのノードに(TCP/IPで)直接接続されている各ノードは、あなたのピアと呼ばれる ペイメントチャネルとピアの接続は同義ではないことに注意してほしい

公表する内容は、例えば、2つのチャネル・パートナー間のローカル・バランスになどに限られ、すべての情報が取得できるわけではない

経路探索

支払い元から支払い先まで、参加者同士をつなぐチャネルで構成される経路に沿って転送される
支払元から支払先までの経路を見つけるプロセスを経路探索と呼びます。そのパスを使用して支払いを行うプロセスをルーティングと呼ぶ

先程も述べた通り、ゴシッププロトコルによって得られる情報は限定的であるため、支払いを実行するまで完全なチャンネルグラフを保持することはできず、経路探索は完全な解決が難しい問題となっている

現在は、支払いを転送するのに十分な流動性を持つ経路が見つかるまで、繰り返し試行する
このアルゴリズムは、現在、必ずしも手数料が最も低い経路になるとは限らない
これは最適ではなく、確かに改善できるのだが、この単純化された戦略でさえ、かなりうまく機能している

ルーティング

ルーティングに使用される方法は「オニオン」と呼ばれる
送信者は、パスの最初のノードに渡すが、そのノードは一番外側の層しか読むことができず、各ノードは1層ずつ剥がしていき、次のノードに渡す指示を見つけていく
各ノードは1層ずつ剥いていくので、知っているのは、前後のノードのみとなる

ただし、各層を剥がす際に、ノードは暗号化されたパディングを追加して、次のノードに対してタマネギの大きさを同じに保つ
これによって中間ノードはパスのサイズ(長さ)、ルーティングに関与するノード数、先行するノード数、後続するノード数について何も知ることができなくなる

ライトニング・ネットワークの特徴

まとめると、ライトニング・ネットワークの特徴は下記の様に言える

  • ライトニング・ネットワークのユーザーは、低コストでリアルタイムに支払いをルーティングすることができる
  • ライトニング・ネットワーク上で価値を交換するユーザーは、支払いのためのブロック確認を待つ必要がない
  • ライトニング・ネットワーク上での支払いは、通常数秒以内に完了すると、最終的なものとなり、取り消すことはできない
  • ライトニングネットワーク上で行われる支払いは、2つのノード間で送信され、誰からも見えないため、より高いプライバシーを実現する
  • ビットコインネットワーク上の取引とは異なり、ライトニングネットワーク上で行われた支払いは永久に保存される必要がない。そのため、ライトニングはより少ないリソースを使用し、その結果、より安価になる
  • この特性は、プライバシーにもメリットをもたらす
  • ライトニングネットワークは、プライバシーネットワーク「The Onion Router(Tor)」で使われているプロトコルに似たオニオンルーティングを採用しているため、支払いのルーティングに関わるノードでも、支払い経路の前任者と後任者しか直接認識することができない
  • ライトニングネットワークは、ビットコインの上で使用する場合、常にユーザーが所有(保管)し、完全にコントロールできる本物のビットコインを使用する

ライトニング・ネットワークのビジネス

構造上、ライトニング・ネットワークにはこれまでにはない利用上の難しさがある 代表的なものとしては下記がある

  • 流動性
  • 稼働率の要件
  • チャネル管理
  • ルーティング
  • 複雑なバックアップ

ライトニングネットワークに関連するビジネスは、これらの問題を解決することを目的として生まれているものが多い

2 種類を取り上げる
Lightningサービスプロバイダー(LSP)は、Lightningユーザーへのオンボーディングと接続の提供に重点を置くもの、Lightningウォレットサーバー(LWS)は、接続とは関係のない追加サービスを提供するものである

Lightningサービスプロバイダー(LSP)

LSPは、主に流動性の難しさを解消するためのサービスである
Lightning Networkに関連するサービスを行う上で、ユーザーが流動性を気にする必要がないほど使いやすい製品を設計できることが理想的となる

流動性とはなにか

簡単に言うと、ライトニングネットワークの流動性とは、ビットコインを送受信する能力のことである
インバウンド流動性とは、ユーザーがライトニングチャンネルで受け取ることができるビットコインの量であり、アウトバウンドの流動性は、ユーザーがライトニングチャンネルで送信できるビットコインの量となる

流動性はユーザーエクスペリエンスに直接影響する
ユーザーにアウトバウンドの流動性がない場合、ライトニングでビットコインを送ることはできない
逆に、ユーザーにインバウンドの流動性がない場合、ライトニングでビットコインを受け取ることができない

LSPは、ネットワークに接続し、チャンネルを開き、ユーザーに流動性を提供することでこれを実現する
LSPは多くの場合、サービスに対して手数料を課す
そのサービス形態が、インターネットサービスプロバイダー(ISP)に似ているため、このような名前になっている

ただし、アプリケーションがLSPを使用する場合、ユーザーが複数のLSPを切り替え、オプトアウトし、使用できるようにする必要がある

具体的には下記のようなサービスが有る

Breez

ネイティブウォレットアプリケーション ノンカストディアルでありながら、ユーザは流動性をあまり意識せずに送受信できる

Blocktank

ウェブポータル 企業が、LSP提供をサポートするために使用できるツールセット

Magma

チャンネル売買のP2Pマーケットプレース

Lightningウォレットサーバー(LWS)

Lightningウォレットサーバー(LWS)は、ユーザーがLightningをより簡単に利用できるようなサービスを提供するものである

LSP同様、LWS は信頼性を最小限に抑えたサードパーティとして機能するため、可能であればユーザーはオプトアウトし、Lightning ウォレットを手動で操作できるようにする必要がある

phoenix

ネイティブウォレットアプリケーション Lightning Networkのバックアップは難しさがあるため、クラウドのバックアップサービスを提供する
「Restore my wallet」を選び、12ワードのシードを入力すれば復元可能

Lightning address

ライトニングの支払い請求は、invoice式であったり、それ自体が読みづらいものである bruwbird@lightning.comのような、電子メールアドレスのようなもので送受金を可能にする
内部的にはLNURLを使っている

Greenlight

ブロックストリーム社の提供するサービス
ライトニングウォレットは、支払いを受け取るためにオンラインである必要があるが、LSPと組み合わせて支払いを預かり、ユーザーがオンラインになった時点で転送することができるサービスを提供する