LN↔レイヤー1で取引を行うサブマリンスワップの特徴と可能性
ライトニングを使った送金には通常のもの以外に、受け取りを意図的に遅らせるHodl Invoiceやノードの公開鍵に送りつけるKeysend、金額を自由に書き込める0-value Invoicesなど、様々な工夫が施されたものがあります。その中でも私がポテンシャルが高いと感じるものの1つがサブマリンスワップです。バリバリ現役で使われているサブマリンスワップというライトニングとオンチェーンの間で取引する手法について、その特徴と活用方法について解説したいと思います。
サブマリンスワップとは
アトミックスワップという用語を聞いたことがある方も多いと思います。アトミックスワップというのは、主に異なるブロックチェーン間で、第三者を介さずにトラストレスにコインを交換する仕組みで、片方が資金を受け取るともう片方も資金を受け取ることができるようなスマートコントラクトを記述することで実現できます。アトミックスワップを活用した分散型取引所(DEX)なども複数存在します。
サブマリンスワップは、レイヤー1とレイヤー2間で行うアトミックスワップのことで、これも必ずしも同じチェーンで行う必要はありません。例えば、LN上のビットコイン⇔ビットコイン、LN上のビットコイン⇔イーサ、といった交換をサブマリンスワップで行うことができます。
仕組みは比較的単純で、レイヤー1の資産を持っている側がライトニングのインボイスを発行し、ライトニング上のビットコインを持っている側はそのインボイスを支払ったときに受け取るプレイメージと自身の秘密鍵を使えば移動できるアドレスを作成します。前者が先にそのアドレスに入金したあと、インボイスが支払われると、その証明として受け取ったプレイメージを利用して後者がレイヤー1の資産を回収できる、というものです。
ところで、アトミックスワップもサブマリンスワップも、どちらかが資金を先にコミットしてからレートが大きく動いた場合、後からコミットする側が取引を放棄する可能性があります。このとき、時間切れによって前者の資金は戻りますが、前者にトランザクション手数料がかかります。一方で資金を後にコミットする方は無料で取引を放棄できるため、ここに「コールオプション問題」とよく呼ばれる未解決の問題が発生します。個別の取引を見ると、理論上は後からコミットする側が有利なレートでしか約定しないのです。
仕組み上、特にサブマリンスワップはLN上のビットコインを受け取りたい側が先に資金をオンチェーンでコミットするので、必ずLN上のビットコインを最初に持っている側がコールオプションを得てしまいます。なので、異なる通貨間のクロスチェーン・サブマリンスワップはオンチェーンで支払う側が不利になります。(ただし相手が事業者などであれば、長期的に見て信用を毀損することはしないでしょう。)
活用例
では、サブマリンスワップはどういう場面で活用されているでしょうか?まず、Redshiftやsubmarineswaps.orgのようなトラストレスな両替所がBTC→BTC(LN)、ETH→BTC(LN)などのペアにおいてサブマリンスワップを活用した両替サービスを提供しています。LN払いを受け取った人から提供されるプレイメージがなければ代金を受け取ることができないため、これらのサービスがユーザーの資金を持ち逃げすることはできません。
ただし、UIやアカウントが必要ない点がよく似ているZigZagやFixedfloatなどのように、同じペアを提供していてもトラストレスではない普通の両替所もあるので要注意です。
次に、ライトニングウォレットのオンチェーン対応に使われている例としてBreezというライトニングウォレットがあります。彼らはライトニングウォレットでありながらUXをシンプルにするため、「ビットコインアドレスに支払う」「ビットコインアドレスから受け取る」という選択肢をサブマリンスワップを利用して提供しています。ノンカストディアルでありながら、ビットコインウォレットの存在をユーザーに意識させないための設計です。
応用例
他にも応用例として、イーサリアム上のERCトークン、特にトークン化されたBTCとLNの間の行き来に活用しようというものもあります。ちょうど今日見つけたtbtcswapsというプロジェクトもその1つです。
tBTCというのはイーサリアム上にトークン化されたビットコインの一種で、トラストレス性を強調するものですが、その内容については複雑な上に詳しくないので今回は触れません。(数ヶ月前に脆弱性が見つかったため、一度停止していたのが最近再開されました。)
tbtcswapsは、LNとtBTC間でサブマリンスワップを提供できたら、tBTCでライトニングインボイスを支払えたり、逆にライトニングを使ってtBTCを購入できるようになる、というものです。画期的な点は、サブマリンスワップの対象がBTCトークンであることです。(なにより、一番トラストレスなBTCトークンだと主張されています。)
ただし、双方向にスワップできる設計上の課題として「LN→tBTCにおいてあえてLN側が取引をキャンセルし、tBTC側に手数料を浪費させる」Griefing Attack (イタズラ)を危惧しており、その対策としてLN→tBTCの交換をしたい側にETHの預託を義務付けるというUX上の悪手を取ってしまっています。
その後tBTCを回収する手数料として結局少しはETHが必要にはなりますが、既にETHを持っているならtBTCもイーサリアム上で手に入るのではないか?という疑問が生まれます。Defiでの利用を念頭においた多額の交換ならなおさら、正規の手段で発行するか、ETHと交換するほうが安上がりになると考えられます。
ちなみにRedshiftはETH→LNのみを取り扱うので、Griefing Attackによるイタズラ問題には直面しません。(RedshiftがLN側で有利なため)
上記のことから、tBTC→LNはまだしも、LN→tBTCの必要性は正直小さいように感じます。同様の理由で、トークン化されたBTCやステーブルコインを含む各種トークンとLNの間でのサブマリンスワップが提供されるとして、現実的には「トークン→LN」のサービスのみが提供されるのが合理的かと思います。一般的なトークンは手数料次第で売却やヘッジが難しくなるので、特にステーブルコインやトークン化されたBTCが主になると思います。もちろん、LNを使った支払手段が増えることは歓迎すべきですね!
まとめ
サブマリンスワップに関して、簡単に仕組みと現在の使用例を見ていきました。サブマリンスワップを提供しているサービスはまだ少ないですが、ライトニングアプリなどでサブマリンスワップを活用した新しいスキームなどが出てくることに期待しています。
また、最近イーサリアム上のレイヤー2の開発が盛んですが、もしイーサリアムのレイヤー2などである程度広く支払いに使われるステーブルコインやトークン化BTCがあれば、そことLNをつなぐプロダクトも出てくるかもしれません。それはレイヤー2⇔レイヤー2なのでサブマリンスワップではないですし、紹介したtbtcswapとも無関係ですが。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション