ビットコインブロックチェーン上でアドオンを起動する方法

ライトニングネットワーク(LN)は、おそらくビットコインブロックチェーンで最も期待される革新の1つです。 このアイデアは、約2年前にJoseph PoonとTadge Dryjaによって最初に提案されました。 Lightning Networkは、ブロックチェーンの上に展開された支払いチャネルネットワークで実行されているユーザー間の無制限の数のトランザクションをサポートすることを約束します。 この場合、システムはビットコインブロックチェーンの信頼性を継承します。



Lightning Labs、Blockstream、ACINQ、Bitfuryなど、いくつかの企業が一度にLNプロトコルの実装に取り​​組んでいます。 このテクノロジーにより、ビットコインを使用したマイクロペイメントの生成が可能になり、暗号通貨の機能と範囲が大幅に拡大します。 この記事では、Lightning Networkのコンセプトの基礎と、このネットワークの仕組みについて説明します。



/ image イライア・マルティネス CC



Lightning Networkは、ブロックチェーン上の各トランザクションを記録せずに、無制限の数のトランザクションを作成できる双方向の支払いチャネルのネットワークです。 ネットワークは、メッシュネットワークの原則に従って構築されています。つまり、分散型で分散されています。



これにより、トランザクションの検閲やユーザープライバシーの侵害、トランザクション処理市場の独占、単一障害点の回避の脅威が排除されます。 システムのセキュリティは、ビットコインの組み込みスクリプトを使用して実装されるハッシュおよび一時的なブロックコントラクトによって保証されます。



支払いチャネルの概念は、Lightning Networkの登場前に導入されました。 従来の支払いチャネルは、特定の範囲のタスクを実行するのに役立ちますが、制限があります-一方向です。 この場合、1人のユーザーが別のユーザーにビットコインを送信できますが、逆の操作を実行するには、新しいチャネルを形成する必要があります。 したがって、PoonとDryaは、信頼できない双方向の支払いチャネルの導入を提案しました。









高レベルのLightningネットワーク図



その結果、2人のユーザーは、制限なしで支払いチャネル内でトランザクションを実行できます。 この方法で送金された資金は、最後の(クロージング)トランザクションが送信され、ビットコインブロックチェーンに書き込まれた瞬間に「本物」になります。 これがどのように機能するかを詳しく見てみましょう。



双方向チャネルの確立



双方向の支払いチャネルを設定するには 、2人の参加者が資金調達トランザクションを定義します。つまり、特定の額の資金を2-of-2マルチシグアドレスに預けます。 このアドレスのビットコインは、両方のチャネル作成者(アリスとボブと呼びます)がプライベートキーでトランザクションに署名する場合にのみ使用できます(他のビットコインアドレスに送信されます)。 支払いチャネルの各参加者には、1つの秘密キーがあります。 さらに、参加者はシークレット(ランダムなビットシーケンス)を生成し、ハッシュを交換します。



その後、Aliceは開始トランザクションに基づいて、いわゆるコミットメントトランザクションを形成します。 ブロックチェーンで公開されているこのトランザクションは、チャネルで利用可能なビットコインの数をAliceが制御するアドレスに送信し、残りを別のマルチシグアドレスに送信します。 この2番目のアドレスは、Bobによってロックを解除できますが、ブロックチェーンに到着したのは1,000ブロック後です。 一般に、1000ブロックの遅延は、チャネルが開かれたときに設定されるパラメーターです。



また、Alisaはこのアドレスのビットコインをロック解除できますが、チャネルを確立したときにボブがハッシュを送信した場合にのみ、彼女は秘密を作成します(彼女は秘密を知らないため、ビットコインをすぐにロック解除できません)。 その後、アリスはコミットメントトランザクションに署名しますが、ブロックチェーンではなく、直接ボブに送信します。 このトランザクションにより、ボブはブロックチェーン上でチャンネルを公開することでいつでもチャネルを閉じることができ、アリスはすぐにお金を受け取ることになり、ボブは1000ブロックの遅延でビットコインを引き出すことができます。 次に、ボブは同じ、しかし対称的なトランザクションを作成し、署名してアリスに送信します。



半正しいトランザクションを交換した後、アリスとボブは署名し、基になるトランザクションをブロックチェーンに送信します。 この後、双方向チャネルが開いていると考えられています。 これで、アリスとボブの両方が、支払いチャネル内で何度でも直接お金を送ることができます。 同時に、アリスとボブは、チャネル内の更新された資金分配と新しい秘密(彼らは再び署名して相互に転送する)を使用して、新しいコミットメントトランザクションを行う必要があります。



ただし、現在は両方の参加者が最後の操作からの秘密を明らかにしています。 これにより、既に送信されたビットコインを受信するために、以前のトランザクションをブロックチェーンに送信する機会が奪われます:たとえば、アリスがボブからネットワークに古いコミットメントを送信しようとすると、ボブは確立されたチャネルからすべてのビットコインを収集できます。 これは、アリスとボブが規則を順守し、関連するトランザクションのみをネットワークにブロードキャストすることに経済的に関心があることを意味します。



アリスとボブが相互の合意によってチャネルを閉じたい場合、彼らは単純に、トランザクションを開いた後に発生したすべてをオーバーライドするトランザクションを作成できます。 署名されて送信された後、チャネルは閉じられていると見なされます。 したがって、アリスとボブの間で何百万もの支払いが行われたとしても、開始と終了のトランザクションのみがビットコインネットワークに転送されます。 この機能により、ブロックチェーンを大幅にアンロードできます。



ネットワーキングと三国間交換



双方向チャネルの参加者の1人がビットコインを第三者に転送したい場合、彼は「パートナー」をトランザクションの保証人として使用できます(後者が既に第三者との支払いチャネルを確立している場合)。 アリスが1つのビットコインを第三者に転送したいとしましょう、とカルロスは言います。 彼女はこのビットコインをボブに送信できます。その後、ボブはそれを仲介者としてカルロスに送信します。



このようなトランザクションの誠実さとセキュリティは、暗号技術を使用して実現されます。 アリスはカルロスにシークレットを生成してハッシュを送信し、ボブのチャンネルからのビットコインとシークレットを交換するように依頼します。 その後、カルロスから受け取ったシークレットを提供するとき、彼女はビットコインをボブに返します(アリスのハッシュは既知であり、シークレットの信authentic性を簡単に確認できます)。 同時に、ボブは支払いを行うための手数料として、事前に交渉されたビットコインの小さな部分を保持できます。



このシナリオでは、メディエーター(ボブ)はカルロスとアリスを信頼するべきではありません。 セキュリティを確保するために、いわゆるハッシュおよび一時ブロック(HTLC)コントラクトが使用されます。 Alice-BobチャネルでHTLCを作成すると、ビットコインはマルチ署名付きの新しいアドレスに送信されます。これは、2つの方法でロック解除できます。Bobはアドレスとシークレットを示すか、Aliceは署名のみを示す-ただし、後者の場合、 CLTVブロックは機能します:Aliceはトランザクションを送信できます特定の(長い)時間後にのみネットワーク。 この間、Bobは、ブロックされた資金を受け取るために、署名と値を使用してトランザクションを作成する時間が必要です。 したがって、ボブはカルロスにお金を渡すとすぐに秘密を見つけます。つまり、アリスと一緒にチャンネルからお金を引き出すことができることが保証されます。 この考え方は、複数の仲介者の数に一般化されています。



Lightningネットワークでのルーティング



既に述べたように、Lightning Networkテクノロジーは、ビットコインネットワークの帯域幅を増やすための最良のソリューションの1つと考えられており、ブロックチェーン外のほとんどのトランザクションを実行する方法を提供します。 LNの特徴的な機能の1つは、ユーザー間の一連の支払いチャネルを通じて、ネットワークメンバーに支払いを送信できることです。 このため、ネットワーク参加者は、支払いチャネルのないネットワークメンバーと取引を行う必要があるたびに、新しい支払いチャネルを作成できません。 ただし、受信者から送信者への支払いチャネルのルートを構築するのはかなり難しいタスクです-ビットコインを送信者から受信者に「導く」ことができる最適なパスを選択する必要があります(たとえば、時間やコストなどのさまざまな基準に従って)。



ビットコインコミュニティは、LNのいくつかのルーティングアルゴリズムを提案しています。 最初の決定の1つは、ノードを2つのクラスに分割するという提案でした。ウォレットノードと、サービスに対する報酬を受け取るルーティングノード(ハブ)です。 前者は支払いしかできず、後者は支払いをリダイレクトできました。 すべてのハブの知識により、任意のノードへのルートを正確に構築できるため、このスキームは非常に効果的であることが証明されています。 同時に、このアプローチは、ビットコインネットワークの原則の1つである分散化の概念にとって有害で​​した。



したがって、別のアイデアが提案されました。 いくつかのノードが毎日、ランダムに「ビーコン」のステータスを受け取りました。 すべてのノードは、これらの灯台への道順を取得し、組み込みの「パス」を使用して支払いを送信しようとしました。 このスキームは、以前のものよりも分散化されていることが判明しましたが、シビル攻撃に対して開かれています(灯台の状態にあることがノードにとって有益であるため)。 さらに、灯台群の変更後、ほとんどの構築ルートは役に立たなくなりました。



そのため、BitfuryはFlareと呼ばれるルーティングアルゴリズムの新しい(ハイブリッド)バージョンを提案しました 。 アルゴリズムは2つのステージで構成されます。 1つ目は、既存のチャネルのサブセットのプロアクティブな更新で、一般的なネットワークトポロジに関する情報を保存します。 2番目の段階は、特定の受信者へのパスを検索する要求に基づくリアクティブルートの構築、およびLNネットワークに関する動的情報の収集(料金のサイズ、ノードの信頼性、遅延時間など)です。









フレアルーティングアルゴリズム図



プロアクティブな段階で収集される情報には、最も近いノードのチャネル(環境)と、遠くにあるランダムに選択されたノード(パーソナルビーコン)へのパスが含まれます。 支払いチャネルの存在は、ビットコインのブロックチェーン情報とチャネル参加者から提供されたデータを使用して検証されます。



各ノードは、ルーティングテーブルに定期的に入力することにより、ネットワーク情報を更新します。 ノードは、LNを使用してビットコインを送信することを決定すると、自身のルーティングテーブルと、アドレス空間で受信者に最も近い最近隣のテーブルをスキャンして、ネットワーク上の可能なルートを見つけます。 この表は、開いているチャネルのサブシステムを定義し、資金の受取人を見つけるのに役立ちます(または、見つからなかった場合、これで「助ける」ことができるビーコンを決定します)。



その結果、ノードは自由に、ビーコンノードによって形成されるランダムな「可視領域」を持つネットワーク内のローカル環境のマップを持ちます。 ローカルノードとビーコンノードの組み合わせにより、顧客はルーティングコストを最小限に抑え、ルートを見つける可能性を高めることができます。



この仕様を使用して、ACINQの研究者チームは、2.5千個のAWSノードでアルゴリズム実装およびテストできました 。 確かに、テストされた部分は、Lightningルーティングの2つの段階のうちの最初の段階にすぎませんでした。 ただし、テスト結果によれば、Flareアルゴリズムは、実装の80%の確率で5秒で支払い経路を決定できることを確立できました。 そして、これはすでにLightningネットワークの商業化に向けた非常に良いステップです。



All Articles