【仕組みを解説】ライトニングネットワークとは?ビットコインの問題の解決策

▼おすすめの取引所ランキング

仮想通貨取引をしていると一回は聞いたことはある、

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

一体どういった技術でしょうか?

今回はライトニングネットワークについて解説します!

ライトニングネットワークとは?

The Lightning Network is a second layer payment protocol that operates on top of the bitcoin blockchain. It enables cheap and instant transactions between participating nodes and is a proposed solution to the bitcoin scalability problem It was deployed in January 2018 but is still under development.(Wikipediaより引用

ライトニングネットワークは、仮想通貨やブロックチェーン界隈でも問題とされている「スケーラビリティ」に対する1つのソリューションです。

そもそもビットコインを始めとする多くの仮想通貨が注目されている1つの理由は

  • 即時に送金ができる
  • 手数料を安く抑えられる

という、マイクロペイメントにあります。

しかし、最近ではトランザクション(取引)に詰まりが見られ、スケーラビリティの問題が起こってしまっている状況です。

スケーラビリティ問題とは?

ビットコインを例に挙げ、説明します。

まずブロックチェーンの構造は、ビットコイン(BTC)の取引(=トランザクション)を複数まとめたものを1つのブロックに書きこむというものになっています。

しかし各ブロックの容量は1MBしかありません。

にもかかわらず、ビットコインネットワーク上での取引量は、増えてきています。取引が増えてきているにもかかわらず、それを処理する側は対応しきれていないという状況です。

例えて言うなら、電波が3Gの環境で、多くの人々が「Netflix(ネットフリックス)」やYoutubeを見ているようなものです。

この状況は、数多くの未承認取引を生み出します。

そのことで、送金に時間がかかったり、素早く送金するには追加の手数料を支払わなければいけない(トランザクションフィー)を支払わなければならなくなります。

そうすると仮想通貨の1つのメリットである、

  • 即時に送金ができる
  • 手数料を安く抑えられる

が崩壊しかけているということですね。

これを解決しようと様々な技術が提唱されました。

その中の1つが、ライトニングネットワークです。

スケーラビリティを解決できる?他の技術

・plasma(プラズマ)
・Raiden(ライデン)…etc

気になった方はぜひ調べてみてください!

仮想通貨やビットコインを勉強し始めるとよく聞く「スケーラビリティ問題」。 これはビットコインの将来性を大きく左右する問題だと言われ

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

ライトニングネットワークの目的は理解できたと思うので、ここでは仕組みを見ていきます。

まずライトニングネットワークの仕組みを理解する前に、ライトニングネットワークを導入しない以前の取引はどのようになるのかを説明します。

  1. ビットコインの送金の際に行うフローは、
    送金ごとにトランザクションを作成
  2. ノードが検証
  3. OKであれば、ブロックに追加といったものです。

ライトニングネットワークを導入した際に、これらの送金周りの取引をオフチェーンにて処理します。

オフチェーンとは?

オンチェーンの対義語です。ブロックチェーン上でトランザクションを処理することを「オンチェーン処理」と言います。
対して非ブロックチェーン上で処理をすることを「オフチェーン処理」と呼びます。

途中のトランザクションをオフチェーンで行い、最終的な結果だけオンチェーンで処理をすることによって、その分のデータはブロックチェーンに書き込まれないので、節約になります。

もう少し踏み込んだ話をしていきます。

(もう十分!という方は読み飛ばしていただいて構いません!)


Wikipediaより引用

上の画像のように、参加しているピアの間にペイメントチャネルが開かれます。

先程のWikipediaで書かれていた

The Lightning Network is a second layer payment protocol that operates on top of the bitcoin blockchain.(Wikipediaより引用

の a second layer payment protocolの意味がなんとなくイメージできたのではないでしょうか?

このペイメントチャネルがインターネットの様な網の目上に構築され、取引を処理しています。

このペイメントチャネルを通してバリュー(ハッシュ関数を入れるための値)をやり取りし、バリューが1度送られるごとに、チャネル内の状態が変化し、以前の状態から上書きする形で、最新の状態を保存します。

このチャネルを閉じると最新の状態(最終的な結果)のみがブロックチェーンに書き込まれます。

ライトニングネットワークの仕組みをより詳しく

ここからの内容は少し、難しい内容となるので、概要だけが知りたい人はこの章は飛ばしてください!

ブロックチェーンのスケーラビリティ問題

さて改めてですが、なぜライトニングネットワークが必要なのか。それはスケーラビリティの問題を解決するためとなります。

ビットコインのブロックチェーンは既存の決済システムと比較すると性能が悪すぎます。

例えば、Visaのペイメントネットワークが47,000 tps (transactions per second) ほどの性能を持っているのに対して、ビットコインは7 tps 以下の性能しかありません。

ビットコインがVisaレベルの性能を出すのは現実的ではありません。そのため、ビットコインの ブロックチェーンには重要な取引のみを書き込み、それ以外の取引はブロックチェーンの外(オフチェーン)で行う必要があります

A Network of Micropayment Channels Can Solve Scalability

AさんとBさんがマイクロペイメントチャネルとは、2-of-2 multisignatureアドレス(引き出しにAさんとBさんの秘密鍵が両方必要なアドレス)のことです。

この2-of-2 multisignatureアドレスに両者がビットコインを送金し、引き出し金額を変更するcommitment transactionをやり取りすることで両者間で金額を調整します。この際に、 一番最後に送信されるcommitment transaction以外のトランザクションはオフチェーンで交換し、最後のトランザクションのみがブロックチェーンに書き込まれる必要があります

上図では、multisignatureアドレスにAさん0.5BTC、Bさん0.5BTC入金した後に、multisignatureアドレスからAさん0.3BTC、Bさん0.7BTC出金するというトランザクションのみがブロックチェーンに書き込まれるため、実質AさんからBさんへ0.2BTC送金したのと同じです。

しかしながらその間、2者間で細かくCommitment Transactionを交換(オフチェーンで)することで、細かい送金金額の調整を何回でも行うことができます。

マイクロペイメントチャネルが正しく実現されるには、以下の2つの課題があります。

  • Funding Transactionを利用して2-of-2 multisignatureアドレスに入金した後に、出金できなくなることを防ぐ(そもそもAさんとBさんが協力的でなければ2-of-2 multisignatureアドレスから出金することができない、入れたお金を回収できなくなるリスクがある)。
  • 複数発生するcommitment transactionのうち、最後のトランザクションしかブロックチェーンに書き込まれないようにする(古いcommitment transactionを利用して出金されたら、送金金額を細かく調整する意味がなくなってしまう)。

次の章では上記について説明していきます。

Bidirectional Payment Channels

前章で説明した2-of-2 multisignatureアドレスを利用したMicropayment Channelを利用して双方向に価値の移転を実現するチェネル – 双方向ペイメントチャネルを実現することができます。そのために必要な要素について説明します。

2-of-2 multisignatureアドレスから確実に出金できるようにする

2-of-2 multisignatureアドレスの出金や入金トランザクションをブロックチェーン上に書き込み実行するためには、トランザクションにAさんとBさんの両者が合意し、電子署名を付与する必要があります。

逆にいうと、 AさんとBさんの両者の合意がなければ2-of-2 multisignatureアドレスへの入金も出金も実行することができません

2-of-2 multisignatureアドレスから確実に出金できるようにするためには、 入金トランザクションより先に出金トランザクションに両者が署名 する必要があります。

うっかり出金トランザクションに両者が署名する前に入金トランザクションに署名してしまい、その後AさんとBさんの仲が悪くなるといったようなことが起こると、入金した資金を出勤することができなくなります。

最後のcommitment transactionのうち、最後のトランザクションしかブロックチェーンに書き込まれないようにする

古いcommitment transactionを無効にし、最後のトランザクションしかブロックチェーンに書き込まれないようにするには、古いトランザクションをブロックチェーンに書き込もうとした場合にペナルティを受ける仕組みが必要です。

具体的には上図のように、Aさんが不正を行い古いcommitment transactionをネットワークにブロードキャストした場合に、Bさんがその不正を咎める仕組みが必要です。

古いcommitment transactionをブロードキャストすると資産を失う ことがわかっているなら不正を行う可能性はなくなります。

このようなトランザクションを実現するためには、いくつかの仕組みを組み合わせる必要があります。

  • 古いcommitment transactionを送信したのがAさんなのかBさんなのかを判定する仕組み ( Ascribing Blame )
  • commitment transactionを送信した後に、一定の取り消し可能期間を設定する仕組み ( Revocable Sequence Maturity Contract )

Ascribing Blame

Aさん専用のCommitment TransactionとBさん専用のCommitment Transactionを作成することで、どちらがcommitment transactionをブロードキャストしたのかを明確にします。

Revocable Sequence Maturity Contract(RSMC)

ビットコインのトランザクションは、一定の条件が成立した場合に送金が完了するような条件をScriptで記述することができます。このScript機能を利用して、取り消し可能期間を設定したトランザクションを作成することができます。

以下のような条件を設定したCommitment Transactionを作成することができます。

  • BさんはCommitment Transactionをブロードキャストした後、一定期間( 1000blockなど )資産を動かすことができない。
  • 特殊なトランザクションが上記の一定期間の間にブロードキャストされると、Bさんの資金がAさんに没収される。

下記のシーケンス図のように、新しいトランザクションを作成する前に、特殊なトランザクション(Breach Remedy Transaction)に両者が合意することで古いトランザクションを無効にすることができます。

以上の仕組みによって、2者間でMicropayment Channelを利用してオフチェーンで取引履歴を更新していくことができます。

Hashed Timelock Contract (HTLC)

3章の仕組みによって、2者間でオフチェーンでマイクロペイメントを実現することは可能になりました。lightning networkではネットワーク状に繋がったマイクロペイメントチャネルをいくつも経由して、ネットワーク上の任意の場所にいるAさんとBさんがビットコインを送金し合うことを目指します。

しかしながら、複数のマイクロペイメントチャネルを経由して送金を行う場合、間にいるノードが正しく送金を取り持ってくれるかが問題になります。

この 中間ノードが正しく送金を取り持ってくれることを保証するための技術 がHTLCです。

HTLCの仕組み

シンプルなHTLC (Hashed Timelock Contract) は、hash値と時間によって挙動の切り替わるmultisignatureなトランザクションです。

シンプルな例を上げると、AはランダムなデータRとそれに対応するハッシュ値Hを生成し以下のようなトランザクションを作成します。

  • トランザクションが発行されてから一定期間(nLockTime以内)の間は、BがデータRを知っていれば資金を引き出し可能になる。
  • 一定期間をすぎると、BはデータRを知っていても資金を引き出し不可能になり、今度はAが資金を引き出すことが可能になる。

これらを組み合わせることで

これらを組み合わせることで、ライトニングネットワークを可能としています。

より詳しく知りたい方はライトニングネットワークのホワイトペーパーをどうぞ

原文:https://lightning.network/lightning-network-paper.pdf

ライトニングネットワークのメリット

これはさきほどから挙げている3つの問題に寄与します。

即時に送金ができる

ビットコインネットワークでは、送金までに最低でも10分ほどの時間がかかりましたが、ライトニングネットワークでは、それがなくなります。

手数料を安く抑えられる

トランザクションの詰まりが少なくなるので、手数料が安価に抑えられます。

結果的にスケーラビリティの解決?

残念ながら完璧に解決できるかは、現在の段階ではなんとも言えません

依然として問題点はあり、

大規模なネットワークで、ライトニングネットワークが使われることを想像すると、
ルーティングに工夫が必要だったり、特定のノードがハブ化し、非中央集権ではなくなってしまうのでは?

といった意見もあります。

素晴らしい技術であることは間違いないのですが、現在も開発中といったところです。

現在ライントニングネットワークは、テストネットで開発されており、本番環境で使用できる状態ではないのですが、

技術に対する期待の高まりから、すでに本番ネットでも数千以上のノードが立てられています。その様子はこちらのサイトで(https://lnmainnet.gaben.win)見ることができます。

案外、ブロックチェーンによるマイクロペイメントが実現される未来はすぐそこかもしれません。今後の発展に期待しましょう!

まとめ

今回はライトニングネットワークを解説してきましたが、いかがでしょうか?

スケーラビリティの問題は根強く、イノベーションの促進を阻害している1つの要因となっています。

スケーラビリティの問題が解決された時、世界がどのように変化するのか。

これからの動向に注目です。


ビットコイン (bitcoin) ブロックチェーン 用語解説