用語集 / ライトニングとレイヤー2
サブマリンスワップ
- サブマリンスワップとは?
- サブマリンスワップは、オンチェーンのビットコインをライトニングネットワーク上のビットコインと1回のアトミックな処理で交換するもので、両側で同じペイメントハッシュを使うため、どちらの当事者も資金を持ち逃げすることはできません。
取引の両側は異なるレイヤー上に存在し、そこがこの仕組みの難しさそのものです。スワップは、1つの秘密で両方のレッグを解錠できるようにすることでこれを解決します。オンチェーンのコントラクトとライトニングネットワークの支払いは1つのハッシュに結び付けられているため、両方が成立するか、両方が返金されるかのどちらかになります。Alex Bosworthがこの手法を説明したのは2018年です。
仕組み
サブマリンスワップとは、異なるレイヤー上にある2つのコントラクトを1つの秘密で消費するものです。
オンチェーンのコインを保有していて、ライトニングネットワークの残高が欲しいとします。スワッププロバイダーはランダムなプリイメージを生成してそのハッシュを計算し、そのハッシュに紐付けられたライトニングネットワークのインボイスを発行します。利用者は通常のオンチェーン取引で、プロバイダーがハッシュに一致するプリイメージを明かすことでこれを請求できる、または利用者がタイムロックの期限が切れた後にこれを取り戻せる、というスクリプトに支払います。プロバイダーは利用者の資金の承認を確認すると、オンチェーンでプリイメージを明かして資金を請求し、その同じプリイメージによってライトニングネットワークのインボイスが利用者のウォレットに決済されます。1つの値、2つの決済であり、片方の当事者が両方を保有する隙間はありません。
これを単に便利なだけでなく安全にしているのはタイムロックです。オンチェーンの返金経路はライトニングネットワークのレッグより後に期限が切れる必要があります。そうすることで、プロバイダーが動かなくなった場合でも、オンチェーンの返金を請求できるようになる前に、ライトニングネットワークの支払いはすでに失敗して巻き戻されています。この順序が逆になると、プロバイダーは利用者の返金が消費されるまでプリイメージを保持し、その後でライトニングネットワーク側を決済することができてしまいます。
同じ構成を逆に実行すると、反対の役割を果たします。リバーススワップでは、利用者がライトニングネットワークのインボイスを支払い、プロバイダーがオンチェーンで利用者に支払います。これにより、チャネルを閉じずにチャネルの残高をコールドストレージに変換できます。Lightning Labsは両方向をLoopとしてまとめ、2019年3月20日にアルファ版として公開しました。Loop Outは逆方向であり、受け取るための余地を作るために使われる方向です。
スワップが取り除かないのは、より軽度のカウンターパーティーへのエクスポージャーです。すべての経路がスクリプトによって強制されるか期限切れになるため、資金を盗まれることはありません。しかし遅延は起こり得ます。スワップの途中でプロバイダーがオフラインになると、利用者はタイムロックの期限が切れるまで待つことになり、これはライトニングネットワークのレッグでは数分、オンチェーンのレッグでは数時間になることがあります。
使われる場面
スワップは、名前を一切出さない機能を支える配管のような存在です。
チャネルを開かずに「オンチェーン残高からチャージする」ことを可能にするモバイルウォレットは、通常、内部でサブマリンスワップを実行しています。ライトニングネットワークからハードウェアウォレットのアドレスへワンタップで移せるウォレットは、リバーススワップを実行しています。ノード運営者は、店が夜間預金を利用するようにこれを使い、満杯になったチャネルからオンチェーンの保管へ資金を移し、支払いを受け取る能力を回復します。ツールやドキュメントで最もよく目にする2つの名前はBoltzとLoopです。
使用する前に知っておく価値のあるコストが2つあります。第一に、プロバイダーはオンチェーンのマイニング手数料に加えてサービス手数料を請求し、少額ではマイニング手数料が支配的になります。チェーンが20 sat/vBを要求しているときに50,000サトシをスワップするのは、プロバイダーのレートがどれほど良くても悪い取引です。第二に、片方のレッグはオンチェーン取引であるため、ライトニングネットワーク側が即時であっても、操作全体が承認を待つことになります。
サブマリンスワップvsアトミックスワップ
サブマリンスワップは2つのレイヤーにまたがってビットコインをビットコインと交換します。アトミックスワップは2つの異なるチェーンにまたがって2つの異なる資産を交換します。どちらも同じハッシュとタイムロックの仕組みを使うため、名前が混同されます。違いは何が移転するかです。サブマリンスワップの後、利用者は同じ資産を別の場所に、つまりチャネルの中ではなくオンチェーンで保有します。一方、アトミックスワップの後では、まったく別のものを保有し、その資産の価格リスクを負うことになります。サブマリンスワップは日常的に使われる定型的な配管のような存在です。チェーン間のアトミックスワップは実際には依然としてまれであり、両方のチェーンが互換性のあるコントラクトに対応していることと、双方の当事者がオンラインであり続けることが必要です。