MoneroSwapper MoneroSwapper
Руководства

Atomic Swaps в Monero через CLI: пошаговое руководство по обмену BTC↔XMR

MoneroSwapper Team · · · 2 min read · 79 views

Атомарные свопы (Atomic Swaps) — это криптографический механизм, позволяющий двум сторонам обменивать монеты между разными блокчейнами без доверия к третьей стороне. Это святой Грааль децентрализованного обмена: никакого кастодиана, никакой биржи, никакого KYC. Для пары Bitcoin ↔ Monero атомарные свопы особенно важны, поскольку XMR — основная приватная криптовалюта, а BTC — самая ликвидная. В этой подробной статье мы разберём, как выполнить BTC↔XMR своп через командную строку с использованием реализации COMIT swap-cli, также известной как xmr-btc-swap, и обсудим нюансы безопасности, типичные ошибки и правовой контекст в России.

Теоретические основы атомарных свопов BTC↔XMR

Классические атомарные свопы (HTLC — Hashed Timelock Contracts) работают только между блокчейнами, поддерживающими одинаковые примитивы хеширования и блокировки по времени. Проблема в том, что Monero не имеет Turing-complete скриптинга, как Bitcoin. Обычный HTLC здесь не подходит.

Решение было найдено в 2020 году командой исследователей из Farcaster и COMIT: вместо HTLC используется адаптивная подпись (Adaptor Signature). Протокол построен на взаимодействии двух участников: Алиса (владеет BTC, хочет XMR) и Боб (владеет XMR, хочет BTC). Каждый из них генерирует пару ключей, и через серию взаимодействий создаются транзакции, в которых раскрытие одного секрета автоматически раскрывает другой. Если Боб забирает BTC, Алиса получает возможность забрать XMR, и наоборот.

Криптографически это работает благодаря дискретному логарифму: «выкуп» одной стороны математически эквивалентен раскрытию скаляра, который противоположная сторона использует для подписания выкупа своей транзакции.

Шаг 1: Подготовка окружения

Для работы нам понадобится Linux-машина (Ubuntu 22.04 или Debian 12 рекомендуется). Windows и macOS также поддерживаются, но с меньшей стабильностью. Убедитесь, что у вас установлены:

  • Git и основные инструменты сборки: sudo apt install git build-essential curl -y.
  • Rust toolchain: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh.
  • Tor daemon: sudo apt install tor -y.
  • Синхронизированный Bitcoin Core (или доступ к pruned-узлу) с RPC-интерфейсом.
  • Monero кошелёк с достаточной ликвидностью (для Боба) или пустой (для Алисы).

Шаг 2: Установка swap-cli

Склонируем официальный репозиторий:

git clone https://github.com/UnstoppableSwap/core.git xmr-btc-swap

cd xmr-btc-swap

cargo build --release --bin swap

После сборки бинарник будет в target/release/swap. Скопируйте его в /usr/local/bin/ для удобства:

sudo cp target/release/swap /usr/local/bin/swap-cli

Шаг 3: Настройка конфигурации

Запустим swap-cli в режиме конфигурации:

swap-cli --testnet config

Вам будет предложено выбрать сеть (mainnet или testnet). Для первых экспериментов всегда используйте testnet — это защитит вас от финансовых потерь из-за ошибок.

Укажите путь к Bitcoin Core RPC, например: http://127.0.0.1:18332 для testnet. Введите имя пользователя и пароль из bitcoin.conf. Для Monero укажите удалённый узел: stagenet.xmr-tw.org:38081 или свой собственный.

Шаг 4: Запуск свопа в роли Алисы (BTC → XMR)

Предположим, у вас есть BTC и вы хотите получить XMR. Найдите публичного мейкера (Bob), предлагающего XMR в обмен на BTC. В экосистеме xmr-btc-swap есть публичный рендезвус-сервер, где мейкеры публикуют свои предложения:

swap-cli --testnet list-sellers --rendezvous-point /dnsaddr/rendezvous.coblox.tech/p2p/12D3KooWQUt9DkNZxEn2R5ymJzWj15MpG6mTW84kyd8vDaRZi46o

Вы увидите список мейкеров с их ценами и минимальными/максимальными объёмами. Выберите подходящего и запомните его peer-id и multiaddr.

Теперь инициируйте своп:

swap-cli --testnet buy-xmr --receive-address XMR_ADDR --change-address BTC_CHANGE --seller PEER_ID

Утилита проведёт вас через серию шагов: покажет курс, попросит подтверждения, запросит подпись, создаст on-chain транзакцию lock-BTC. После подтверждения транзакции в сети Bitcoin Боб создаст свою lock-XMR транзакцию. Когда она получит достаточно подтверждений, Алиса раскроет секрет и сможет выкупить XMR.

Шаг 5: Запуск свопа в роли Боба (XMR → BTC)

Для запуска мейкера нужен синхронизированный Monero-кошелёк с балансом:

swap-cli --testnet start --min-buy-btc 0.001 --max-buy-btc 0.1 --ask-spread 0.02

Параметр --ask-spread 0.02 означает 2% маржу над рыночной ценой. swap-cli автоматически публикует ваше предложение на рендезвус-сервере и ожидает клиентов.

Шаг 6: Мониторинг статуса свопа

В любой момент можно посмотреть историю операций:

swap-cli --testnet history

Будет выведен список всех свопов с их состояниями: BtcLocked, XmrLocked, BtcRedeemed, XmrRedeemed, Cancelled, Refunded.

Шаг 7: Процедура рефанда при ошибке

Если что-то пошло не так — например, противоположная сторона исчезла после lock-BTC, — протокол включает механизм рефанда. После истечения таймлока (обычно 12 часов) вы можете запустить:

swap-cli --testnet refund --swap-id SWAP_ID

Ваши BTC вернутся на change-address. Это требует on-chain транзакции и, соответственно, небольшой комиссии. Таймлоки устроены так, чтобы ни одна из сторон не могла получить одновременно и BTC и XMR.

Типичные ошибки и их решения

Ошибка: Bitcoin RPC connection refused

Проверьте, что Bitcoin Core запущен и в bitcoin.conf указаны параметры: server=1, rpcuser=..., rpcpassword=..., rpcallowip=127.0.0.1.

Ошибка: Monero daemon timeout

Удалённый Monero-узел может быть перегружен. Попробуйте другой или запустите свой собственный командой monerod --stagenet --rpc-bind-port 38081.

Ошибка: Cannot connect to rendezvous point

Ваше соединение блокируется. Используйте Tor: swap-cli --testnet --tor-socks5-port 9050 buy-xmr ....

Ошибка: Insufficient funds

В кошельке Bitcoin недостаточно средств для lock-транзакции. Учтите, что нужны также средства на комиссию и потенциальный рефанд.

Безопасность и приватность

Даже атомарные свопы не гарантируют 100% приватности без правильной настройки. Основные рекомендации:

  • Всегда используйте Tor для скрытия IP-адреса при подключении к рендезвус-серверу и узлам.
  • Не используйте бирже-связанные BTC как вход для свопа — это сопоставит вашу личность с XMR-адресом назначения через chain analysis.
  • Проверяйте подписи бинарников swap-cli перед запуском. Скачивание с непроверенных источников может дать злоумышленнику полный контроль над вашим кошельком.
  • Тестируйте на testnet перед любыми операциями на mainnet. Каждая команда должна быть отработана на малых суммах.
  • Используйте отдельный кошелёк для атомарных свопов, не смешивая его с основными средствами.

Сравнение с централизованным свопом через MoneroSwapper

Атомарные свопы через CLI — это мощный инструмент для технически подкованных пользователей, но они требуют значительных ресурсов: синхронизированные узлы, настройка Tor, понимание командной строки, ликвидность в обеих валютах. Для подавляющего большинства пользователей MoneroSwapper обеспечивает аналогичную приватность (без KYC, без логов, Tor hidden service) при несравненно большей простоте: вы вводите адрес получателя, отправляете монеты, и обмен происходит автоматически. Атомарные свопы остаются важной опцией для тех, кто хочет полной децентрализации, но MoneroSwapper подходит большинству повседневных задач.

Правовой контекст в РФ

Использование атомарных свопов в России не запрещено — №259-ФЗ регулирует обмен цифровыми активами в целом, не выделяя технические реализации. Однако ФНС требует декларирования доходов от криптоопераций, включая свопы, если они превышают пороговые значения. При выполнении свопов рекомендуется сохранять TXID обеих транзакций как доказательство источника средств.

ЦБ РФ не поощряет использование частных криптовалют, но и не запрещает их прямо. Позиция Росфинмониторинга сводится к контролю AML/CFT правил для организаций, а не для физических лиц, проводящих личные операции.

Заключение

Атомарные свопы BTC↔XMR через swap-cli — это вершина криптографической инженерии. Они воплощают идею децентрализованного обмена в её чистейшей форме: никакого посредника, никакого доверия, только математика. Освоение этой технологии требует времени и внимания к деталям, но результат — полный контроль над вашими средствами и максимальная приватность — стоит затраченных усилий.

Если вы не хотите погружаться в технические детали, но желаете сохранить приватность при обмене криптовалют, используйте MoneroSwapper — мгновенный безKYC-обменник, разработанный на тех же принципах конфиденциальности. Мы поддерживаем более 200 криптовалют, работаем через Tor hidden service, не храним логи и не требуем паспортов. Для начала операции просто перейдите на главную страницу и выберите пары для обмена.

Изучайте технологии приватности, экспериментируйте на testnet, защищайте свою финансовую свободу — это фундаментальное право каждого человека в 2026 году.

Детали криптографии adaptor signatures

Чтобы лучше понять протокол, рассмотрим математику на высоком уровне. Алиса и Боб выбирают случайные скаляры sA и sB. Из них вычисляются публичные точки SA = sA*G и SB = sB*G на кривой Ed25519 (используемой Monero) и secp256k1 (Bitcoin). Ключ для разблокировки XMR — это сумма sA + sB, а ключ для разблокировки BTC связан с sA. Когда Боб «выкупает» BTC, он публикует в блокчейн Bitcoin подпись, из которой Алиса может извлечь sA, комбинируя её со своим sB, и получить доступ к XMR.

Эта элегантная конструкция работает без доверенных посредников и без поддержки смарт-контрактов в Monero. Единственное требование — оба блокчейна должны поддерживать Schnorr-подобные подписи, что выполнимо: Bitcoin после активации Taproot поддерживает Schnorr, а Monero изначально использует EdDSA.

Таймлоки и безопасность

Протокол включает несколько таймлоков для защиты обеих сторон:

  • t1 (Refund timelock): Алиса может вернуть BTC, если Боб не запустил процесс редемпции.
  • t2 (Punish timelock): Если Алиса попытается обмануть после раскрытия секрета, Боб получает «штрафной» BTC.
  • Мониторинг: swap-cli постоянно отслеживает блокчейн и автоматически действует на границах таймлоков.

Важно: никогда не выключайте компьютер с запущенным свопом в критические фазы. Если ваше устройство отключится в момент, когда требуется подпись редемпции, вы можете потерять возможность выкупить XMR в пределах таймлока.

Альтернативные реализации

Кроме оригинального xmr-btc-swap от COMIT, существуют другие реализации:

  • Farcaster: платформа децентрализованных атомарных свопов с поддержкой нескольких валют.
  • UnstoppableSwap: GUI-обёртка над xmr-btc-swap для менее технических пользователей.
  • Haveno: P2P-обменник для Monero, наследник Bisq, использующий атомарные свопы в качестве одной из опций.

Каждая реализация имеет свои преимущества. Haveno, например, поддерживает торговлю за фиатные валюты через p2p-переводы, что особенно полезно для пользователей, которые хотят купить XMR за рубли без посредников.

Поделиться статьей

Похожие статьи

Готовы к обмену?

Анонимный Обмен Monero

Без KYC • Без регистрации • Мгновенный обмен

Обменять сейчас