Submarine Swap
Lightning上のbitcoinを、安く販売できないか、という疑問が湧いてきた。
一度のTX手数料は金額の大きさには依存しないので、理論的には可能なはず、、という思いがあり、その周辺の知識を集めてみる。
とりあえず画面はこんな感じ
Submarine Swap
Submarine swaps exchange off-chain Lightning tokens for on-chain tokens, using a simple HTLC to help with atomicity.
オンチェーンとオフチェーンの資金交換か。tokenとはあるものの、今回はBTC、LTCに絞って考えていこう。 オンチェーンにあるLTCをオフチェーンのBTCと交換できるようになる、が基本。
フローは、
- インボイス作成
- インボイスを元にLTCのコントラクトアドレス作成
- LTC入金
- Lightning pay
- LTC取り出し
となる。 この考え方は、atomic swapsの応用だ。
Lightning labsの昔のblogも参考になりそう。
だからLTCのコントラクトのイメージは下記となる。
if(hash(preimage) == invoiceId){
checkSig(presentedSig, sendtoPubkey)
}else if(height > refundHeight){
checkSig(presentedSig, refundPubkey)
}
これは例えば取引所のノードがlightningに対応していない場合とかも、一段飛ばしでチャージできる可能性を提供する。