決済事業者やオンラインストアの対応などにより、ライトニング支払いが利用可能な場面が少しずつ増えてきています。しかし、ライトニングに対応していない決済プラットフォームや取引所などを相手にした送金など、相変わらずオンチェーンでの送金が期待されるユースケースも多いです。
また、ライトニングチャネルの総残高は変えることができませんが、思ったより便利で資金を追加したいという場面もあるかもしれません。この場合、一度チャネルを閉じて再び開けるコストをかけるのは億劫です。
そんなときに、1トランザクションでライトニングチャネルに資金を追加したり、チャネル内の資金をオンチェーン送金に使うSplicingというテクニックがあります。今日はSplicingが何かについて、Peerswapとの違いを含めて説明します。
通常のライトニングチャネルの開閉
稼働中のライトニングチャネルはオンチェーンでは2-of-2マルチシグのUTXOとして表現されています。このUTXOを使用するトランザクションをオフチェーンで更新していくことで多数のトランザクションを1つにまとめるのがライトニングの本質です。
したがって、通常の手順でライトニングチャネルを閉じて再び開設する場合、以下のトランザクションを配信する必要があります:
1.2-of-2 UTXOからチャネルの最終バランスを分配するトランザクション (※協調閉鎖の場合)
2.協調閉鎖トランザクションのoutput(と、資金を追加したい場合は別のoutput)から新たなチャネル(2-of-2マルチシグ)に送金するトランザクション
相手が非協力的な場合はさらにトランザクションが増えますが、その場合はSplicingも不可能なので考慮しないこととします。
そもそも非協力的な相手とのチャネルを持っていても仕方ありません。