
この記事は BFTF Technology Community Alliance からのもので、著者: BFTF Technology Community Alliance、編集者: Fangyuan、許可を得て公開されています。
はじめに: ライトニングネットワークは、ビットコインネットワークの輻輳問題を解決するために提案されたビットコインネットワークの改良方式です。ライトニングネットワークの本質は、ビットコインネットワークを決済ネットワークとして利用することであり、2つのノード間にチャネルが確立された後は、すべてのトランザクションをオフチェーンで完了できます。この記事の著者はライトニング ネットワークについて包括的に紹介しており、ブロックチェーン実務者が読むのに非常に適しています。
ビットコインを使用したことがある方なら、おそらく最大 1 時間 (最悪の場合は 1 日) のトランザクション (確認) 時間を経験したことがあるでしょう。トランザクション量が多い時には、ビットコイン ネットワークにはかつて 150,000 を超える未検証トランザクションのバックログがありましたが、現在ではそれが標準になっています。このような長いトランザクション確認時間と高い手数料の組み合わせにより、マイクロペイメントのシナリオでビットコインを使用することが困難になります(たとえば、正午の食事に 30 元を費やした場合、マイナーがトランザクションをパッケージ化するために必要な手数料はこれよりもはるかに高くなる可能性があります)番号)。
Lightning Network はこの問題の解決に役立ちます。ライトニング ネットワークは、2015 年にライトニング ネットワークに関するホワイト ペーパーを提出した Thaddeus Dryja 氏と Joseph Poon 氏の発案です。長い論文を読むことに興味がない場合は、この記事でライトニングネットワークの原理とプロセスを簡単に紹介します。
ライトニングネットワークとは何ですか?
基本的に、ライトニング ネットワークは、ビットコイン ユーザーがビットコイン ブロックチェーンから金銭的価値を交換するための方法です。これは、ビットコイン ブロックチェーンと対話するいくつかの複雑なスクリプトを通じて実現され、少額のトランザクションの迅速な支払い (および低いトランザクション手数料) が可能になります。ライトニング ネットワークは、ビットコインが将来的に実行可能な支払い方法となる場合、ビットコイン ブロックチェーンのスケーラビリティを向上させるために必要なツールです。この実践は、クロスチェーントランザクションに拡張できます。このような価値の交換は、2 つの異なる通貨/ブロックチェーン間で行われることを除けば、実際には同様です。ここではアトミック スワップについて詳しく説明します。
ライトニングネットワークの役割と紹介はここまでで、次はライトニングネットワークの詳細を紹介する段階に入ります。
ライトニングネットワークはどのように機能しますか?
オープンな双方向支払いチャネル
ライトニングネットワークを使用したい場合は、支払いチャネルを設定する必要があります。支払いチャネルは、ライトニング ネットワーク全体で価値を転送するためのトランザクション経路です。支払いチャネルを開くには、ビットコイン ブロックチェーン上に新しいトランザクションを作成する必要があります。
「それなのに、これはすべてオフチェーンで起こったとあなたは言ったと思いますか?」 心配しないでください、ライトニングネットワークはオフチェーンですが、最初にトランザクションを行っていることをビットコインネットワークに知らせる必要があります。これが完了すると、取引の両当事者がチャネル上の貸借対照表を保持します。資金が移動されるたびに、トランザクションと更新された口座残高がこの台帳に記録され、チャネルで支払いを行った後、最終結果をブロックチェーンにブロードキャストできます。
マルチシグウォレット
それでは、支払いチャネルがオフチェーンで行われる場合、資金はどこでどのように管理され、ビットコインブロックチェーンにどのように記録されるのでしょうか?支払いチャネルを使用するには、双方がマルチシグ ウォレット アドレスに資金を送信する必要があります。
モリーとスティーブがスーパーボウルの結果に賭けたとします。彼らはそれぞれ 1 BTC を賭け、相手が自分のトランザクションを保持していることを確認したいため、マルチシグ ウォレットに資金を預けます。マルチシグネチャウォレットは預金金庫のように機能し、取引の秘密鍵のセットにより、どちらの当事者も資金にアクセスできるようになります。資金は次の場合までウォレットにロックされたままになります。
モリーとスティーブは両方とも最終契約に署名した
一方の当事者が最終取引を完了する、または
制限時間が経過すると、トランザクションは自動的に送信されます。これが起こると、資金は両当事者の個人ウォレットに戻されます。
マルチシグ ウォレットを正常にセットアップするために、モリーとスティーブは両方とも値 (本質的にはトランザクションのロックを解除するキー) を作成し、それを使用してハッシュを作成し、相互に送信します。これらをマスターすることは、後でコミットメント トランザクションがどのように機能するかを理解するために重要です。
モリーとスティーブがそれぞれの資金をマルチシグ ウォレットに入金すると、いわゆる支払いチャネルを作成し、それをビットコイン ブロックチェーンにブロードキャストできます。ブロードキャストが完了すると、資金は一連のコミットメント トランザクションを使用して管理されます。
コミットメントトランザクションによる送金
最終的に、モリーが賭けに勝ち、0.5 ビットコインを獲得しました。この富の送金を開始するために、モリーとスティーブの両方がコミットメント トランザクションに署名して、支払いチャネルのそれぞれの残高を更新します。コミットメントトランザクションは、相互の合意に従って 2 人の参加者の間で資金を分配します。本質的に、これらのトランザクションは IOU のようなもので、支払いチャネルが閉じられると実際に支払われます (ビットコイン ブロックチェーン上で参照されます)。
たとえば、モリーは自分自身に 1.5 BTC を送信し、新しいマルチシグ アドレスに 0.5 BTC を送信するトランザクションに署名します。次に、彼女はこのトランザクションに署名し、そのハッシュを Steve に送信します。次に、スティーブはモリーズと同様のコミットメントトランザクションに署名しましたが、0.5 BTC を自分に送信し、1.5 BTC を別のマルチシグアドレスに送信した点が異なります。次に、トランザクションに署名し、このトランザクションのハッシュを Molly に送信します。
a) 元のマルチシグ ウォレットの 2BTC、b) マルチシグ ウォレットの 0.5 BTC、Steve に支払われ、c) マルチシグ ウォレットの 1.5 BTC を Molly に支払います。実際、いずれかの当事者がそれぞれのトランザクション ハッシュを送信すると、支払いチャネルの貸借対照表が更新されます。このようにして、ビットコインブロックチェーンを使用せずにトランザクションが行われます。
ウォレット内のお金は、次の 3 つの条件下でのみロックを解除できます。
ロックタイムが終了しました
いずれかの当事者が、値 (キー) を介して設定したマルチシグ ウォレットから資金のロックを解除するか、または
双方が一緒に取引に署名します。
当事者が支払いチャネルを閉じて取引に個別に署名することを決定した場合、資金を受け取るには、取引の署名時に設定された所定の時間(契約で指定)まで待たなければならないことに注意してください。言い過ぎに聞こえるかもしれませんが、不正行為はこのような方法で防止する必要があります。
定期支払い/更新チャネル
モリーとスティーブがチャンネルを更新し続けたい、または複数の交換をしたい場合はどうすればよいでしょうか?
スティーブがヘアカットなどの定期的なサービスの対価をモリーに支払っているとします。 Steve はマルチシグ ウォレットに 0.2 BTC を入金し、ヘアカットのたびに Molly へのコミットメント トランザクションに署名し、新しいマルチシグ アドレスに 0.001 BTC を送信します。これを行うには、ブロックチェーン上で新しいトランザクションを開くという、私たちが行ったことを繰り返す必要があります。
したがって、定期的な支払いを処理するには、マルチシグ アドレスのアカウント残高を毎回更新する必要があります。そのために、スティーブは髪を切るたびに、設定したマルチシグウォレットに新しい金額を入れてモリーに支払います。しかし、そうすることで、この新しいトランザクションの新しい値と新しいハッシュを作成しました。 Molly も同じことを行い、2 者が新しいハッシュを交換するときに、前のトランザクションの古い値も交換します (前回はハッシュを交換する代わりに、古いトランザクションのハッシュが交換されたことに注意してください)。
これにより、どちらの当事者も他方を騙すことができなくなります。スティーブが、支払いチャネルが閉じているときに古いトランザクションをブロードキャストしてモリーをだまそうとすると、彼は問題を抱えます。
たとえば、スティーブがチャネルを閉じるときに元の状態をブロードキャストした場合、元のトランザクション (モリーとスティーブにそれぞれ 1 BTC) に署名したことになります。モリーは前の取引の鍵を持っているので、スティーブを罰することができます。さらに重要なことは、スティーブはお金を受け取るために施錠時間まで待たなければならないのに対し、モリーはすぐにお金を受け取ることができるということです。したがって、スティーブが生データをブロードキャストしたことがわかった場合、彼女は単純にマルチ署名ウォレットに 2 BTC を入れることができます (彼女はこのトランザクションのキーを持っており、したがってその資金のロックを解除できるため)。
したがって、一方の当事者がもう一方の当事者を騙そうとすると、相手方はすべての資金を取得します。このペナルティは、悪意のある者が支払いチャネルからの資金の割り当てを悪用することを阻止することを目的としています。
さらに、そのような不正行為を発見したノードオペレーターとマイナーは、モリーがオンラインでない場合に彼女に代わって行動することができます。その代償として、彼らは一定の報奨金を受け取ります。
支払いチャネルを閉じる
モリーとスティーブがチャネルを閉じる準備ができたら、秘密鍵を使用してトランザクションに署名し、最終的な口座残高をブロックチェーンにブロードキャストするだけです。この時点で、マイナーはそれを検証してブロックチェーンに保存します。チャネル開始トランザクションと同様に、このチャネル終了トランザクションもビットコイン ブロックチェーンと対話する必要があります。
あるいは、当事者は契約期間の有効期限を設定することもできます。たとえば、nLockTime アルゴリズムを使用すると、支払いチャネルが 30 日間オープンし、その後チャネルが閉じられ、最終残高がブロックチェーンにブロードキャストされることを保証できます。ただし、当事者が残高を更新したい場合は常に、期限が短縮されます。したがって、モリーとスティーブがシーズン中に複数のフットボールの試合に賭けた場合、賭けが行われるたびに、nLockTime 契約の有効期限が新しく短縮されます (たとえば、最初にコミットされた取引が 30 日以内に完了する場合、2 番目の取引は29 日目に期限切れになり、3 番目のトランザクションは 28 日目に期限切れになる、というようになります)。
nLockTime 契約の目的は単純です。口座残高を最新の状態に保ち、一方の当事者による請求書の偽造を防止します。前に説明したように、コミットメントトランザクションが合意されるたびに、古いアカウント残高が新しいアカウント残高と交換され、各当事者はこの新しい残高を古い秘密キーとともに記録します。いずれかの当事者が他方の当事者を騙そうとした場合、詐欺を行った当事者は罰せられます。
マルチチャネル決済とHTLC
「モリーとスティーブが互いにビットコインを送りたいが、両者の間に開いている支払いチャネルがない場合はどうなるでしょうか?」仲介者を経由することができます。
モリーとスティーブの両方がチャックとの支払いチャネルをオープンしていることが判明したため、新しいチャネルを開く必要はなく、チャックを通じて取引できます。
さて、これは理論的には信頼できるトランザクションですが、秘訣は安全な方法で実行することです。この目的を達成するために、ライトニング ネットワークはハッシュ タイム ロック コントラクト (HTLC) を実装します。
モリーはスティーブに 0.5 BTC を支払いたいと考えています。これを行うには、Steve は値 (基本的には確認コードまたはキー) を作成する必要があります。次に、この値のハッシュを作成し、Molly に送信します。この図を簡略化するために、値には V、ハッシュには H を使用します。
モリーは H を取得すると、それをチャックと共有します。チャックが V を明らかにした場合、モリーはチャックに 0.5 BTC を送信します。 V を取得するために、チャックは V と引き換えにスティーブ 0.5 の自分の BTC を送信します。この値を取得したら、V を Molly に送信し、0.5BTC を受け取ります。これにより、実質的に 0.5 BTC が Molly から Steve に転送されます。
具体的なプロセスは次のとおりです。
スティーブが V と H を作成 → スティーブがモリーに H を送信 → モリーがチャックに H を送信 → チャックがスティーブに BTC を送信 → スティーブがチャックに V を送信 → チャックがモリーに V を送信 → モリーがチャックに BTC を送信
したがって、値 (V) は、トランザクションの受信/ロックを示すハッシュ (H) の確認コード/キーとして使用されます。
「しかし、モリーはチャックが彼女にくれたVが合法であることをどうやって知るのでしょう。チャンクがお金を払った後にスティーブが逃げたらどうなるでしょうか?」
nLockTime が双方向の支払いチャネルで全員に正直であることを義務付けるのと同じように、ハッシュ化されたタイムロック契約により、すべての当事者がそれに対する責任を負います。
HTLC では、取引されるビットコイン資金は再びマルチシグ ウォレットにロックされ、a) または b) タイムアウト期間後に契約が期限切れになる、値 (V) とハッシュ (H) が提供された後にのみロックを解除できます。
実際には、これは、モリーとチャックがスティーブに支払うことで合意に達したとき、モリーは HTLC を使用して、チャックに借りているビットコインをマルチシグ ウォレットにロックすることを意味します。チャックがスティーブに支払い、V を受け取ったら、HTLC に V と H を入力して、モリーからビットコインを受け取ることができます。あるいは、チャックが取引を完了できず、1週間後に契約が期限切れになった場合、モリーのビットコインは解放され、彼女のプライベートウォレットに再入力されます。
チャックとスティーブ自身の支払いチャネルでも同じことが起こります。チャックは、スティーブが V を明らかにするまで、自分のビットコインをスティーブに渡すことができません。スティーブが V を明らかにすると、チャックはモリーから資金にアクセスできるようになり、スティーブはチャックの BTC を受け取ります。
理論的には、このプロセスは複数の支払いチャネルと複数の人で実行できます。
概要: ライトニング ネットワークが重要な理由
それは複雑なテーマであり、簡単な言葉で説明するのは難しいですが、これを読むことは真実の愛です。
概要: ライトニング ネットワークは、すべてのトランザクションをオンチェーンに記録することなく、個人がビットコインを複数回交換できるようにするオフチェーン システムです。ブロックチェーンには 2 つのトランザクション (および開始と終了) のみが記録され、他のすべてのトランザクション (できるだけ多く) はオフライン ノードを通じて処理されます。
このモデルにはいくつかの大きな利点があります。
効率的なマイクロペイメント: ライトニング ネットワークはマイクロペイメントを対象としています。ライトニング ネットワークを使用すると、転送価値を超える法外な手数料を支払う代わりに、ユーザーがビットコイン ネットワークを直接経由せずに少額の通貨を相互に送金できるようになります。依然としてノードの運用に料金を支払う必要がありますが、これはビットコインのネットワーク料金に比べれば微々たるものです。
スケーラビリティとレイテンシの解決策: これまでの議論と一致して、ライトニング ネットワークはビットコイン ネットワークの肥大化を軽減します。オンチェーントランザクションの数が減るということは、マイナーの仕事が減ることを意味し、その結果、トランザクション時間が短縮され、手数料が削減されることになります。すべてのトランザクションをブロックチェーンの公開台帳に登録する必要がなければ、ネットワークはよりスムーズに動作するでしょう。さらに、ライトニングネットワークトランザクションはオンチェーントランザクションよりもはるかに高速になります。
現在、ライトニング ネットワークはビットコイン、ライトコイン、およびバートコインをサポートしています。 Lightning Network はまだベータ版であり、この記事の公開時点ではメインネットの起動は確認されていません。