ビットコインのライトニング・ネットワーク
要点
- レイヤー2ソリューションは、ブロックチェーン技術固有のスケーラビリティの限界に対処するために作られた。
- ライトニングネットワークはレイヤー2のスケーリングソリューションであり、ブロック確認を必要としない高速トランザクションを提供し、効率的なマイクロペイメントを可能にする。
- マルチシグネチャアドレスとハッシュタイムロックコントラクトにより、安全でスケーラブルな決済を実現します。
はじめに
暗号通貨には非常にユニークな性質がある。ハッキングされたり、簡単にシャットダウンされたりすることはなく、第三者が介入することなく、誰もが世界中に価値を発信するために使用することができる。
これらの特徴を確実に維持するためには、重要なトレードオフを行わなければならない。多くのノードが暗号通貨ネットワークの運営を担っているため、スループットには限界がある。その結果、ブロックチェーン・ネットワークが処理できる1秒あたりのトランザクション数(TPS)は、大衆に採用されることを目指す技術としては比較的少ない。
ブロックチェーン技術固有の限界を克服するため、ネットワークが処理できるトランザクション数を増やすスケーラビリティ・ソリューションが数多く提案されている。この記事では、そのようなビットコインプロトコルの拡張の1つであるライトニングネットワークについて深く掘り下げていく。
ライトニングネットワークとは?
ライトニングネットワークは、ブロックチェーンの上で動作し、高速なピアツーピア取引を促進するネットワークです。これはビットコインだけのものではなく、他の暗号通貨も統合している。
“ブロックチェーンの上で動く “とはどういうことかと思うかもしれない。ライトニング・ネットワークは、オフチェーンまたはレイヤー2ソリューションと呼ばれるものだ。これにより、ブロックチェーン上にすべての取引を記録することなく、個人が取引を行うことができる。
ライトニング・ネットワークはビットコインのネットワークとは別のもので、独自のノードとソフトウェアを持っているが、それでもメインチェーンと通信している。ライトニングネットワークに出入りするには、ブロックチェーン上に特別なトランザクションを作成する必要がある。
最初の取引で実際に行っていることは、他のユーザーとのスマートコントラクトのようなものを構築することだ。スマートコントラクトは、あなたと他のユーザーのプライベートな台帳を保持していると考えてください。この台帳に多くの取引を書き込むことができる。この取引はあなたとあなたの取引相手しか見ることができないが、セットアップの特殊な機能により、どちらも不正をすることはできない。
このミニ台帳はチャネルと呼ばれる。アリスとボブがそれぞれ5BTCをスマートコントラクトに投入したとする。二人のチャンネルには5BTCの残高がある。アリスは台帳に “ボブに1BTCを支払う“と書き込むことができる。そして、ボブは後日2BTCをアリスに送り返し、アリス側の残高を6BTC、ボブ側の残高を4BTCに更新することができる。これをしばらく続けることができる。
いつでも、どちらかがブロックチェーンにチャネルの現在の状態を公開できる。その時点で、チャネルのそれぞれの側の残高は、チェーン上のそれぞれの当事者に割り当てられる。
その名の通り、ライトニング取引は電光石火の速さだ。ブロックの確認を待つ必要はなく、インターネット接続が許す限り高速で支払いを行うことができる。
なぜライトニング・ネットワークが必要なのか?
これまでのところ、ライトニングネットワーク(または単にLN)は、ビットコインのブロックチェーンを拡張するための最も賢明なアプローチであるように見える。このような巨大なエコシステムで変更を調整するのは厄介で、ハードフォークや潜在的に壊滅的なバグのリスクがある。多くの価値がかかっているため、実験は信じられないほど危険だ。
実験をブロックチェーンから切り離せば、より柔軟性が増す。何か問題が起きても、実際のビットコインネットワークには影響しない。レイヤー2のソリューションは、15年以上にわたってプロトコルを維持してきたセキュリティの前提を損なうことはない。
古いやり方から切り替える義務もない。エンドユーザーにとってオンチェーン取引は通常通り機能し続けるが、オフチェーン取引という選択肢もある。
ライトニング・ネットワークを利用するメリットはいくつかある。以下に主なものをいくつか見ていこう。
スケーラビリティ
ビットコインのブロックはおよそ10分ごとに作成され、多くの取引しか保持できない。ブロックスペースは希少なリソースであるため、自分のブロックをタイムリーに含めるには、他のユーザーと競り合う必要があります。マイナーは何よりもまず報酬を得ることを重視するため、手数料の高いトランザクションを最初に取り込みます。
同時に資金を送ろうとするユーザーが多くない場合、これはあまり問題になりません。手数料を低く設定すれば、次のブロックに取引が含まれる可能性が高いからだ。しかし、あまりにも多くのユーザーが同時にトランザクションをブロードキャストすると、平均手数料が大幅に上昇する可能性がある。10ドルを超えることも何度もあった。2017年の強気相場の絶頂期には50ドルを超えた。2021年4月、ビットコインの平均取引手数料は60ドルを超えた。
数千ドル相当のビットコインを動かす取引では取るに足らないように思えるかもしれないが、少額の決済では持続可能ではない。誰が3ドルのコーヒーに10ドルの手数料を払って飲みたいと思うだろうか?
ライトニング・ネットワークでは、チャネルを開くときと閉じるときの2つの手数料を支払うことになる。しかし、チャネルがオープンすれば、あなたと取引相手は無料で何千もの取引を行うことができる。取引が終われば、最終的な状態をブロックチェーンに公開するだけだ。
大枠では、ライトニング・ネットワークのようなオフチェーン・ソリューションに頼るユーザーが増えれば、ブロック・スペースはより効率的に使われるようになる。低額で高頻度の送金はペイメントチャネルで行い、ブロックスペースはより大きな取引やチャネルの開閉に使うことができる。これによって、より多くのユーザーがこのシステムにアクセスできるようになり、長期的なスケールアップが可能になる。
マイクロペイメント
トランザクションで送信できるビットコインの最低額は、約0.00000546 BTCである。本稿執筆時点では、これは約38セントに相当する。これは少額だが、ライトニング・ネットワークでは、現在利用可能な最小単位である0.00000001 BTCまたは1サトシを取引するために、限界に挑戦することができる。
Lightningはマイクロペイメントにとってより魅力的だ。通常の取引では手数料がかかるため、メインチェーンで小額を送金するのは現実的ではない。しかしチャネル内では、ビットコインの何分の一かを無料で送ることができる。
マイクロペイメントは多くのユースケースに適している。ユーザーがサービスを利用するたびに小額を支払うサブスクリプションベースのモデルに取って代わる可能性があると推測する人もいる。
プライバシー
ライトニング・ネットワークの二次的な利点は、ユーザーに高い機密性を提供できることだ。当事者は自分たちのチャンネルを広範なネットワークに知られる必要がない。ブロックチェーンを見て、この取引はチャネルを開いたと言うことはできるかもしれないが、その内部で何が起こっているかは必ずしも分からない。参加者がチャンネルを非公開にすることを選択した場合、どのような取引が行われているかは参加者だけが知ることになる。
アリスがボブとチャネルを持ち、ボブがキャロルとチャネルを持つ場合、アリスとキャロルはボブを介してお互いに支払いを送ることができる。ダンがキャロルとつながっていれば、アリスはダンに支払いを送ることができる。これが相互接続された支払いチャネルの広大なネットワークに拡大することは想像できる。このようなセットアップでは、チャネルが閉じられると、アリスが誰に資金を送ったかわからなくなる。
ライトニング・ネットワークの仕組み
ライトニング・ネットワークがどのようにノード間のチャネルに依存しているかは、高いレベルで説明した。次はその裏側を見てみよう。
マルチシグネチャアドレス
マルチシグネチャ(またはマルチシグ)アドレスは、複数の秘密鍵が使用できるアドレスです。アドレスを作成する際、いくつの秘密鍵がその資金を使用できるかを指定し、そのうちのいくつの鍵が取引に署名するのに必要かを指定する。例えば、1-of-5スキームは、5つの鍵が有効な署名を生成でき、1つしか必要ないことを意味する。2-of-3スキームは、3つの可能な鍵のうち、資金を使用するために必要な鍵が2つであることを示す。
ライトニング・チャネルを初期化するために、参加者は2-of-2スキームで資金をロックする。署名可能な秘密鍵は2つしかなく、コインを移動させるにはその両方が必要となる。ここで友人のアリスとボブを呼び戻そう。2人は今後数ヶ月の間にお互いに多くの支払いを行うことになるので、Lightning Networkチャネルを開設することにした。
これは、両者がそれぞれ3BTCを共同で所有するマルチシグアドレスに入金することから始まる。アリスが同意しない限り、ボブはこのアドレスから資金を移動できないし、その逆もまた同様である。
今、彼らはそれぞれの側の残高を調整する紙を持っていることができます。両者とも3BTCのスタート残高がある。アリスがボブに1BTCの支払いをしたい場合、アリスは2BTC、ボブは4BTCを所有しているとメモしておけばいいのでは?資金を移動すると決めるまで、残高はこのように追跡することができる。
それは可能だが、それのどこが楽しいのだろうか?もっと重要なことは、誰かが協力しないことが信じられないほど簡単になるということだ。アリスが6BTCを持っていて、ボブが1BTCも持っていない場合、ボブは資金の放出を拒否しても何も失わない(アリスとの友情を除いて)。
ハッシュタイムロックコントラクト(HTLC)
上記のシステムは退屈で、今日の信頼されたセットアップと大差ない。アリスとボブの間の「契約」を強制するメカニズムを導入すると、もっと面白くなる。もし当事者の一方がルールを守らないと決めたとしても、もう一方はチャネルから資金を引き出す救済策を持っている。
その仕組みがハッシュタイムロックコントラクト(HTLC)である。この言葉は難しく聞こえるかもしれないが、実は非常にわかりやすい概念である。これは、他の2つの技術(ハッシュロックと タイムロック)を組み合わせて、決済チャネルにおける非協力的な行動を是正するものである。
ハッシュロックとは、ある秘密を知っていることを証明することによってのみ、資金を使うことができるという取引に課される条件である。送信者はデータの一部をハッシュし、受信者へのトランザクションにそのハッシュを含める。受信者が資金を使うことができるのは、ハッシュと一致する元のデータ(秘密)を提供した場合のみである。そして、受信者がそのデータを提供できる唯一の方法は、送信者がそれを提供する場合のみである。
タイムロックとは、ある時間より前に資金を使えないようにする条件である。実際の時間として指定されるか、指定されたブロックの高さとして指定される。
HTLCはハッシュロックとタイムロックを組み合わせて作られる。実際には、HTLCは条件付きの支払いを作成するのに使われる。つまり、受信者はある時間までに秘密を提供しなければならず、さもなければ送信者は資金を取り戻すことができる。この次の部分は、おそらく例で説明した方が良いので、アリスとボブの話に戻ろう。
チャネルの開閉
AliceとBobが共有するマルチシグネチャアドレスに資金を提供するトランザクションを作成したという例をあげた。しかし、これらの取引はまだブロックチェーンに公開されていない!その前にもう一つやることがある。
これらのコインがマルチシグから移動する唯一の方法は、アリスとボブの両方が共同で取引に署名する場合であることを覚えておいてほしい。もしアリスが6枚のコインをすべて外部のアドレスに送りたかったら、ボブの承認が必要だ。彼女はまず取引(このアドレスに6ビットコイン)をまとめ、自分の署名を加える。
彼女はその取引をすぐにブロードキャストすることもできるが、ボブの署名がないので無効となる。アリスは不完全な取引をまずボブに渡さなければならない。彼が署名を加えると、それは有効になる。
我々はまだ全員が正直にプレーし続けるためのメカニズムを導入していない。先に述べたように、もしあなたの取引相手が協力を拒否すれば、あなたの資金は事実上閉じ込められてしまう。これを防ぐ仕組みについて説明しよう。いくつかの異なる動きがあるので、お付き合いいただきたい。
各当事者は秘密を考え出す必要がある。これらの秘密をAsとBsと呼ぼう。アリスとボブがそれを明かすとひどい秘密になってしまうので、今のところは隠しておく。二人はそれぞれの秘密のハッシュ – h(As)とh(Bs) – を生成する。そこで、二人は秘密を共有する代わりに、それらのハッシュを互いに共有する。
アリスとボブはまた、最初のトランザクションをマルチシグネチャアドレスに公開する前に、一連のコミットメントトランザクションを作成する必要がある。これにより、もう一方が資金を人質に取ると決めた場合の救済措置が得られる。
先に参照したミニ台帳のようなチャネルを考えるなら、コミットメント・トランザクションは台帳に対する更新である。新しいコミットメント・トランザクションのペアを作るときはいつでも、2人の参加者の間で資金のバランスを調整することになる。
アリスのものは2つの出力を持つ。1つは彼女が所有するアドレスに支払うもので、もう1つは新しいマルチシグアドレスにロックされたものだ。アリスはそれに署名してボブに渡す。
ボブは同じことをする。1つの出力は自分自身に支払い、もう1つは別のマルチシグアドレスに支払う。彼はそれに署名してAliceに渡す。
通常、アリスはボブの取引に署名を追加して有効にすることができる。しかし、これらの資金はまだ資金を提供していない2-of-2のマルチシグから使われていることに気づくだろう。今のところ残高ゼロの口座から小切手を使おうとしているようなものである。したがって、これらの部分的な署名付き取引は、マルチシグが稼働して初めて使用可能となる。
新しいマルチシグネチャアドレス(3BTCの出力先)には、いくつかの特殊な性質がある。アリスが署名してボブに渡した不完全な取引を見てみよう。マルチシグ出力は以下の条件下で使うことができる:
- 両者が協力して署名できる。
- Bobは一定時間後に自分で使うことができる(タイムロックのため)。
- アリスはボブの秘密Bを知っていれば、それを使うことができる。
ボブがアリスに渡した取引について:
- 両者は協力して署名することができる。
- アリスは一定時間後に自分で使うことができる。
- ボブはアリスの秘密Asを知っていれば使うことができる。
どちらの当事者も相手の秘密を知らないので、条件3はまだ可能性がないことに留意されたい。もう一つ注意しなければならないのは、あなたが取引にサインした場合、相手の出力には特別な条件がないので、相手はすぐに使うことができるということである。タイムロックが切れるのを待って自分で使うこともできるし、相手と協力してそのまま使うこともできる。
なるほど!これでトランザクションをオリジナルの2-of-2マルチシグネチャアドレスに公開できる。取引相手がチャネルを放棄しても資金を取り戻せるので、これでようやく安全だ。
取引が確認されると、チャネルは稼働する。この最初の取引は、ミニ・レジャーの現在の状態を示している。現在、3BTCがボブに、3BTCがアリスに支払われる。
アリスがボブに新しい支払いをしたい場合、このペアは2つの新しいトランザクションを作成し、最初のセットを置き換える。手順は同じで、半分だけ署名される。しかし、アリスとボブはまず古い秘密を放棄し、次の取引のために新しいハッシュを交換する。
どちらの当事者も、ブロックチェーン上で “決済 “するために、いつでも最新の取引の1つに署名し、ブロードキャストすることができる。しかし、どちらの当事者がそうするにしても、タイムロックが切れるまで待つ必要があるが、もう一方の当事者はすぐに使うことができる。ボブがアリスの取引に署名してブロードキャストした場合、アリスは何の条件もないアウトプットを手に入れたことになる。
両パーティは一緒にチャネルをクローズすることに合意できる(協調的クローズ)。これはおそらく、資金をチェーンに戻す最も簡単で早い方法である。ただし、一方の当事者が無反応になったり、協力を拒否したりしても、もう一方の当事者はタイムロックを待つことで資金を取り戻すことができます。
ライトニング・ネットワークはどのようにして不正行為を防いでいるのか?
ここで攻撃のベクトルを特定したかもしれない。ボブが現在1BTCの残高を持っているとして、それ以上の残高がある古いトランザクションをブロードキャストしないようにするにはどうしたらいいでしょうか?彼はすでにアリスから半分署名されたトランザクションを入手しており、自分の署名を追加してそれをブロードキャストすればいいだけですよね?
彼が残高を失う可能性があることを除けば、それを止めるものは何もない。彼がそれを実行し、アリスに1コイン、先ほどのマルチシグアドレスに5コインを支払う古い取引をブロードキャストしたとしよう。
アリスはすぐにコインを受け取る。一方ボブは、マルチシグアドレスから使うにはタイムロックが切れるまで待たなければならない。アリスが同じ資金をすぐに使えるようにするためのもう一つの条件を覚えていますか? アリスは当時持っていなかった秘密を必要とする。第2ラウンドのトランザクションが作成されるとすぐに、ボブはその秘密を手放した。
ボブがタイムロックが切れるのを何もできずに待っている間に、アリスはその資金を動かすことができる。この罰に基づくメカニズムは、参加者が不正を試みる可能性が低いことを意味する。
支払いのルーティング
チャンネルは接続することができます。そうでなければ、ライトニング・ネットワークは決済にそれほど役立たないだろう。今後数ヶ月間、毎日のカフェインを摂取するために、コーヒーショップとのチャネルに500ドルをロックするつもりですか?
そんなことをする必要はない。アリスがボブとチャネルを開設し、ボブがすでにキャロルとチャネルを持っていれば、ボブは2つのチャネル間で支払いをルーティングすることができる。これは複数の “ホップ “にまたがって機能し、つまりアリスは、経路が存在する相手なら誰にでも効果的に支払いをすることができる。
ルーティングの役割に対して、仲介者は少額の手数料を取るかもしれない(義務はないが)。ライトニング・ネットワークはまだ比較的新しいため、手数料市場はまだ実現していない。多くの人が期待しているのは、提供される流動性に応じた手数料だ。
ベースチェーンでは、手数料はトランザクションがブロック内で占めるスペースのみに基づいており、送信される価値は重要ではない。一方、ライトニング・ネットワークにはブロック・スペースというものは存在しない。
その代わり、ローカル残高とリモート残高という考え方があります。ローカル残高とは、あなたがチャネルのもう一方の端に「プッシュ」できる金額であり、リモート残高とは、あなたの取引相手があなたにプッシュできる金額である。
別の例を見てみよう。上の経路の一つを詳しく見てみよう: アリス <> キャロル <> フランク。
Alice <> Carolと Carol <> Frankはそれぞれ1BTCの総容量を持っている。アリスのローカル残高は0.7BTCだ。今ブロックチェーン上で決済すれば、アリスは0.7BTCを受け取り、キャロルはリモート残高(つまり0.3BTC)を受け取ることになる。
アリスが0.3BTCをフランクに送りたい場合、0.3BTCをキャロル側のチャネルにプッシュする。するとCarolは自分のローカル残高から0.3BTCをFrankとのチャネルにプッシュする。アリスからの+0.3 BTCとフランクへの-0.3 BTCが相殺される。
キャロルは、アリスとフランクの間のコネクションとして働くことで価値を失ってはいないが、自分自身の柔軟性を低下させている。アリスとのチャネルでは0.6BTCを使えるが、フランクとのチャネルでは0.1BTCしか使えない。
アリスがキャロルとしかつながっていないのに対し、フランクはもっと広いネットワークにつながっている状況を想像してみてほしい。キャロルは以前、フランク経由で合計0.4BTCを他の人に送ることができたが、今は0.1BTCしか送れない。
このシナリオでは、アリスは事実上キャロルの流動性を食いつぶしている。何らかのインセンティブがなければ、キャロルは自分のポジションを弱めたくないかもしれない。そこで代わりに、10サトシの手数料で0.01BTCごとにルーティングすると言うかもしれない。こうして、キャロルが「より強い」経路でローカル残高を犠牲にすればするほど、彼女の利益は増える。
前述したように、手数料を徴収することが事実上義務付けられているわけではない。流動性の低下を気にしない人もいるかもしれない。また、受信者に直接チャネルを開くだけの人もいるかもしれない。
ライトニング・ネットワークの限界
ライトニングネットワークがビットコインのスケーラビリティの問題をすべて解決するソリューションであることが証明されれば、それは素晴らしいことだ。しかし残念なことに、ライトニングネットワークには邪魔になりかねない欠点がある。
ユーザビリティ
ビットコインは初心者にとって最も直感的なシステムではない。アドレスや手数料など、慣れるまで混乱する可能性がある。ライトニング・クライアントをセットアップした後、ユーザーは支払いを行う前にチャンネルを開設する必要がある。これは時間のかかるプロセスであり、インバウンド/アウトバウンドキャパシティのような概念に慣れないうちは圧倒されるかもしれない。
とはいえ、参入障壁を減らし、より合理的な体験をユーザーに提供するために、常に改善が行われている。
流動性
ライトニング・ネットワークの最大の批判の一つは、取引能力が制限される可能性があることだ。あるチャネルにロックされた以上の資金を使うことはできない。資金をすべて使ってしまい、リモートの残高にチャネルの資金がすべて残ってしまった場合、チャネルを閉じなければならなくなる。あるいは、誰かがそのチャネルを通してあなたに支払うまで待つこともできますが、それは理想的ではありません。
経路はチャネルの総容量によって制限されることもある。先ほどのアリス <> キャロル <> フランクの例を見てみよう。アリスとキャロルのチャネルの容量が5BTCで、キャロルとフランクの容量が1BTCしかない場合、アリスは1BTC以上を送ることができません。その場合でも、キャロル<>フランクのチャンネルでキャロル側に全残高がなければ成立しない。このため、LNチャンネルで受け渡しできる資金量が大幅に制限され、使い勝手に影響が出る。
集中型ハブ
前節で述べた問題のため、ネットワークが巨大な “ハブ “の形成を促進するのではないかという懸念がある。つまり、流動性の高い、大規模で接続の多い事業体である。大規模な決済は、これらのエンティティを経由する必要がある。
明らかに、それは良い状況ではない。これらの事業体がオフラインになれば、同業者間の関係が大きく崩れ、システムが弱体化するからだ。また、トランザクションが流れるポイントは限られているため、検閲のリスクも高まる。
ライトニング・ネットワークの現状
2024年3月現在、ライトニング・ネットワークは健全な状態にある。13,000以上のオンラインノード、52,000以上のアクティブチャネル、4,570BTC強のキャパシティを誇っている。
Blockstreamのc-lightning、Lightning LabsのLightning Network Daemon、ACINQのEclairなどがその一例だ。技術的にあまり詳しくないユーザーのために、多くの企業がプラグアンドプレイのノードを提供している。これらのノードは、デバイスの電源を入れるだけで、ライトニング・ネットワークを始める準備ができる。
最後に
2018年のメインネット立ち上げ以来、ライトニング・ネットワークは大きな成長を遂げてきた。現在、Lightningノードを操作するにはある程度の技術的な習熟が必要なため、克服すべきユーザビリティの障害がまだ残っている。しかし、多くの開発が行われているため、時間の経過とともに参入障壁が軽減される可能性は十分にある。
「ビットコインのライトニング・ネットワーク」への0件のフィードバック