DNFYO

DNFYO

@DNFYO

チャネル強制閉鎖(Force Closures)の連鎖に関して

以前の記事でチャネル強制閉鎖がなぜ起きるのかについて書きました。その理由は、HTLCのタイムアウトやソフトウェアのバグなどを挙げていました。しかし、メモプール混雑時には強制閉鎖の連鎖が起きてしまうことがあり、その理由を深く考えていませんでした。今回はチャネル強制閉鎖の連鎖に関しての備忘録です。 以下の図を例にFCの連鎖について見てみます。 AがCへ送金をする際、HTLCがAからB、BからCと追加されます。Cがプリイメジを公開すればHTLCが解消されていきますが、ここでCがオフラインになりました。そのため、B→CのHTLCが解決できずにいます。ここでブロック高が100ブロックに到達しました。HTLCに設定されていたタイムアウトを過ぎたので、HTLCをオンチェーンで解決させるためにB-C間のチャネルを閉鎖します。この時ブロックチェーンに送信されるのがcommitment_txで、このトランザクションのアウトプットにHTLCが構成されていることになります。このHTLCはOffered_htlcと呼ばれるもので、このアウトプットを回収するには、①プリイメジをCが公開するか、②タイムアウトを過ぎればBが回収できます(Offered_htlcなどの構成関係はこちら)。すでにブロック高はタイムアウトである100ブロックに到達しているので、②の条件でBが回収可能になっています。そこでBは事前に署名済みのHTLC_timeout_txを送信します。このトランザクションが承認されれば、A-B間のHTLCをLN上でキャンセルすることができます。もしHTLC_timeout_txが未承認のままA-B間のHTLCをキャンセルしてしまうと、Bが損失を被る場合があります。それは、Cがオンラインに戻り、①のプリイメジを公開して資金を回収してしまう場合です。すでにBによって②のHTLC_timeout_txは送信されていますが、それでもCは手数料を高くするRBFを使い①の条件でHTLCの資金を奪い取ることは可能です。よって、BはHTLC_timeout_txが承認されるまではA-B間のHTLCをキャンセルすることができません。 ここで、もしそのHTLCtimeouttxが未承認のまま、ブロック高が140ブロックに到達してしまうと、この度はAがA-B間のHTLCをオンチェーンで解決させるために、A-B間のチャネルを閉鎖します。これがいわゆるチャネル強制

Popular stories

1ヶ月でルーティングフィーが100倍くらいになりました

845

rebalance-lnd: リバランス作業で楽しよう

480

bos telegram: スマホでルーティング状況を確認

346

Archives

2023-05
1posts
2022-02
1posts
2021-10
2posts
2021-09
2posts
2021-08
3posts