ライトニングネットワークは新たなイノベーションを仮想通貨にもたらすか?

今日は、仮想通貨業界で注目されているもう一つの技術、ライトニングネットワークについて、技術の分からない人でもどういう仕組みがイメージできるよう、かみくだいたお話をしたいと思います。

前回、Ethereumの重要プロジェクトの一つであるCasperについて詳しくお話しました。Casperは、プルーフ・オブ・ステイクをベースに、ビットコインのマイニングを支えるプルーフ・オブ・ワークのテクノロジーが、パワーゲームのメカニズムに寄ってしまっているため大型マイナーによる寡占化が進んでしまう問題を解決し、初期のビットコインがそうであったように、個人のノートパソコンでもマイニングできるような状態にしようとしています。しかし、Casperが実稼働できる状態に辿りついても、まだ残されている課題があります。それが、「1秒間に取引できる件数」の問題です。

現在のビットコインは、1秒間に取引可能な上限は7件、イーサリウムで15件です。これは、二つともP2Pテクノロジーを使っているためなのですね。一方、多くの人が仮想通貨を日常の生活における決済として使えるよう希望を叶えるとなると、クレジットカードの決済ネットワークぐらいのスピードは必要です。その代表格と言われるのが、カードブランドのVISAが運営しているVISA-NETというクレジットカードネットワークがあります。VISA-netは、1秒間に4,000件から50,000件処理することができます。けた違いの能力です。更に、いわゆる株式の証券取引所などは、1秒間に100万件以上処理することが可能です。

ビットコインやイーサリウムの技術レベルから見れば、雲の上のレベルですね。なぜこれだけ早いかと言うと、彼らのシステムが、インターネットと同じクライアント・サーバーモデルと言う考え方でシステムが組まれていることが理由でもあります。

左がインターネットのクライアント・サーバーモデル、右がブロックチェーンのP2Pモデル

基本的に、P2Pは、クライアント・サーバーモデルに比べると、1秒間に処理できす件数が圧倒的に低いです。そして、この問題を解決しようとしているのが、ライトニングネットワークと言われる技術です。

ライトニングネットワークは、ジョセフ・プーンとタディウス・ドライジャと言う二人の技術者が2015年にホワイトペーパーを発表、開発したテクノロジーで、ジョセフは、ライトニングネットワークの技術を提供するライトニングラボに引き続きおり、また、ビタリックと共にイーサリウムにおけるライトニングネットワークであるPlasma Cashの技術開発を行っているのですが、タディウスは、ライトニングラボCEOのエリザベスと揉めて、今、MITメディアラボで、ライトニングネットワーク含めたブロックチェーン関連の研究者をやっています。

ライトニングネットワークは、業界では通称「オフチェーン処理」と言われることが多いです。対するのは、「オンチェーン処理」です。オンチェーン処理とは、実際にブロックチェーンの「ブロック」に決済した履歴を書き込んでいく作業のことを言っています。これが、ビットコインだと、1秒間に7件ぐらいしか処理できないのですね。オフチェーン処理は、この書き込みをしなくても、問題なく決済できる処理方法のことを指します。

ただし、この「問題なく処理できる」というのが重要で、例えば、AさんとBさんがいて、お互いに、何のトラブルなく、どちからが別のどちらかに騙されることなく、決済取引を終えると言うのは、なかなか知恵のいる話です。ビットコインのプルーフ・オブ・ワークは、このAさんとBさんの間に、Cさんという役割をたて(日本円では、この役割は日本銀行)、このCさんに、だれでもなれるというマイニングの仕組みを作って、動いています。

では、この問題をライトニングネットワークが、どのように克服しようとしているかお話していきましょう。

2者間ペイメントチャネルの設置

まず、ここに二人の仮想通貨で商取引をしたい人がいます。Aさん、Bさんでも良いのですが、この業界では、よくそれぞれの名前にABC順の名前をつけて登場人物を設定するので、Alice(アリス)、B(ボブ)としましょう。アリスは自分が作った「動画」をボブに売ろうとしています。ボブはその対価として、アリスに1BTCを支払おうとしています。このとき、アリスの心配は、ボブが動画ファイルだけ持ち逃げして、1BTCを支払わないこと、ボブの心配は、アリスが、1BTCをもらって、動画ファイルをくれないことです。

ライトニングネットワークでは、まず、この場合に、「2者間のペイメントチャネルを作る」というルールを設けています。下の図を見てください。

アリスとボブが、それぞれ取引に必要な量のBTCを取引用ウォレットにデポジットする

アリスは、自分のウォレットには20BTC、ボブは自分のウォレットには、15BTCそれぞれ持っているのですが、お互いに商取引をするために、取引用の二人だけが使う「ウォレットA」を新たに作り、そこにそれぞれお互いの取引に必要であろうBTCをデポジットします。この場合は、5BTCずつですね。

ですから、初めの想定ケースは、アリスがボブに動画を売るための取引ですが、逆のパターンで、ボブがアリスに自分の何かを売ることもできるようになっているのがウォレットAです。ウォレットAが、2of2マルチシグウォレットになっているのは、お互いの合意がないと、このウォレットを解除できないようにするためです。

2of2マルチシグと言うのは、ウォレットにデポジットしている二人が、それぞれお互いに片方のものを知ることができない別の秘密鍵を持っていて、その秘密鍵二つを一緒に使わないと取引できないというルールのウォレットです。ですから、この時点ではお互いにお互いを騙すことはできないわけですね。

2of2を3者間や4者間にしたければ、3of3、4of4と秘密鍵の数を増やして行けばよいのですが、ライトニングネットワークは、2者間取引のためのテクノロジーなので、2of2です。この秘密鍵に基づく2者間のルールを、Xとします。実施の技術では、CSVロックのことを指しているのですが、技術の分からない人向けに、ルールXと覚えておいてください。

ルールX: アリスとボブがそれぞれ別の秘密鍵を持っており、二つの鍵がないとデポジットした合計10BTCは取り出せない。

そして、この「アリスとボブが5BTCずつデポジットした」という取引は、ビットコインのブロックチェーンに書き込まれます。しかし、この後、この合計10BTCを、お互いの間で、好きき回数、好きな量をやりとりする取引は、ブロックチェーンには書き込まれません。つまり、「オフチェーン」となります。なので、この2者間のペイメントチャネルを、世界中の人が、それぞれ設置して取引すれば、ビットコインのブロックチェーン本体が、1秒間に7件しか処理できなくても、大丈夫だ!という話になるわけです。

では、次に、実際に、ボブからアリスにどうやって1BTC送金するかについて見ていきましょう。

新しいルールYを使って、1BTCを送金

アリスとボブは、送金用に新しくマルチシグウォレットBを作ります。ウォレットBには、Aに使っていたXのルールに加えて、新たにYというルールが設けられています。ルールYは、以下のように設定されます。

ルールY:100ブロック後にアリスはウォレットBをアンロックできる(アリスは6BTCを手に入れれる)

100ブロック後というのは、ビットコインのブロックチェーンのことです。つまり、ウォレットBを使って、ボブはアリスに1BTC送金するわけですが、実際にアリスが1BTCを受け取るには、ブロックチェーンに取引履歴が書き込まれた後というの条件が設定されているため、対価の動画をボブに渡さないとボブがウォレットBの解除に同意しないので、問題なく取引成立とはならないわけです。ルールYは、技術の世界では、CLTVロックと言いますが特に覚えなくてもよいです。そして、ルールXも設置されているので、ボブはアリスから秘密鍵をもらわないと6BTCをもらうことができないわけです。

そして、もし、この取引をアリスもボブもキャンセルしたくなった場合、これも似たような方法で実現できます。

2者間ペイメントチャネルでキャンセルする方法

下記の図が、キャンセルのやり方の説明です。

図にあるよう、キャンセル取引をするために、新たにウォレットCを作ります。ウォレットCのルールは、ウォレットBのルールと全く同じです。そして、お互いのBTCの値を元のデポジットした時点の値に戻すことで、キャンセル取引が成立です。

そして、ウォレットCが最新であることは時系列によって分かるため、ウォレットBに保持されているアリスとボブのBTCの保有量は自動的に無効扱いになります。破棄されると言ってもよいですが、要するに古い取引であることがコンピュータ側で識別できるので、アリスもボブも昔の取引履歴のデータを復活させて、自分のBTC保有量を意図的に増やすなどの悪意的な行為はできないようになっているわけです。

しかし、この段階では、あくまで送金しかできていないので、アリスの動画が、本当にボブが欲しい動画なのか、もらったファイルの中身が実は空っぽだったなどの詐欺に合う可能性がまだ残っています。そこで、Step2として、第3者を入れての商取引を行う形をとります。

 

第3者を入れて商取引+ルーティング

ここに新たにCaroll (キャロル)が登場します。キャロルが間に入ることで、ライトニングネットワークは完成します。下記の図をみてください。ウォレットBまで取引が進んでいる状態で、新たにウォレットCを作ります。キャロルも100BTC持っており、仲介者としていくらかデポジットします。この場合は、5BTCとしておきましょう。

まず、アリスは、キャロルに動画ファイル(①バリュー)を渡します。そして、キャロルは、その動画ファイルを元に、②「ハッシュ値」という値を作ります。このハッシュ値は、ブロックチェーンなどでも使われているセキュリティレベルの高い関数(技術用語ではSHA-256。覚えなくていいです。)を元に生成する値なのですが、逆算することができないので、これを元に動画ファイルを複製することはできないのですね。同時に、このハッシュ値を動画ファイルを開くキーとしても使います。そして、キャロルは、このハッシュ値をボブに渡し、ボブはその代わりとして、キャロルに1BTC渡します。キャロルは、1BTCをもらったら、キャロルは、動画ファイル(④バリュー)をボブに渡します。そして、ボブは動画ファイルを開き、欲しかった動画ファイルであることを確認します。これが確認取れたら、キャロルは、アリスに対価である⑤1BTCを渡し、取引終了です。

そして、この取引を行うにあたって、ウォレットCには、新たにZというルールが加えられています。ウォレットCを解除するには、下記の二つの条件が必要になります。

ルールZ:
・アリスの署名とバリュー
・ボブの署名(ただしルールYでロック)

バリューを持っているアリスであればすぐに10BTCを受け取ることができますが、ボブの場合はルールYでタイムロックされているので例えば3日後にしか受け取れないということになります。なので、もしボブが10BTCを先に受け取ろうとしても3日間待たなくてはならないので、その間にアリスは署名とバリューを使って10BTCを引き出すことができます。

また、もしボブがキャロルからバリューをもらっていない場合は、ボブは10BTCを引き出すことができないので3日後、アリスに10BTCは返金されることになるのです。

アリスはボブからバリューを要求される前に、キャロルからバリューをもらっておかなければならないことに注意しましょう。もし、キャロルからバリューをもらう前にアリスからバリューを要求されたら、ボブはもっていないバリューを要求されている状態になってしまいます。

なので、ボブとキャロル間のルールZはアリスとボブ間のルールZより前に期限切れになるようにセットしておかなければなりません。例えば、ボブとキャロル間のルールZは1日間、アリスとボブ間のルールZは3日間といった感じです。このようにすることで、ボブがキャロルからバリューをもらう前にアリスとのルールZが期限切れになってしまうのを防ぐことができます。

これでライトニングネットワークは完成です。このルールZ(技術用語ではHTLCロック。覚えなくてよいです。)があるお陰で、間にたつキャロルは、誰でもなることができます。これがライトニングネットワークの最大の革新点と言えます。

そして、仲介者であるキャロルは、一定の取引手数料をアリスとボブからもらいます。アリスとボブは、キャロルを信用する必要はないのですが、仲介者としての報酬は払う必要があり、これをモティベーションにビットコインのマイナーと同様に仲介役を買ってでるプレイヤーがたくさん出てくることが想定されます。

ライトニングネットワークに残された課題

素晴らしいコンセプトのライトニングネットワークですが、まだ登場したばかりの技術なので色々と課題が残されています。大きく3つあると見ています。

デポジットすることを受け入れるユーザー体験のアプリが必要

まず、真っ先に思い浮かぶのは、ライトニングネットワーク特有のルールである、まず、取引したい二人が自分達の持つ仮想通貨の一部をデポジットしなければならないというルール、これを素直に受け入れるようなユーザー体験のアプリが必要ということですね。ライトニングネットワークは、あくまで底辺の技術の話であって実際のユーザーにとっては、ブラックボックスで使う対象です。ですから、ユーザーからみて見ると、素直にデポジットしてもいいやと考えるようなユーザー体験のデザイン(User Experience=UXと呼ぶ)がアプリ側に施されていないと初めから使おうとは思わないでしょう。ブログが出てくるまで、インターネットで個人がメディアを持つのがまだまだ大変なことだったという話と近いです。

アリスが東京で、ボブがニューヨークの場合はどうする?

まず、距離の問題です。取引者である、アリスとボブの距離が離れているほど、より多くの仲介者が間に立つ必要があります。仲介者を信用しなくて良いことは、プルーフ・オブ・ワーク同様に素晴らしい革新点なのですが、インターネットにおけるルーティングの発想と同様、二人の距離が広がるほど、中継点をたくさん必要とするため、一定規模の利用者が出て来ないと本格的に使うのは厳しいということです。

大量のBTCを保有する人に、キャロル役が集中しない?

もう一つは、キャロル役の中央集権化リスクです。当然、大量の取引を並行して裁くことができる仲介者に、みんなお願いしたくなる可能性が必ず出てきます。すると、結果的に、このもっともパワフルなキャロル役がまた出てしまうではないか?というリスクです。ルーティングの考え方を踏まえると、インターネットの影の巨人と言われる「アカマイ」を連想させますね。僕らが、海外などで投稿されたYoutubeの動画などを日本ですぐに開いて高速再生で閲覧することができるのは、このアカマイが、世界中に自分達のデータセンターを設置して、そこによく観られる海外の動画ファイルを保管しているからなのですが、同じようなプレイヤーが、ライトニングにも出てきてしまうのではないか?というリスクです。

取引対象が、動画や請求書のようなデジタルファイルではなく、Tシャツだったらどうする?

バリューとハッシュ値による高いセキュリティ環境での取引を実現している点は、ライトニングネットワークの優れた点なのですが、取引対象が、デジタルファイルなどではなく、実際のモノの場合などは、どうするのか?仮想通貨取引の部分は、ライトニングネットワークで良いのですが、それ以外のモノのやりとりなどは、今の貿易取引などで使われているエスクロー取引に頼らないといけないのではないか?という課題です。

インターネットの技術も、1970年代から本格研究が進められて、1994年に初商用化されたというのが実際の歴史ですから、これから、少しずつこれらの課題も優れた技術者によって解決されていくと思います。

いかがでしたでしょうか?

話の冒頭に出たEthereumのCasperについてはこちらにまとめています。

ノートパソコンでマイニングできる世界を目指すイサーリウムCasperについての分かりやすい話①

僕も、自分の貯金の一部は、将来的な資産運用の目的や未来への投資という目的で、仮想通貨に投資しています。みなさんも余裕のある範囲で、少しずつ仮想通貨に長期投資することをオススメします!

 

関連記事