Lightning Network In Depth、パヌト2HTLCず支払いルヌティング

前回の蚘事では、支払いチャネルの䜜業ず、それらを通過する支払いのセキュリティを確保するためのいく぀かの異なる方法に぀いお詳现に説明したしたが、それでもチャンネルの有効なネットワヌクを構築するには十分ではありたせん。正盎なずころ、倚くのチャネルを介したチェヌンを通じた資金の配信を保蚌するこずはできたせん。 ここで、HTLChash-time-lock-contractsず呌ばれるスマヌトコントラクトが圹立ちたす。 この蚘事では、圌らの仕事の原理を分析し、Lightningネットワヌクでどのように支払いが行われるかを瀺したす。







ラむトニングネットワヌク







目次





ハッシュタむムロックコントラクトHTLC



HTLC契玄はシンプルですが、特定の「有効期限」のある支払いを䜜成できる非垞に効果的な蚭蚈です。 おそらく既に掚枬したように、htlcコントラクトは2぀の郚分で構成されたすハッシュチェックず特定の時間の有効期限のチェック。







ハッシュから分析を始めたしょう。 HTLC支払いを䜜成するには、最初に秘密の Rを䜜成し、次にそのハッシュを蚈算する必芁がありたす。 䜕でもシヌクレットずしお機胜できたす-数字たたは単語、いずれの堎合でも、それは単なるバむトのセットです。







H = Hash(R)
      
      





このハッシュHはロックスクリプトに含たれたす。 したがっお、Hによっおハッシュが取埗された秘密を知っおいる人だけが支払いを䜿甚できたす秘密Rはプリむメヌゞずも呌ばれたす。







htlc契玄の2番目の郚分は、支払いブロック時間の有効期限の確認です。 秘密が時間内に明らかにされず、支払いが䜿甚されなかった堎合、送信者はすべおの資金を自分に返すこずができたす。







特定の人を察象ずしたHTLC支払いの䟋を考えおみたしょう。







 # check if secret R is preimage of H HASH160 <H> EQUAL IF # check if person, who revealed secret is intended payee <Payee Public key> CHECKSIG ELSE # check if time-lock is ended <locktime> CHECKLOCKTIMEVERIFY # check that person that requested refund is original payer <Payer Public Key> CHECKSIG ENDIF
      
      





ハッシュHのプロトタむプである正しいシヌクレットRを提䟛する堎合、IFストリヌムに入りたす。そこでさらにチェックが行われたす。シヌクレットRを芋぀けた人が本圓に支払いの察象者であるかどうか。 この支払いを䜿甚するには、受信者はかなり単玔なロック解陀スクリプトを提䟛する必芁がありたす。







 <sig> <secret R>
      
      





提䟛されたシヌクレットRが正しくない堎合、ELSEストリヌムに入り、割り圓おられた時間が経過したかどうかが最初にチェックされ、経過した堎合、支払いを送信するずすべおの資金が返されたす。 ELSEストリヌムに入るために間違ったシヌクレットを明瀺的に指定する必芁があるこずを陀いお、払い戻しのロック解陀スクリプトは同じです。







 <sig> <wrong secret>
      
      





もちろん、これはHTLC契玄の非垞に基本的な実装であり、定期的なタむムロック支払いです。 スクリプトに任意の数の異なる条件を远加できたす。たずえば、IFストリヌムの公開キヌを削陀するこずにより、シヌクレットを知っおいるすべおの人が支払いを利甚できるようにしたり、単䞀の眲名を芁求したり、multisigなどのように耇数の眲名を芁求したりできたす。







Psここでは、 CHECKLOCKTIMEVERIFYオペコヌドを䜿甚したした 。これは、ロック時間を蚭定するために絶察倀を䜿甚したす。たずえば、「この出力は546212のブロックに䜿甚できたせん」。 それに加えお、Lightning Networkは別のより柔軟なオプションCHECKSEQUENCEVERIFYも䜿甚し、ブロック時間を盞察的に蚭定したす。぀たり、このオプションは可胜です。「この出力は、トランザクションがネットワヌクに送信されおから1000ブロックが経過するたで䜿甚できたせん。 」 。







ラむトニングネットワヌクの䟋



最終的にすべおのコンポヌネントを分解したので、党䜓像、぀たりLightningネットワヌクの仕組みを芋おみたしょう。 この䟋では、5人の参加者がいたす。アリス、ボブ、キャロル、ダむアナ、゚リックは、各チャンネルで2぀のビットコむンの残高を持ち、圓事者の1人であるお互いにオヌプンな支払いチャンネルを持っおいたす。 したがっお、チャネルのチェヌンを䜿甚しお、アリスから゚リックぞの支払いを詊みたす。







Lightning Networkを圢成するためにリンクされた䞀連の双方向支払いチャネル







アリスがErica 1ビットコむンを転送したいずしたす。 ただし、ご芧のずおり、これらはチャネルによっお盎接接続されおおらず、新しいチャネルを開くには時間ずお金がかかりたす。 幞いなこずに、アリスはLightningネットワヌクに接続されおおり、䞀連のHTLC契玄を䜿甚しお間接的な支払いを行うこずができたす。 これがどのように起こるかのステップを芋おみたしょう。







Lightning Networkを介した段階的な支払いルヌティング







  1. ゚リックは秘密のRを䜜成し、ハッシュをアリスに枡したす圌は誰にも秘密を芋せたせん。
  2. アリスは、1.003の量で事前に10ブロックのこのロックを䜿甚しおHTLCを䜜成したす。 远加の0.003は、チェヌンに参加した䞭間メンバヌぞの報酬ずしお䜿甚されたす。 したがっお、アリスはHTLCの1.003 BTC残高を次のルヌルでロックしたす。「アリスは、10ブロック以内に秘密の Rを知るずボブ1.003ビットコむンを支払いたす。そうでなければ、資金はアリスに戻りたす。」 チャネルバランスは、コミットトランザクションによっお倉曎され、珟圚、ボブの2 BTC、アリスの0.997、HTLCでロックされた1.003を衚しおいたす。
  3. ボブは、アリスのコミットトランザクションそれらの間のチャネルに送信されたHTLCを手に入れお、圌ずキャロルの間のチャネルに、1.002 BTCの量のHTLCを䜜成し、9ブロック先にロックしたす。 その際、圌はアリスが䜿甚したのず同じハッシュを䜿甚したす。 ボブは、キャロルが送信したHTLCのロックを解陀するためにRの秘密を芋぀ける必芁があるこずを知っおおり、キャロルはすぐに圌を認識したす。぀たり、アリスが送信した1.003 BTCのロックを解陀できたす。 キャロルがRを芋぀けられない堎合、ボブずアリスの資金は、ロックの有効期限が切れた埌、単に圌らに戻りたす。 たた、ボブが送った金額は、受け取った金額よりも0.001少ないこずに泚意しおください。これは、ボブがチェヌンに参加するために取った手数料です。 ボブずキャロルの間のチャネルバランスは、キャロルが2 BTC、ボブが0.998 BTC、HTLCでロックされた1.002 BTCになりたした。
  4. ボブのコミットトランザクションを受け取ったキャロルは、1.001 BTCの量でダむアナずのチャネルにボブが䜿甚するハッシュを䜿甚しおHTLCを䜜成し、8ブロックでブロックされたす。 ダむアナが8ブロックのRシヌクレットを芋぀けおHTLCをアンロックしお1.001 BTCを取埗できる堎合、キャロルはシヌクレットも芋぀けたす。぀たり、ボブから送られた1.002 BTCをアンロックしお0.001 BTCを獲埗できたす。 キャロルずダむアナのチャンネルバランスは珟圚2ダむアナのBTC、キャロルの0.999 BTC、1.001 BTCはHTLCでロックされおいたす。
  5. 最埌に、ダむアナは1 BTCの量で7ブロックのロックでHTLCすべお同じハッシュを䜿甚を圌女のチャネルに送信したす。 珟圚、チャネルのバランスは、Ericが2 BTC、Dianaが1 BTC、HTLCでロックされおいる1 BTCです。
  6. これで、チェヌンの終わりに到達したした。 Ericは、すべおのHTLCコミットトランザクションでハッシュが䜿甚されたシヌクレットRを持っおいるため、Dianaから送信されたHTLCのロックを解陀し、1 BTCを取埗できたす。 ゚リックは、秘密を䜿甚しお資金を受け取るずすぐに、それをダむアナに明らかにしたす。 珟圚、゚リックずダむアナのチャンネルバランスは、゚リックが3 BTC、ダむアナが1 BTCです。
  7. 秘密を受け取ったダむアナは、キャロルによっお送信された1.001 BTCのロックを解陀し、それによっお秘密を圌女に明らかにしたす。 珟圚のチャネルバランスは、ダむアナでは3.001 BTC、キャロルでは0.999 BTCです。
  8. 秘密を受け取ったキャロルは、ボブから送信された1.002 BTCのロックを解陀し、秘密を明らかにしたす。 それらの間のチャネルバランスは、キャロルでは3.002 BTC、ボブでは0.998です。
  9. 最埌のステップで、ボブはシヌクレットを䜿甚しお圌ずアリスの間のチャネルで1.003 BTCをシヌクレットにしたす。 珟圚のチャネルバランスは、ボブが3.003 BTC、アリスが0.997です。


したがっお、アリスは圌らの間に新しいチャンネルを開くこずなく゚リック1 BTCを支払いたした。 チェヌンの参加者は誰もお互いを信頌する矩務がなく、「仲介者」ずしおのサヌビスを提䟛するために、0.001 BTCのコミッションを獲埗したした。 チェヌンの誰かが自分の圹割を果たせなかった堎合、誰も資金を倱うこずはなく、䞀時的にブロックの時点で凍結するだけです。







障害のクリア



この䟋では、すべおが順調に進みたしたが、実際にはすべおがマヌフィヌの法則に埓いたす。䜕かが砎れた堎合はそうなるので、Lightning Networkの「保護」メカニズムの動䜜を分析したしょう。







明らかに、資金が配信されるチェヌンが長いほど、資金が最埌に到達しない可胜性が高くなりたす。䞀郚の参加者はチャネルを閉じるこずができ、䞀郚は単にむンタヌネットを切断できたす。 䜕かがうたくいかなかったむベントには2぀のオプションを怜蚎しおください。







壊れたチャンネル



最初のケヌスでは、資金がチェヌンの最埌に正垞に到達したが、反察の経路シヌクレットがチェヌンの最初に戻る必芁がある堎合で問題が発生したした-参加者の1人が拒吊したか、協力できたせんでした-この䟋では、これはボブです。







ラむトニングネットワヌク。いずれかのチャネルが閉じられたため、資金の配信が倱敗したした。







チェヌンが圌女に届くずすぐに、ダむアナはすぐに秘密を䜿っおお金を取り、同時にそれをキャロルに明らかにしたす。 キャロルもボブからお金を受け取りたいず思っおいたすが、圌は答えないので、リスクを避けるために、チャネルの最埌のコミットトランザクション先にボブが送信したHTLC契玄をブロックチェヌンに送信し、シヌクレットを䜿甚しお資金を受け取りたす。 この堎合、ボブはただ連絡を取っおアリスからお金を集めるために3日間ありたすトランザクションがブロックチェヌンに行ったので、圌はそれを簡単に芋぀けおRを芋るこずができたす、そうでなければ、この期間の埌、圌女はすべおを返すこずができたす自己資金。







ご芧のずおり、この堎合、チェヌンの参加者の1人が䜕らかの理由で倱敗した堎合、圌だけがお金を倱うこずができ、残りはすべお安党です。







再ルヌト



2番目のケヌスでは、参加者の1人が操䜜䞍胜であるために、資金がチェヌンの最埌に達しおいない状況を考慮したす。 今ではキャロルです。







最初の最も明癜な方法は、HTLC契玄のブロック時間が終了するたで埅぀こずです。資金を返しお新しい支払いを送信するこずができたす。







ラむトニングネットワヌク。支払いルヌトのノヌドの1぀が応答したせん。







しかし、アリスが急いでいる堎合はどうでしょうか もちろん、資金が戻っお別のチェヌンで既に1回の支払いを送信するたで埅぀こずはできたせんが、キャロルが突然戻った堎合、圌はボブに連絡しおチェヌンを終了したすか この堎合、アリスは2倍の金額を送りたす。







ラむトニングネットワヌク。アリスは別の支払いルヌトを䜜成したした。







本圓に、操䜜が倱敗するたびに、新しい操䜜を送信する前に埅たなければならないのですか 幞いなこずに、ロックが終了するたで埅たないために、以前の支払いを「リセット」できたす。 これを行うには、Diana資金の受取人は、初回ず同じハッシュを䜿甚しお、盞圓額の支払いをAliceに送信する必芁があり、チェヌンはたったく同じであっおはなりたせん。 今、キャロルが戻っお仕事の圌女の郚分を完了するず、お金はただ行き来したす。 したがっお、倱敗した支払いはキャンセルされたず芋なされ、別のチェヌンを通じお穏やかに新しい支払いを送信できたす。







ラむトニングネットワヌク。アリスは叀い支払いを「キャンセル」し、新しい支払いをリスクなしで送信できるようになりたした。







支払額



アリスが最初の支払いを「キャンセル」し、新しい支払いを送信できるようになったずしおも、資金がそこで凍結されおいるずいう事実は倉わらず、圌女は操䜜を繰り返すのに十分なお金がないかもしれないので、Lightning Networkに送信するこずをお勧めしたす1぀のHTLCに少量。 コミットトランザクションはブロックチェヌンを「ヒット」しないため、金額を非垞に小さな郚分に分割できたす。 したがっお、チェヌンが機胜しなくなるずすぐに、最埌に送信された支払いのごく䞀郚のみが凍結されたたたになりたす。







転送プロトコル



たた、Lightning Networkの非垞に重芁な特性に蚀及する䟡倀がありたす。支払いチェヌンに関するすべおの情報は完党に匿名です。 これは、チェヌンの各参加者が自分の「サむト」に぀いおのみ知っおいるこずを意味したす。たずえば、キャロルの堎合、支払いはボブからダむアナぞの送金のように芋えたすが、ボブがアリスからお金を受け取ったこず、たたはダむアナがさらに送金する必芁があるこずを知りたせん゚リックぞのお金。







Lightningは、 Sphinxメッセヌゞ暗号化プロトコルを䜿甚しお、そのようなメッセヌゞをパッケヌゞ化したす。 これを䜿甚しお、Aliceはチェヌンの各セクションを暗号化の「レむダヌ」でラップし、チェヌンの最埌から開始したす。 圌女は、公開キヌを䜿甚しお゚リックのメッセヌゞを暗号化したす。 このメッセヌゞは、Dianaのメッセヌゞに含たれおいたす。Dianaのキヌで暗号化され、DianaのメッセヌゞはCarolのメッセヌゞに含たれ、察応するキヌで再び暗号化され、チェヌンの最初たで続きたす。 したがっお、ボブは自分宛おのメッセヌゞの最䞊䜍局のみを埩号化でき、キャロルなどにメッセヌゞを送信したす。各段階で、必芁な情報のみが送信されたす送信する資金の量、手数料の量、ブロック時間など。







たた、メッセヌゞの重みによっおチェヌンの長さを掚枬できないようにするために、20人がチェヌンに参加しおいるように、メッセヌゞのサむズは垞に固定されおいたす。 最埌の参加者を陀く各参加者は、同じサむズのメッセヌゞを芋お、さらに20人の参加者がいるず考えたす。







利点ずナヌスケヌス



もちろん、倚くの人が考えるように、Lightning Networkの利点はビットコむンのスケヌリングだけに限定されたせん。 Lightningが提䟛するいく぀かの機䌚を芋おみたしょう。









おわりに



これで、Lightning Networkの分析を終了したす。 次の蚘事では、HTLCコントラクトを䜿甚しおビットコむンずラむトコむン間のクロスチェヌンアトミックスワップを䜿甚する方法に぀いお説明したす。












All Articles