[LN#012]Channel Close

Channel Establishで開設したチャネルは、通常、Channel Closeで閉鎖する。
お互いが同意しているので、Mutual Closeと呼んでいる。

 

使用するBOLTメッセージは2種類で、shutdownとclosing_signedである。
前提条件は、HTLCが残っていない(no pending charges)ことである。

まず、どちらかがshutdownメッセージに送金してほしいアドレス(正確にはscriptPubKey)を伝え、それに応じて相手もshutdownメッセージを返す。
後は、チャネル閉鎖時にfunding transactionから送金するトランザクションであるclosing transactionの署名とそのときの手数料をclosing_signedメッセージで交換し合い、相手の提示する手数料に納得したら同じ手数料でclosing_signedを返して終わりとなる。
(この連載中、open_channel/accept_channelメッセージにshutdown_scriptpubkeyが追加されたが、オプションのため今回は除外する。)

以下は、最短で閉じた場合のシーケンスである。

image

 

注意したいのは、一度でも署名を送信していると、そのトランザクションに相手が署名を追加してブロックチェーンに展開することが可能な点である。
自分がclosing_signedを送信した=その手数料で送信しても問題ない、ということになるため、困ることはないと思われるが、最後に交換したclosing_signedで必ずしも展開されるわけではないということは覚えておいた方がよいだろう。