ブロックチェーン

Mimblewimbleに対応したライトニングネットワーク(Lightning Network)の実装 − by Beam

※本記事はBeamの許可なくWhitePaperを意訳&補足したものです。そのうち削除されていたら何か強いフォースが働いたと思ってください。

Lightning Network

こんにちは。田上です。

Facebookのプライバシー問題やいわゆるGAFA問題が如実になってきたせいか、Mimblewimbleが話題になる日が多い印象を受けます。

また、Lightning Networkも徐々に台頭してきています。
ツイッター社のJack Dorsey氏が参加して話題になった”Lightning Torch”の影響や、SquareのLightning Networkサポート開始の報道などもあり、マスアダプトはまだまだ遠いものの、じわじわ来てる感があります。

そんな中、先日Beamが公開した”LIGHTNING NETWORK POSITION PAPER“というWhitePaperを目にしました。
MimblewimbleとLightning Networkの組み合わせということで、6ページのWhitePaperだったのでサクッと読んでみました。

本エントリでは、”Lightning Networkの秘匿性を強化するMimblewimble by Beam”と題して、WhitePaperを引用しながら解説していこうと思います。

秘匿化プロトコルMimblewimble

まずMimblewimbleは、トランザクションの秘匿性を高め、結果的にスケーリングも向上できると期待されているプロトコルです。

個人的に、ビットコインは全然privateではないと思っています。
ブロックチェーンの時代では、個人情報はもちろん、行動ログなどの個人データのprivate化は大前提です。
ビットコインの場合、ウォレットアドレスや取引額がpublicです。
当然、当事者間には上記の情報が漏れてしまいます。(これがあいつのアドレスか、あいつこんなにBTC持ってるのか、チクショーってなりますよね)

ここで登場するのが、EnigmaのSecretContractやBeamやGrinが採用しているMimblewimbleです。

上述した通り、これらはトランザクションの秘匿性を高めます。
なお本エントリは、秘匿プロトコルの説明が目的ではないので詳細は以下に譲ります。
What is MimbleWimble and its implementation in Grin & Beam
MIMBLEWIMBLE Tom Elvis Jeduso
What is Mimblewimble? The Complete Beginner’s Guide

ライトニングネットワーク(Lightning Network)とは

軽くライトニングネットワークについておさらいです。

ライトニングネットワークは、皆さんご存知の通り、ブロックチェーンのセカンドレイヤーに位置するスケーリングソリューションです。
オフチェーンを活用することで、高速かつ安価な価値の転送を実現します。

重要なのは、ライトニングネットワークは「trustlessness」「security」「decentralization」を犠牲にしない点です。
この三大要素を実現するために、ライトニングネットワークは広範なペイメントチャネルの概念に基づいて開発されました。

AliceとBob間のペイメントチャネルの仕組み
青色がオンチェーン、黄色がオフチェーンで処理されます
引用:https://docs.beam.mw/Beam_lightning_network_position_paper.pdf

オフチェーンのペイメントチャネルの概念は特に新しいものではありません。
サトシがまだビットコインコミュニティに顔を出していた頃から議論されていたみたいですが、サトシの提唱していた当時のペイメントチャネルには欠点がありました。
その後、2015年にJoseph PoonとThaddeus Dryjaが”Lightning Network”と呼ばれる新たなペイメントチャネルを発表するまで、他にもペイメントチャネルを構築する方法が模索されていたみたいです。
※ライトニングネットワークのWhitePaperはこちら

ライトニングネットワークは、およそ1年前にメインネットにリリースされましたが、5,700を超えるアクティブなノード、22,000ものパブリックチャネル、そして600を超えるBTC($2M)を達成しています。
Beamチームは、ライトニングネットワークがブロックチェーンのスケーリングソリューションとして最良の選択であることを既に証明していると言及しています。

なぜBeamにライトニングネットワーク(Lightning Network)が必要なのか

Beamのブロック生成時間は約1分となっています。
これは、ビットコインよりも10倍速いことを意味しますが、ではなぜ、Beamにライトニングネットワークのようなスケーリングソリューションが必要なのでしょうか。

これは、ブロック生成時間が速い=取引承認が速い、ではないからです。
ビットコインの場合、取引の承認が確実なものとみなすには、6ブロック待つ必要があります。(もちろんご存知の通り100%ではないです)
一方で、ネットワークがまだまだ若くハッシュパワーの低いBeamの場合、これを最大60必要としています。

これは既知の問題なので各所で議論されていますが、やはり最低限、VISAカードの処理速度は達成する必要があるでしょう。
そのために、ライトニングネットワークが必要になるのです。

現在、Beamはビットコインの約3倍の秒間txを処理することができます。
これはこれで素晴らしいのですが、まだまだVISAカードには遠く及びません。
クレジットカードのようなマスアダプションを実現するには、相応の処理能力が必要なのです。
ライトニングネットワークのような、セカンドレイヤーソリューションは、ブロックチェーンそのものを拡張せずに、処理能力を飛躍的に向上させることができます。
セカンドレイヤーなしに、マスアダプションの実現は考えられません。

また、ライトニングネットワークのコストは、オンチェーンと比べて劇的に安くなるはずです。
Beamは現時点でも手数料を低く抑えられていますが、まださらに安くできると考えられます。

Beamによるライトニングネットワーク(Lightning Network)への挑戦

Mimblewimbleとビットコインには多くの違いがあります。
中には、Beamチームで解決できるものもありますが、厄介なのはプロトコルで定義されているものです。
まず、Lightningノードはほとんどの場合、確実にオンラインになっている必要があります。
そして最も大きな問題は、MimblewimbleプロトコルにScriptが存在しないことです。

この部分が、Andrew PoelstraがMimblewimbleを考案した際に導入した“scriptless scripts”です。

スクリプトレススクリプトは、スクリプトの代わりに署名をエンコードすることで、スクリプト言語を使用せずにスマートコントラクトを構築することができる仕組みです。
そのための唯一の要件はシュノア署名を使用することです。

ライトニングネットワークにおける取引は、基本的に2-of-2のマルチシグになっています。
これは、Atomic Swapの一種としてBeamでも構築可能となっています。
主な違いは、ベースとなるMimblewimbleプロトコルの仕様により、ピア間でやり取りされるメッセージ数がわずかに増加する点です。

ライトニングネットワークの重要な概念であるHTLC(Hash Time Locked Contracts)を構築するには、CLTV(Check Lock Time Verify:絶対的条件を指定)とCSV(Check Sequence Verify:相対的な条件を指定)の2種類のスマートコントラクトスキームが必要になります。
ハッシュに関しては、最初からBeamの基本的なプロトコルの一部に含まれています。
タイムロックについては、CLTVは既に実装されているものの、CSVはまだ実装されていません。
CSVの実装については、主にGrinの開発チームで構成されているMimblewimblemのメーリングリストで提案されており、この案にBeamも賛成しています。

ここで、そもそもスクリプトなしでこれらの概念をどのように紐づけるのか、という問題に言及しておきます。
ビットコインにスクリプトの実行パスが複数存在する場合、Mimblewimbleでは互いの上に構築し合う複数のトランザクションを使用する必要があります。
これらのトランザクションの支出要件としては、ビットコインにHTLCと同じ仕組みを構築することです。
これは、チャネルの参加者間で送信されるメッセージの増加に繋がりますが、それによって得られる利益には相応の価値があります。

MimblewimbleのライトニングネットワークにおけるペイメントチャネルのAlice側のトランザクション構造の例
引用:https://docs.beam.mw/Beam_lightning_network_position_paper.pdf

ビットコインに対するMimblewimbleの優位性

Mimblewimbleの特性は、何と言ってもプライバシーです。
ビットコインにおけるオープンなチャネルを使った取引では、見つけやすい取引パターンが残ることになります。
少なくとも、当該チャネルを使用した2人の参加者や初期状態(initial state)、終了状態(end state)が公開されており、他のデータと組み合わせることで、プライバシーを侵害される恐れがあります。
一方のMimblewimbleは、チャネルの参加者とオンチェーン上の送金額を秘匿化するため、プライバシーを侵害される心配はありません。

プロジェクトロードマップ

ここ数週間、Beamの開発チームは、ライトニングネットワークとBeamの統合のために必要な要件を調査してきました。
Beamチームはこの目的を果たすため、現在ライトニングネットワークのRFC(Request For Comments)のフォークに取り組んでいます。

特にBeamの場合、次のステップはCSVを実装することです。
プロトコルのコアな部分としては、CSVの実装がライトニングネットワークの統合に必要な最後のステップです。
Beamは、Mimblewimbleだけでなくライトニングネットワーク全体のコミュニティに貢献できるようにしていく姿勢をみせています。