今回は、超入門コンテンツとして、ライトニングネットワークを5分で理解できる記事を書きました。

本当に5分で要点がわかるとおもいますので、初心者ならずも、すでに知っているという人も確認のためにも読んでみてください。

チャネルを開くという意味

ライトニングを使う前には、相手方とチャネルを張る必要が有ります。

このとき金額をきめてコインをデポジットします。

以下は、5BTCをデポジットした図です。

オハジキみたいなのがコインで、オハジキの数が、チャネルの容量(キャパシティ)になります。

ここで、A⇒Bで1BTCを送ります。

おくりました。コインが移動してます。

さらに、4BTCおくります。


全部のコインがBさんに移動してしまったので、もうAさんはこのチャネル経由でコインをおくることはできません。

しかし、今度は受け取りができるようになります。

B⇒Aに、2BTC送ったのが以下の図です。

戻ってきましたね。

ライトニングで送金はできるけど受け取りができないという人がいますが、それはこのような仕組みになっているからです。受け取る量よりも、すでに送った量のほうが多くないと受け取りに失敗します。

オフチェーンの意味と、チャネルの精算について

ということで、AとBの間では、5BTCの容量の範囲ですきなだけコインを移動することができます。移動は一秒程度で完了し、手数料はほぼゼロに近いです。

チャネルを閉じると、コイン残高が精算されます。上記の例の場合、オンチェーンの指定したアドレスに、Aには2BTC、Bには3BTC帰ってきます。


精算するまでのライトニング送金はブロックチェーンに書き込みする必要はありません。お互いの精算時残高を管理しておけば良いだけです。残高はお互いが電子署名することでズルができません。これが「オフチェーン」の意味です。

もっというと、オフチェーンでは、リアルな意味でのコインの移動は起きてません。精算時の残高情報を書き換えることで、あたかも送金しているように見えるというものです。

チャネルですが、送金毎に開けて閉じてということは必要ありません。開けっ放しでよく、なんどでも送金に利用できます。基本的に開けっ放しを想定しています。

チャネルは銀行なのか?


さて、デポジットというと、銀行を思い浮かべる人が多いでしょう。

チャネルを貼るには、コインのデポジットが必要ということですが、このコインはどこにあずけるのでしょうか?

  1. 取引所みたいな仕組みのところ(ハブ)
  2. チャネルを張る相手に預ける

どちらでしょう?

こうした第三者が必要だから、ライトニングは悪だ、みたいな批判をするひとがいます。

答えは、どちらでもないです。取引所みたいなところや、相手にあずけてしまったら、相手が持ち逃げしたり倒産したり、GOXするリスクがあります。

ライトニングネットワークでは、第三者を信用する必要がありません。第三者不要をオフチェーンでも実現したところがライトニング技術の革命的なところなのです。

コインはどこに預けるか?という問いの正解は、

マルチシグアドレス

です。

AとBが共同でつくったマルチシグアドレスに、コインを送るということです。


  1. お互いの鍵がないとあかない金庫にコインをあずけておく

ということですね。

取引所や銀行のような第三者はでてきません。あくまで当事者同士の話です。

第三者を経由した支払い

次に第三者を経由した支払いです。

A⇒B⇒C

という支払いですね。

ここで、ライトニングを理解できてないひとが勘違いする最大のポイントがでてきます。

それはコインが実際にはどのように移動しているかです。

これが、ライトニングを理解できてない時に送金イメージです。Bは、Aからコインを預かって、それをCに受け渡している、みたいな感じです。

普通にイメージしたらこうなりますよね。仕方ないです。

しかし、実際には、こうなっています。


A⇒B、B⇒Cで、別々のチャネルが存在しているだけ、というのが正解です。ABCを統合したチャネルというのは無いです。

これでどうやってA⇒B⇒Cの送金をするのか?

答えは、こうなります。


オハジキがどう移動したかを追えば、どうなっているかおわかりですよね。

つまり、個々のチャネルの残高を調整することで、あたかも経由送金ができるように見えるという仕組みなのです。

なお、これをみると、Bさんが悪事を働けそうです。BさんはAさんからだけ受け取って、Cに支払わないという。しかし、実際にはHTLCという仕組みをつかってそれを暗号的に防いでいます。Cさんに支払った証明がないと、BさんはAさんからの受け取りできないみたいな話になってますので、大丈夫です。

第三者を中継しても、信用不要というわけです。

さて、ここでチャネルのキャパシティが関係してきます。たとえばこの状態だと、Cさんはあと2BTCしかBさんから受け取ることができませんよね。ですのでAさんが3BTC以上をCさんに送ろうとしても、Bさん経由では送れないないということになります。

これがよく言う、送金が「詰まる」問題です。

なので、チャネルは、いくつかの人と貼って、ネットワークを形成しておくと良いという話になります。

https://1ml.com/
レポート執筆時点では、チャネルの数が23465、総キャパシティが643BTCあります。

残高情報と、送金履歴情報の保有者と範囲

次に、情報を誰がどこにどう保持しているのかについて少し話します。

  1. チャネルを閉じて精算するのに必要な残高管理の情報
  2. どこに送金したかという送金履歴

この2つがどこにあるのか?について答えます。

1)残高情報

A⇒B⇒Cという場合、チャネルを閉じるのに必要な残高情報は、AとB、BとCでそれぞれ持って管理しています。それぞれ別のチャネルですので。

AとBが合意すればA⇒Bのチャネルを閉じることができます。同様にBとCが合意すれば、B⇒Cのチャネルを閉じることができます。

AはB⇒Cのチャネルには関知できませんし、情報もしりませんし、閉じることもできません。A⇒B、B⇒Cというチャネルはあくまで別々の2つのチャネルです。

さて、チャネルが閉じられると、メインチェーンに最終残高が戻ってきて書き込まれます。しかし、当事者以外は、最終残高しかわかりません。その残高に至るまでに、どことどういうやり取りがあったのかは知るすべはありません。

2)つぎに送金履歴について、これは、送金者と受金者がそれぞれに持っています。

A⇒B⇒Cという送金の場合、AとCが完全な履歴をもっています。

しかしながら、Bも中継をするという理由から、履歴を知っていることになります。

ただし、中継が多くなるとその限りではないです。

A⇒B⇒C⇒D

という場合。

この時、Bは、最終着金者がDであることはわかりません。Bは、AからきたのをCにリレーするという処理をするだけで、その先Dまで行くということは関知できません。同じように、Cは、BからきたものをDに送るだけで、それがはじめはAから来たということはわかりません。

つまり、中継するひとは、前後だけしかわからないという仕組みになっています。

なお、AとDは、お互いどういうルートでいくら送金したかというのは記録をもっているのでわかります。当事者だけが全体を知っているという形になっています。

というわけで、ライトニングの送金は検閲できるといった話は誇張された話であることがわかります。たしかに中継車は一部を知ることは出来ますが、それを知ったところで、送金の全体像は把握できません。

キャパシティとプライバシー問題への改善点

AMPという技術が開発されており、今年中には使えるようになりそうです。

これは、送金のつまりを解消するとともに、プライバシーを向上します。

A⇒B⇒C

という送金で、Bのデポジット額が少ないためにCに送金できない例があると書きました。

そこで、

A⇒X⇒Cや、 A⇒Z⇒C

といった別ルートをつかって、それと合算することでCに送ることはできないかというのがAMPです。

たとえば、3BTC送るのに、送金経路を3分割して、それぞれ1BTCづつ送ります。

例)

A⇒B⇒C で1BTC

A⇒X⇒C で1BTC

A⇒Z⇒C で1BTC

AMPでは、これを一体の1つの送金として扱うことができます*。これでキャパシティが有効に活用できるようになります。

これはプライバシーも同時に向上させます。中継者のB、X、Zは、全体がどのような送金なのかを知るすべは全くないでしょう。

ライトニングは経由者(=ハブ)が情報を得ることができるという話は正しいですが、

1.知ることのできる範囲は前後まで

2.AMPで送金すると全体像は把握不可能

なので、全体としてはオンチェーンよりも、匿名性が増すと思います。

チェーン解析のようなことも出来ないと思います。

*1 一体の送金というのは、分割した送金の一部だけが届いて、残りが届かないというようなことがないという意味です。送金は全体が成功するか、一部が失敗した場合全部失敗として資金がもどるようになっています。

まとめ

まとめをします。

  1. ライトニングを使うにはチャネルを張りコインをデポジットする必要がある
  2. デポジットは第三者にではなく、当事者の鍵によるマルチシグアドレスを使う
  3. 送金は、オハジキの移動のイメージ。オハジキが行って来いする。
  4. 実際のコインが移動するのではなく、精算時残高情報を交換し、合意しているだけなので、高速送金が可能。
  5. 中継支払いでは、個々のチャネルの残高を調整することで、あたかも経由送金ができるように見えている。
  6. プライバシー面では、情報が知られる部分もあるが、全体としてはプライバシーは向上する。

以上です。

これ以外に、フルノードでないと使えないとか、資金が盗まれるとか、そういう噂がいろいろありますが、これ以上は長くなってしまうので、今回はここまで。