Lightning Networkに入門して体験してみる

Lightning Networkはオフチェーンで独自のP2Pネットワークを利用することで高速かつ低い手数料でBitcoinの支払いができるというLayer2の技術です。未来の技術ではなく今すぐBitcoinのメインネットワークで試すことができます。

dailyhodl.com

この記事では Lightning Network がどんなものかを知るところから実際に試して見るところまで、Webに散らばっている資料をまとめながら紹介していきます。

Lightning Networkってどんなもの?

どれだけ高速に取引できるのかは以下のRedditに投稿されている動画がわかりやすいでしょう。

www.reddit.com

元動画: ⚡️ Cross-Implementation Lightning Payment on Bitcoin's Mainnet ⚡️ - YouTube
動画中のサービス: Starblocks | Spend bitcoin with LN on TESTNET

HTLC.me というサービスを使えばブラウザ上ですぐに体験してみることもできます。このサービスはBitcoin Testnet上でのLightning Networkを利用していて、まずサイトにアクセスすると新しくウォレットを作ることができ、ウォレットを作るとFaucetから少額のTestnet Bitcoinが受け取れます。Bitcoinを受け取る時は Receive と書かれたタブをクリックして受け取りたい金額を入力し、Request Paymentというボタンを押すと invoice と呼ばれる文字列が発行されます。これを送ってほしい相手に共有して、相手は Send と書かれたタブをクリックして出てきた入力欄に invoice を入力して送金します。実際に試してみると一瞬で送金が完了するのがわかると思います。

Lightning Network Explorer を使えば Testnet に現在どれだけのLightning Networkのノードが立っているのかを確認することができます。2018/1/14現在では722個のノードと2333個のペイメントチャネルが開かれています。

Lightning Networkの仕組みは?

Lightning Networkが動作する仕組みは以下の動画がわかりやすいです。

www.youtube.com

Lightning Networkをかいつまんで説明すると

  • まずネットワークに参加するために使用するBitcoinの送金を行ってペイメントチャネルを開く
  • そのあと送金を行い誰にいくら払ったのかという情報をトランザクションに反映していく
  • もし誰かが古いトランザクションを不正に使用しても自分のBitcoinを取り返すことが可能
  • 最後にトランザクションをBitcoinブロックチェーンに送信して送金が完了
  • 直接繋がってる相手でなくても間接的に繋がっていれば送金を行うことが可能

となります。

技術的な話はビットコイナー反省会にて行われた安土さんの説明が詳しいです。

youtu.be

ある程度Lightning Networkの仕組みを理解すると

  • ペイメントチャネルを開閉するはめんどくさそう
  • 資金がロックされるのは不安だしどれぐらいロックするべきかもわからない

といった疑問点や不安が出てくると思います。以下の画像では今スマホで利用しているBreadのようなHot walletとLightning Networkの使い勝手が変わらないことを説明されています。

imgur.com

Lightning Networkにはどんな実装があるの?

Lightning NetworkはペイメントチャネルHTLCを利用して信頼できないP2Pネットワークで複数者間のBitcoin取引を行う方法を示していますが具体的なプロトコルまでは落とし込まれていません。実際にLightning Networkを実現するためにP2Pでどのようなメッセージをやり取りすればいいのかをプロトコルとして定めたものにBOLT(Basis of Lightning Technology)があります。そしてそれらの実装としてeclairlndがあります。

lnd に関してはTutorialを読めば動かし方がわかると思います。ただし依存環境が多いので手っ取り早く試したい場合はDockerによるTutorialを進めるのが良さそうです。Tutorialでは手元に独自のBitcoinネットワークを作りますが、Testnetを利用して試そうと思ったらこの記事が詳しいです。ただしTestnetのブロックの情報を全て同期するのを待たないといけないため少し時間がかかります。

lndと連携して使いやすいGUIを提供してくれるZapというアプリケーションもあります。

Lightning Networkはこれからどうなっていくの?

2018/01/14現在Bitcoinの送金手数料は数千円ほどで、とても決済に使えるような状況ではありません。これはBitcoinネットワークが捌けるトランザクションの数が秒間7トランザクションと低い値であることが原因で、どのようにスケーリングしてこの問題を解決するかが重要となっています。Lightning Networkはオフチェーンでの取引を行ってオンチェーンのトランザクションを減らすことが出来るのでスケーリング問題の解決策の一つとして期待されています。BitcoinネットワークのスケーリングにLightning Networkが重要であることをインターネットの技術スタックと比較して解説している記事があってわかりやすいです。

medium.com

Lightning Networkのマルチホップでの送金を行うためには中継するユーザーが十分な量のビットコインを持っていないといけないという制約があります。このことから最初のネットワークは既に大量のビットコインを持っている取引所を中心に形成されていくと言われています。ユーザーとペイメントチャネルを開くことで顧客の囲い込みにも繋がるので取引所も積極的にLightning Networkに対応してくると思います。取引所ではなく交換所ですが早速Lightning NetworkでBTCから他の仮想通貨に交換できるZigZagというサービスがリリースされました。

medium.com

また匿名VPNサービスのTorGuardがLightning Networkでの決済を導入したことで話題を呼んでいます。

Torguard begins Lightning Network payments, lowers fees to almost nothing

2018年はどこがLightning Network対応したみたいなニュースがたくさん出てきそうですね。


追記2018/01/28

Reddit に Lightning Network についてまとめられた巨大なスレッドが登場しました

www.reddit.com

Lightning Networkのメインネットも順調に成長し、今日時点で284のノードと798のチャネルが存在しています

https://lnmainnet.gaben.win/

http://lnstat.ideoflux.com:3000/dashboard/db/lightning-network

BlockstreamがLightning Networkを使ってTシャツとステッカーが買えるオンラインストアを解説しました。

blockstream.com

注文の様子を写した動画です。劇的に早いですね⚡️

Lightning Networkが実際に普及していくにあたって、どのようなプロセスをふむのが現実的かを考察したブログもあります。
要約すると

  1. 取引所からBitcoinを引き出すためにユーザーと取引所がペイメントチャネルを開く
  2. 企業が取引所とペイメントチャネルを開き、マルチホップでユーザーと繋がる。繋がったユーザーは既に取引所によってKYCが終わっているという利点がある。
  3. 取引所間がペイメントチャネルで繋がる。取引所間でホップするときに手数料を設けることで取引所のインセンティブがとする。

のようなステップです。

medium.com

StripeがBitcoin決済を辞めました。とはいえ仮想通貨に見切りをつけたというわけではなくBitcoinが決済に適切な技術ではまだないという判断のようです。これを受けてLightning LabsのTwitterアカウントがLightning Networkの使用を勧めているのが面白かったw

Lightnint Networkを利用したアプリケーションのことをLappsと呼ぶそうです。今年は色んなLappsが出てきそうですね