Lightning Networkについておさらいしてみる
こんにちは、HashHubの所属のエンジニア白井です。
今回がTech Blog初登場になります
1月からHashHubにジョインし、現在は開発中であるLightning Network ソリューション DenryuProjectのエンジニアをやっています。よろしくお願いします。
今日は、僕が開発に関わっているDenryuの根本技術であるLightning Networkについて、そもそもLNって何ということをおさらいする記事を書いてみました。
これまでなんとなくLightning Networkのことは聞いたことはあるけど…といった方、この記事で改めて理解を深めていただければ嬉しいです!
そもそもLightning Networkってなに?
ブロックチェーンに興味がある方なら、一度はLightning Networkという言葉を聞いたことはあると思います。
簡単にLightning Networkについて説明すると、Bitcoinが抱える処理速度、手数料、スケーラビリティなどの問題を解決するために考案されたオフチェーン上のセカンドレイヤーペイメントプロトコルのことです。(急にカタカナがめちゃくちゃ出てきましたが、あとで説明するの一旦気にしないでくださいw)
Lightning Networkを駆使してBitcoinを送金することで通常のBitcoin取引で発生する手数料をほとんどゼロに近くすることが出来、また高速な送金が可能になります。
2015年にホワイトペーパが発表され、詳細な仕様が複数の団体によって開発されています。2018年にメインネットに対応した実装がローンチされました。
現在まだまだ使い勝手に問題がありますが、そのネットワークは着実に成長しています。
なぜ Lightning Networkが必要なのか
Bitcoinのスケーラビリティを解決するのに必要な技術だということは前段落で説明しましたが、より具体的な話をしていきます。
Bitcoinはトラストレスな取引を実現するために、処理できる取引のデータサイズを10分ごとに1MBに制限しています。
1MBのビットコインブロックを件数に置き換えると約4,000件の取引記録しか記録できないので、10分で4,000件を処理すると考えると、1秒間に処理できる取引は約7件という計算になります。
この数字は、1秒間に4,000~6,000件を処理出来ると言われているVisaなどの従来の決済システムと比べると圧倒的に劣る数字だと言えます。
実際に2017から2018年にかけてBitcoinの取引量がその性能を上回ってしまい、取引手数料の高騰を招きました。トランザクション数が処理されるまで数時間の遅延が発生していたことは、皆さんも覚えているかと思います。
この問題を解決するために、Bitcoinの一度に処理できるデータサイズを引き上げるといった案や、取引の記録のデータ量を節約するといったことが検討されました。
後者のアプローチでBitcoinのスケーラビリティ問題を解決しようとしているのがLightning Networkになります。
Lightning Networkを駆使してBitcoinを送金することで通常のBitcoin取引で発生する手数料をほとんどゼロに近くすることが出来、また高速な送金が可能になります。
Bitcoinの技術的な制約を解決し、手数料がほとんどかからないことから少額決済にも応用が可能な技術として注目されています。
Lightning Networkで使用されている技術について
通常のBitcoinの取引は、トランザクションを作成し、ノードが検証し、ブロックチェーン上にトランザクションが取り込まれ、承認されるという流れで、すべてブロックチェーン上で取引が行われます。(これをオンチェーントランザクションと言います)
これに対して、Lightning Networkを使った取引では、ピア同士でチャネルというものを作り、チャネルに取引の状態を保持することで、ブロックチェーン外のレイヤーつまりオフチェーンで取引を行い、最終的な結果だけをBitcoin上のブロックチェーンに記録します。
複数のトランザクションを集約し、ブロックチェーン上には本当に必要な情報だけを記録することで、ビットコインの処理速度の限界や、トランザクションを発行するたびに必要になる手数料などを気にすることなく決済が出来るようになります。
以下に簡単な説明にはなってしまいますが、Lightning Networkを実現するために使われている代表的な技術を紹介します。
■ペイメントチャネル
Lightning Networkの送金のベースとなる技術です。
取引に参加する二者間でチャネルに開設し両者のBitcoinをデポジットします(A: 3BTC, B: 3BTC)。両者間での取引が合った場合は、その持ち分を入れ替えて、送金します(A→Bへ1BTC送金。A:2BTC, B: 4BTC)。
取引したBitcoinのお互いの残高を確定させたいときにチャンネルをクローズします。
最初のデポジットした時点と最後の部分での残額のみをブロックチェーン上に記録することで、記録するデータ量と取引手数料を削減することが出来ます。
これをA→Bだけでなく直接チャンネルを開設していない相手にもA→C(A→B,B→C)というように二者間のチャンネルをつなぐことで効率よくオフチェーンで送金出来るネットワークを作ったものがLightning Networkになります。
■HTLC
「HTLC」とは、「Hashed Timelock Contracts(ハッシュドタイムロックコントラクツ)」の略で、 第三者を仲介するして送金をする時に、仲介者を信頼せず取引を可能にしている技術です。
HTLCを使うことで、AがBを仲介してCにBitcoinを送金する時、BがBitcoinを盗もうとしたとしても、Bの署名に加えてCのみしか知らない秘密鍵が必要となるため、仲介者がBitcoinを盗むことは不可能となります。
また、万が一、送金した相手がBitcoinを取り出さなかった場合、送金者のBitcoinは途中で宙吊りになってしまいますが、TimeLock(設定した時間までトランザクションが有効にならない)を設定することで、金額が払い戻されることを保証することが出来ます。
現状の課題と今後の動向
課題について
Bitcoinのスケーラビリティ問題を大きく改善することが期待されているLightning Networkですが、メインネットで稼働し始めているもののまだ実まだ験的なレベルであり、いくつか解決すべき課題も存在しています。
以下にその代表的なものをご紹介します。
■チャネル上の資金の流動性の確保
プロトコルの性質上、チャネルを通じた送金を成功させるためには、経由するチャネルに送金相手に実際に送る金額よりも多く資金がデポジットされている必要があります。
ネットワーク上に多くのチャネルが存在し、中継ネットワークが構成されていない場合は、そのスケーラビリティを実現することは難しくなります。1stレイヤーとは違い、Lightning Networkが実際にワークするかどうかはネットワークの状態に依存しています。
この問題の解決にはルーティングアルゴリズムの改善や複数のチャネルを一つのチャネルとして見立てて送金するAMPなどが挙げられています。
■不正トランザクションのブロードキャストの監視
通常、Lightning Networkでは不正な取引データがブロックチェーンにブロードキャストされた場合、悪者がそのコインを盗めるのはスマートコントラクトで指定された時間が経過した後になります。
この期間内に不正な取引がブロードキャストされたことを検知し、自身の有効な取引データを発信することでビットコインを相手から没収することが出来ます。
しかし、スマートフォンなどのモバイルウォレット利用していて、デバイスがオフラインの状態だった場合などは検知することが出来ず、一定期間が経過してしまいbitcoinを盗まれてしまう可能性があります。
現在では、Watch Towerという監視サーバーのようなものを立てて、オフラインのwalletの代わりに不正な取引データのブロードキャストを監視する仕組みが検討されています。
今後の動向とまとめ
現状、実際にLightningを使用して送金するには、まだまだユーザービリティに問題はありますが、そのネットワークは着実に成長しています。
直近1ヶ月だけをみても、2019年1月時点では約500BTCのデポジットでチャネル数が約2万程度だったのに対し、この記事を執筆している2月時点では700BTC以上がLightning Nerwork上にデポジットされており、3万以上のチャネルまでに数値が増加しています。
2019年は、弊社で開発しているDenryuなどのLightning Network関連アプリ増えていくことで、もう少しユーザーにとっても使いやすいプロトコルに変化していくのではないでしょうか。
僕らもそこに貢献できるようにDenryu開発引き続き頑張っていきます!
お知らせ
■HashHubでは入居者募集中です!
HashHubは、ブロックチェーン業界で働いている人のためのコワーキングスペースを運営しています。ご利用をご検討の方は、下記のWEBサイトからお問い合わせください。また、最新情報はTwitterで発信中です。
HashHub:https://hashhub.tokyo/
Twitter:https://twitter.com/HashHub_Tokyo
■ブロックチェーンエンジニア集中講座開講中!
HashHubではブロックチェーンエンジニアを育成するための短期集中講座を開講しています。お申込み、詳細は下記のページをご覧ください。
ブロックチェーンエンジニア集中講座:https://www.blockchain-edu.jp/
■HashHubでは下記のポジションを積極採用中です!
・コミュニティマネージャー
・ブロックチェーン技術者・開発者
・ビジネスディベロップメント
詳細は下記Wantedlyのページをご覧ください。
Wantedly:https://www.wantedly.com/companies/hashhub/projects