スピードに合わせたスケール:ビットコインライトニングネットワークの説明

公開: 2022-03-11

ビットコインライトニングネットワークは、ビットコインが主流の採用を妨げるすべての問題の解決策として知られている独立した解決策です。 それは、暗いスケーリングの問題を解決し、即時のトランザクションを行い、トランザクション料金をごくわずかに保ち、トランザクションをブロックチェーンから外すと主張しています。 コアビットコインから独立したシステムはどのようにこれらの改善を提供できますか? 確認なしで安全なトランザクションを提供することにより、ビットコインの従来のルールにどのように違反することができますか? ビットコインライトニングネットワークとは何ですか?

この記事では、ビットコインライトニングネットワークが実際に何であるか、それが提供する保証をどのように行うことができるか、そしてその現在の状態を探ります。

注:この記事は、ビットコインに精通していることを前提としています。 暗号通貨の仕組みに慣れていない場合、または復習が必要な場合は、「ダミーの暗号通貨:ビットコインとその先」をお読みください。

前提条件:ビットコインスケーリングの問題

ビットコインのスケーリングの問題を知っている場合は、このセクションをスキップしてかまいませんが、そうでない場合、または復習が必要な場合は、読み進めてください。

ビットコインにはスケーリングの問題があります。 ビットコインは、すべてのトランザクションをブロックと呼ばれるデータ構造に格納するように設計されています。 ブロックには、前のブロックに関する情報、マイニング報酬に関するその他のデータが含まれ、ブロックのほとんどは単なるトランザクションデータです。 ブロックも最大1MBのサイズに固定されています。 この最後のビットは問題があるところです。

ブロックのサイズは1MBであり、ブロックは10分ごとに作成されるため、トランザクションがSegWit(後で発生)ではないと仮定すると、ネットワークは1秒あたり最大3.3〜7トランザクションを処理できます。 何十億もの人間とその機械が大量に使用するように設計された通貨の場合、1秒間に7回のトランザクションが標準に達していません。 一方、Visaは、1秒あたり24,000件のトランザクションを処理できると主張しています。

トランザクションの数が増え始めると、個々のトランザクションが限られたブロックスペース内に含まれるかどうかを競い合うため、ブロックに含まれる可能性が低くなります。 マイナーはブロックに含めるトランザクションを任意に決定できるため、このような場合、マイナーにトランザクションを含めるようにインセンティブを与える唯一の方法は、トランザクション料金を増やすことです。 ただし、これにより、トランザクションが非常に高価になり始めます。たとえば、トランザクション料金が$14.86であった$92.98のこの192バイトのトランザクションなどです。

では、ビットコインをどのように「スケーリング」するのでしょうか? 3つの主要な考え方、または(私がそれらと呼んでいるように)Great ScalingBitcoinFlamewarsの戦いがあります。

  • ブロックサイズの増加:2X、8X、…、∞X
  • 小規模なトランザクション:SegWitetal。
  • サイドチェーン:ビットコインライトニングネットワーク

ビットコインブロックサイズの増加

これは非常に簡単に理解できます。1MBのブロック制限が問題になる場合は、それを大きくしてください。 これについての議論は激しく、今でも激しさを増しています。 最終的に、2017年8月1日に、ビットコイン(BTC)がフォークされ、ビットコインキャッシュ(BCH)が誕生しました。 2つの主な違いは、BCHには8MBのブロックがあることです。 これにより、ブロックはほとんど空になり、料金は非常に低く抑えられます。

ただし、8 MBブロックは、BCHブロックチェーンの合計サイズがはるかに速い速度で増加する可能性が高いことを意味し、ストレージコストがマイナーシーンへの参入障壁を大幅に高くします。 これにより、鉱夫の総数が減り、ブロックチェーンも保護され、分散化とビットコインネットワークの全体的なセキュリティが低下するという議論があります。

より大きなブロックに対する別の批判は、問題自体を解決しないということです。 むしろ、一時的に問題にパッチを当てます。 ブロックが大きい場合は常に最大制限があり、最大制限は常に、達成しようとしている目標制限である1秒あたり24,000トランザクションよりもはるかに小さくなります。 8 MBのブロックが大きい場合でも、BCHには1秒あたり61トランザクションの制限があります。

小規模なトランザクション:分離された証人

他のソリューションは、現在のトランザクション形式が最も効率的ではなく、同じブロックにより多くのトランザクションをパックすることを目的としていることを指摘しています。 これらの中で最も注目に値するのはSegregatedWitness(SegWit)と呼ばれ、BIP 91を介して提案され、2017年8月25日にブロック481824でアクティブ化されます。SegWitはビットコインの一部になりました。喜んでください。

Non-SegWitブロックとSegWitブロックの比較
David A. Hardingによるイラストに基づく、SegWit以外のブロックとSegWitブロックの比較

SegWitは、トランザクションから署名データを取得し、それらをトランザクションブロックとは別の構造に格納します。これにより、個々のトランザクションが小さくなり、各ブロック内の限られたスペースをより有効に活用できます。 この構造は、ブロックチェーンを同期するときにオプションであり、ディスク上のサイズの縮小が省略されます。

これにより、トランザクションの可鍛性の問題も解決され、SegWitの出力のみを使用するトランザクションは脆弱ではなくなります。

ビットコインライトニングネットワーク

ライトニングネットワークは、署名されているがブロードキャストされていないトランザクションをピア間で送信し、資金の最終決済のみをビットコインブロックチェーンに依存する第2層ネットワークです。 これは、トランザクションがブロックサイズにまったく制限されておらず、確認時間が無関係であり、ビットコインブロックチェーンがこれまでに発生したすべてのトランザクションを保存する必要がないことを意味します。

ビットコインライトニングネットワークを開発したのは誰ですか? これは、JosephPoonとThaddeusDryjaが作成したホワイトペーパーで最初に説明されましたが、その後、仕様や実装に貢献しているサードパーティの個人や企業とのコミュニティの取り組みに発展しました。

詳細については後で説明します。

SegWit対増加したブロックサイズ対ビットコインライトニングネットワーク

では、どれが最高ですか? 私の答えの根拠となる経験的証拠がないので、これは意見です。ブロックスペース(SegWit)をより適切に使用することは良いことだと思いますが、ブロックサイズを増やすことは未来へのゴールポスト。 ビットコインの使用が大幅に増加した場合、ブロックサイズの別の増加について議論を始めたばかりです。

同意しませんか? 以下にコメントを残してください!

そうは言っても、ビットコインライトニングのような代替の決済ネットワークは素晴らしいアイデアだと思いますが、それが現実の世界でどのように機能するかを見るのも待っています。 今のところ、父と私が使える状態ではありません。

ビットコインライトニングネットワークの説明

ライトニングネットワークは、署名されているがブロードキャストされていないピア間のトランザクションを送信し、資金の最終決済のみをビットコインブロックチェーンに依存する第2層ネットワークであることはすでに説明しました。

これが実際にどのように機能するかを見てみましょう。

Lightningノードとチャネル

Lightningノードは、ネットワーク化された方法で動作し、トランザクションを検証し、他のノードと通信するという点でビットコインノードとよく似て動作しますが、ビットコインノードがこれまで行っていなかったことを実行します:資金を保持し、自動化された金融仲介機関として機能します、Lightningの「チャネル」を積極的に監視して悪意のある動作を検出し、防御的に反応します(これについては後で詳しく説明します)。

これらの機能を実行するには、ノードにお金が必要です。

注:これらの例では、最初は全員が24時間年中無休でインターネットに接続されているビットコインライトニングネットワークノードを実行していることを前提としていますが、これは明らかに当てはまりません。 この仮定は、LightningウォレットとLightningノードのセクションで破られます。

Lightningチャネルの作成

あなたとあなたの友人のボブがかなりの量の金融取引を伴う関係を持っていると仮定します。 あなたは時々一緒に昼食をとったり、映画を見たりします。 片方が現金が不足している場合もあれば、もう片方とあなたが後でお互いにVenmoをしている場合もあります。

ただし、暗号の支持者であるあなたは、Lightningを試して、それぞれ半分のビットコインで均等に資金を提供する新しい相互チャネルを作成することにしました(これは多くの昼食です)。

ビットコインライトニングネットワーク上にチャネルを作成する2つのノードの図

新しいLightningチャネルを作成することは、トランザクションを承認するために両方の署名を必要とするマルチ署名ビットコインウォレットを作成することに似ていますが、1つの違いがあります。 ライトニングネットワークのホワイトペーパーにあるように、署名されたがまだ放送されていない「コミットメントトランザクション」を受け取ります。これにより、最初のデポジットが返されます。 このように、友情が大まかなパッチを通過した場合、またはどちらかがお金を必要とする場合、このトランザクションをブロードキャストすることで一方的にチャネルを閉じることができ、全員が正当な金額を受け取ります。

チャンネルを持っている人とLightningトランザクションを行う

ある日また昼食に出かけて、ボブに8,000サトシ(私がこれを書いている時点で0.31米ドル)に相当する金額を支払うことになったとします。 現時点で、ビットコインを使用してこの金額を決済すると、0.10米ドルを支払い、1時間待つことになり、実行不可能になります。

チャネル状態を更新する2つのノードの図

ただし、Lightningを使用すると、「コミットメントトランザクション」を新しいトランザクションに置き換えるだけで、これを無料で行うことができます。 今回だけ、ボブは8,000サトシ多く、あなたは少なくなります。 (この時点で古いトランザクションをブロードキャストして不正行為を行うことを考えている場合は、チャネルの閉鎖に関するセクションまで待ちます。)

トランザクションをブロードキャストしてチャネルを閉じることはできますが、チャネルを閉じると取引手数料が発生します。どちらもすぐに金額を必要としないため、チャネルを保持して将来の債務を決済するために使用できます。

チャンネルを持っていない人とLightningトランザクションを行う

ある日、ボブは別の友人のアリスを招待します。サンドイッチを1時間食べた後、アリスが起こったコイニエ(カニエウェストが訴えた後に放棄された無効な暗号通貨)しか受け入れなかったので、あなたは両方ともアリスに感謝しています持つため。

マルチホップライトニングトランザクションの図

ここで、ボブがアリスで開いているチャネルを持っていると仮定すると、ライトニングを使用して、ボブを介してアリスに支払うこともできます。 あなたのノードはあなたとアリスの間の最適なルートを計算します—この場合、ボブを金融仲介者として—そして仲介者は彼らが選択した場合は少額の手数料ですべてのお金を前払いすることができます。

チャネルを閉じる:2つの良い方法と悪い方法

Lightningチャネルを閉じるには3つの方法があります。

  1. 共同で:チャネルのいずれかの当事者がビットコインライトニングチャネルの閉鎖を開始し、他の当事者が承認します。 タイムロックはなく、承認が確認されるとすぐにお金を使う準備が整います。 これは、チャネルを閉じるための「最良の」方法です。
  2. 一方的に:チャネル内のいずれかの当事者は、他の当事者が承認しなくても、一方の当事者が望むときにビットコインライトニングチャネルを閉じることができます。 これにより、相手方が「違反救済」トランザクション(以下のシナリオ3を参照)でクロージャに異議を唱えることができるタイムロックが発生しますが、それが起こらないと仮定しましょう。 タイムロックの期限が切れると、資金は自由に使用できます。 これは、チャネルを閉じるための「許容できる」方法です。
  3. 違反対策: Lightningトランザクションは、資金の分割が異なる署名済みトランザクションのタイムスタンプ付きリストであるため、一方の当事者が、より多くの資金を保有する古いトランザクションでチャネルを一方的に閉じることにより、不正行為(信頼の侵害)を試みることができます(を参照)。シナリオ2)。 これによりタイムロックが発生し、この期間中、被害者は自分の資金を回収できるだけでなく、ビットコインライトニングネットワークのホワイトペーパーで説明されているように、「違反対策」トランザクションを使用してチャネルの全容量をスワイプできます。

ライトニングノードとライトニングウォレット

上記の例では、Lightningの「ノード」という用語を使用しました。これは、インターネット上でノードを24時間年中無休で稼働させ続ける必要があると思わせるものです。 そして、はい、あなたは正しいでしょう。 ライトニングネットワークは、ノードが常にオンラインになるように設計されており、ネットワークが最大容量に近い状態で動作することを保証します。 そして、不正行為の試みを監視するためにオンラインに誰もいない場合、それが成功すると、チャネルは通常の一方的な閉鎖のように閉鎖され、あなたの資金がなくなります。

ただし、ライトニングネットワークのホワイトペーパーでは、この問題の解決策について説明しています。

…ブロックチェーンを定期的に監視して、相手方が無効化されたコミットメントトランザクションをブロードキャストしたかどうかを確認するか、サードパーティにブロードキャストするように委任する必要があります。 サードパーティは、このサードパーティに違反救済トランザクションを与えるだけで委任できます。 これらのサードパーティに出力にいくらかの料金を与えることにより、カウンターパーティの悪意が発生した場合に、ブロックチェーンがそのようなトランザクションをブロードキャストするのを見るようにインセンティブを与えることができます。 第三者は、相手方が悪意を持って行動している場合にのみ行動を起こすことができるため、この第三者にはチャネルを強制的に閉鎖する権限がありません。

これらのサードパーティはしばしば監視塔と呼ばれ、ユーザーの常時オンラインの負担を取り除く必要があります。

ライトニングネットワークの状態

2019年3月27日現在のビットコインライトニングネットワーク:

  • 7.5千以上のノードがあります
  • ほぼ4万のオープンチャンネルがあります
  • 容量が1,000BTC強

それは次の速度で成長しています:

  • 1時間に25ノード
  • 1時間あたり304チャンネル

PlayストアにあるEclairLightningWalletでさえ、LightningNetworkノードの実装はたくさんあります。 それはまだ実験的で、洗練されておらず、資金を受け取るという重要な特徴が欠けていますが、私の意見では、生態系は小さいですが、健全に成長しています。

仕様と実装

Bitcoin Lightning Network仕様は、Request for Comments(RFC)ステータスであり、Basis of Lightning Technology(BOLTS)と呼ばれる一連のドキュメントで構成されています。 BOLTSは、この出版物の時点で絶えず変化しており、貢献を歓迎します。

ライトニングネットワークノードのBOLT準拠の実装もいくつかあります。

  • LND: Lightning Network Daemonの略で、これは主にGoベースの実装です。
  • Eclair:主にScalaベースの実装。
  • C-lightning:主にCベースの実装。

その他のリソースについては、この記事の結論を参照してください。

ライトニングネットワークの利点と批判

では、ライトニングネットワークで何を達成できるでしょうか。

  • 真のマイクロトランザクション(セントの端数)
  • 考えられる最低料金(セントの端数)
  • ある程度のプライバシー(ブロックチェーンレコードなし)

ただし、前に述べたように、ライトニングネットワークには多くの批判があります。これらのいくつかは有効であり、ライトニングが直面している未解決の課題です。

  • ルーティングと集中化:ライトニングネットワークは、チャネル状態が毎日変化し、開閉し、フォールバックする履歴が一元化されているため、支払いルートを毎回新たに計算する必要があります。 これは、ネットワークが小さい場合に最適ですが、ネットワークが十分に大きくなると、小さなハードウェアで実行されている小さなノードに、ルートを計算するための処理能力がない場合があります。 この問題の解決策は、クエリできる高度な知識を備えた一元化されたスーパーノードである可能性があります。 これについては、ここで詳しく説明します。
  • 融資が多すぎる:この投稿で最もよく説明されているのは、イーサリアムの共同創設者であるVitalik Buterinでさえもチップインしたことです。これは、10ホップのチェーンで10ドルを支払うには、全員が10ドルを前払いする必要があることを意味します。最終的に100ドルの資金を移動します。 ある時点で、大量の移動が不可能になります。 これが現実の世界に当てはまるかどうかはまだ決定されていませんが、それでもこれは説得力のある議論です。

批判を逃しましたか? 以下のコメントで教えてください。

さらなる読み物とリソース

ライトニングネットワークが実際に何であるかを最終的に理解していただければ幸いです。 そのすべての下で、それは暗号トークンの交換に基づいた単なるメッセージングシステムです。 まだ完璧でも広く使用できるわけでもありませんが、それが印象的なエンジニアリングではないという意味ではありません。

オリジナルのビットコインライトニングネットワークのホワイトペーパーを読むことをお勧めします。 さらに読み物やアプリケーション、本、論文のリストをお勧めすることもできますが、GitHubユーザーのBen Congdonはすでに先に進んでいるので、 bcongdon/awesome-lightning-networkをチェックすることをお勧めします。 ベンありがとう! ビットコイン開発者として、あなたはこの新しいテクノロジーについて可能な限り読むことを自分自身に負っています。

情報が多すぎる場合は、楽しいメモでこれを終了しましょう。 これは、ビットコインの古き良き時代について話そうとしているとされるサトシ・クレイグ・ライトの楽しいビデオです。