チャネル張りとリバランスに挑戦
おはようございます。🐤
もしかしてLightning Networkってすごいですか?
世界通貨BTCを超絶安い手数料で早く確実に送金できるということのすごさに気づきつつあります。これ、なんでみんな使わないんですか?
Lightningがそこまで利用されない理由
いや、もしかして……めんどくさいから?
でも、BlueWalletとか使えばそこまで難しくないですよね。あと、Lightningがカードになって、タッチするだけで使えるってのもあるそうです。これならクレカと使い勝手は同じ、何も難しいことはありません。⇒The Bolt Card | CoinCorner
(ただ、手数料けっこう取られそうではあります…知らんけど)
たぶんね、たぶんLightningを難しくしているのは、インバウンドキャパシティとかアウトバウンドキャパシティだと思うんですよね。
「いや、いいんだよ、中身わからなくても使えたらそれでいいんだよ。テレビだって電子レンジだってそうじゃないか」
と言われそうですが、Lightningは違います。テレビや電子レンジはわからなくても使えますが、例えばLightningで送金しようと思ってチャンネルを作っても、そこにインバウンドキャパシティがなければ自分に送金してもらうことができないんです。
インバウンドキャパシティとアウトバウンドキャパシティ
Lightningのしくみは、ビットコインやETHなどの暗号資産とちょっと違って、ブロックチェーンじゃなくって「ペイメントチャネル」っていうP2Pネットワークで成り立ってます。
ビットコインは、ビットコインノードっていうコンピュータが世界中にたくさんあって、そのノードが「ブロックチェーン」という台帳を共有しています。利用者は、ウォレットアプリを使ってその台帳にある数字を操作することで、価値のやり取りをすべて記録しています。
ブロックチェーンを見たら、ずっと昔の取引まで、誰が誰にいくら支払ったかってことが書いてあります。大きな大きな台帳ですね。ちなみにビットコインの台帳は2022年7月現在、約470GBもあります。
対してLightningのノードは、自分と相手のチャネルの情報は持ちますが、Lightning Network全体のすべての取引記録をもっているわけではありません。また、マイニングで他のコンピュータと計算競争をするわけでもありません。だからノードの容量や性能は小さくてかまわないのです。
チャネルとはこんなものです。
持っている情報は次のようなものです。
- どのノードからどのノードに張ったか
- そこに何BTC入れたか
- 手数料率など
- いつできたチャネルか、今も有効か
これは「チャネルを張った人の方にコインがある」という決まりがあります。図ではアリスがチャネルを張ったので、アリスの方にコインが3つあります。
アリスがボブに1 BTC支払ったら、このうちの一枚がボブに移ります。そんなイメージをするとわかりやすいと思います。(ほんとは数字が記録されるだけなのですが)
では、もう一度最初に戻って、最初の状態からボブはアリスにBTCを送金することはできるでしょうか? 否、できません。チャネルはあっても自分の方にBTCがないので支払いができないのです。
この、アリスの側にあるBTCは「相手に送金できる」ので「アウトバウンドキャパシティ」(=送金可能な最大額)といい、
反対側にあるのは「相手から送金してもらえる」ので「インバウンドキャパシティ」といいます。
Lightningではめちゃ大事な用語です。
リバランス!
ボブから支払いを受けたいとします。
そのためにはこのBTCがボブ側にある必要があるのですが、ボブ側に寄せる方法はあるでしょうか。
つまり、インバウンドキャパシティを作る方法はあるでしょうか。
もちろん、アリスがボブに支払えば寄るのですが、それはとりあえず目的と違う結果にしかならないので、なんとか、ボブから支払いを受けたいのです。
ひとつの方法は、ボブ側からチャネルを張ってもらうことです。簡単ですね。でも、チャネルを作るときにはビットコインのブロックチェーンに書き込みが必要なので結構な手数料が発生します。
なんとかして、「今あるチャネルの中の資金を寄せるだけ」ができないか?
そんな方法無いように思いますが、場合によってはこれができるのです。
Lightningはノードとノードの間にたくさんのチャネルが張られています。アリスとボブの間のチャネルだけじゃなく、ボブは他にいくつもチャネルをもっていました。そのうちの一つのチャネルが、アリスのBlueWalletのチャネルにつながっていたら、そこに向けてアリスが送金したらこの図のようになります。
アリスがもうひとつ別に持っている、BlueWalletのアドレスに送ります。BlueWalletのアドレスはBlueWalletがルートを確保しているので、アリスが意識してルートを作る必要はありません。
アリスは自分のお金を自分で受け取りますから、実質誰にも送金していません。しかし、アリスとボブの間のチャネルに注目すると、ボブの方に資金が寄るのがわかると思います。
あ、これを話す前に、Lightningの送金方法のことを説明しないといけません。LightningでのBTCの送金は、それぞれのノードの間のチャネルの間にあるBTCを、あっちに寄せて、こっちに寄せてと調整を繰り返して、最終目的アドレスに届けるのです。
アリスの持っているBTCがギューンと送られて渡されて目的地に届くわけではないというところがポイントです。
これがチャネルのリバランスで、これをすると、ボブの側に資金が寄って、そうすると、ボブからアリスに支払いができるようになるのです。
次は
チャネルのリバランスについてお話しました。簡単なようで、僕はここまで理解ができるのに何週間もかかっています。Lightningに興味がある人に伝わると良いなと思います。
実際は、アリスからもボブ以外のチャネルを張っているので、単にアリスからBlueWalletのアドレスに送るだけでは、ボブとのチャネルが使われるかわかりません。
なので次は、狙ってボブとのチャネルの資金をリバランスするためにはどうしたらいいかチャレンジしてみたいと思います。
それではまた、DeFi〜(@^^)/~~~
今まで見た解説で一番分かりやすいw