169 / 736SWAP

Submarine Swap

Обмен биткоина между блокчейном и Lightning

Есть биткоин в блокчейне, а заплатить нужно через Lightning? Submarine Swap соединяет обе стороны. Понимание того, кто кому платит, объясняет защиту, ожидание и возможный возврат средств.

Submarine Swap позволяет заплатить через Lightning Network биткоинами, которые у вас есть в блокчейне. Блокчейн — публичная история транзакций Bitcoin; Lightning позволяет быстро платить без отдельной записи каждого платежа в этой истории. Обратное направление называется Reverse Submarine Swap. Вы не покупаете другую валюту: за вычетом комиссий переводите средства между этими способами оплаты. Платежи связывают криптографические и временные условия. Приложение должно проверить их и вовремя завершить обмен либо обеспечить возврат средств.

Анна держит биткоин в обычном кошельке, а магазин выставляет ей Lightning-счёт, запрос на оплату. Обычный swap позволяет заблокировать биткоин в блокчейне на согласованных условиях, а сервис взамен оплачивает счёт. Чтобы перевести остаток Lightning на адрес в блокчейне, нужно обратное направление: Reverse Submarine Swap, например Loop Out. Закрывать свои платёжные каналы Анне не требуется. Обмен не создаёт денег, а Lightning-платежу по-прежнему нужен доступный маршрут. [1] [4]

Представим секрет, цифровой отпечаток которого можно проверить, но восстановить по нему секрет практически невозможно. Секретное значение называется preimage. Его цифровой отпечаток — это hash, или хеш, который вычисляют с помощью SHA256. Условные платежи HTLC объединяют этот отпечаток со сроком. При обратном swap секрет создаёт приложение Анны. Сервис удерживает её Lightning-платёж в ожидании и блокирует соответствующий биткоин в блокчейне. Забирая средства операцией claim, Анна раскрывает секрет в блокчейне или передаёт сервису при совместном завершении. Тогда сервис может окончательно провести связанный платёж. Ожидание ещё не означает оплату. [1] [4]

Сообщение сервиса — не то же самое, что деньги в целевом кошельке. Boltz объясняет, что invoice.settled при обратном swap может появиться после передачи preimage и расчёта по Lightning-счёту. Сервис не отслеживает, действительно ли приложение Анны разослало транзакцию claim. Поэтому нужно проверить целевой выход, конкретную часть биткоинов, предназначенную её кошельку, и нужные подтверждения в блоках. Блок — группа транзакций, добавленная в блокчейн. Включение транзакции в блок даёт ей первое подтверждение, а каждый последующий блок добавляет ещё одно. Неясный статус не оправдывает немедленную повторную отправку того же платежа. [1] [2]

При обычном swap биткоин Анны уже может быть заблокирован в блокчейне, хотя счёт не оплачен. Возврат, refund, тогда требует транзакции, которую её приложение подготовит и разошлёт. Без сотрудничества сервиса придётся дождаться timelock, оговорённого временного условия. В обратном направлении, пока Lightning-платёж не завершён, ожидающие HTLC могут быть отменены. Тогда средства освобождаются без refund-транзакции Анны в блокчейне. Это не значит, что уже проведённый платёж вернётся сам после раскрытия preimage. Важны направление и стадия. [1] [3]

Анна сравнивает отправленную сумму с фактически полученной. Разницу могут составлять комиссии сервиса, маршрутизации Lightning и транзакций в блокчейне. Неудачный обычный swap может добавить комиссию возврата. Важно и время: публикация claim способна раскрыть preimage до подтверждения блоком. Документация Loop предупреждает, что перед timeout клиент может повысить сверх первоначального лимита комиссию sweep, транзакции получения средств. Криптографическая связь не обещает мгновенный, бесплатный или безрисковый обмен. [5] [6]

Слова восстановления другого кошелька могут не восстановить незавершённый swap. В зависимости от приложения нужны refund-ключ или rescue key и данные обмена, включая заблокированный выход и срок. Boltz Swap Restore выводит ключи из собственной резервной копии и находит связанные обмены. Для поиска используется xpub, расширенный публичный ключ: он может раскрыть историю, но сам не подписывает и не тратит деньги. Приватный ключ — секретное значение, которым приложение подписывает транзакцию согласно соответствующим условиям. Эти ключи остаются на устройстве. Что восстанавливает копия и где она хранится, должно быть понятно до отправки денег. [7] [3]

Пользователь не должен вручную рассчитывать криптографические условия, но приложение обязано их проверить. Просто довериться адресу, полученному через API, интерфейс обмена данными между программами, недостаточно. Клиент проверяет сеть, суммы и комиссии, hash, ключи и сроки. Должны соответствовать и скрипт, правила расходования, либо их дерево в Taproot, а также выведенный из них адрес. Lightning-счёт должен совпадать с согласованными отпечатком и суммой. Правильный механизм не спасёт программу, которая отправляет средства не туда. [2]

Taproot позволяет сторонам с помощью MuSig2 создать общую подпись. Такой путь key-path может стоить дешевле и не требует публичного раскрытия условий swap. Приложению нужен также script-path, напрямую применяющий эти условия, когда партнёр не сотрудничает: для claim или refund в зависимости от направления. Если обычный swap не удался, совместно подписанный refund может вернуть средства раньше. Но чтобы забрать их без сотрудничества сервиса, Анне нужно дождаться момента, когда согласованный timelock разрешит возврат. Меньше данных в блокчейне также не означает анонимность перед сервисом, организовавшим обмен. [3] [4]

Для полной картины прочитайте эту статью вместе с Lightning Network, HTLC, Inbound Liquidity, Taproot, MuSig2, CLTV. На эту статью также ссылаются Ликвидность Lightning, Inbound Liquidity, Boltz, Lightning Service Provider.

DOC · 001Boltz — Swap types and statesДокументация DOC · 002Boltz — Client verificationДокументация DOC · 003Boltz — Claims and refundsДокументация DOC · 004Lightning Loop — ArchitectureДокументация DOC · 005Lightning Loop — FeesДокументация DOC · 006Lightning Loop — Sweep fee limitsДокументация DOC · 007Boltz — Swap restoreДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией