Разработка крипто-обменника под ключ: гибрид, маржа, безопасность

Запуск обменника часто тормозят ручные сверки и простои на пиках активности. Мы разрабатываем крипто-обменники под ключ: гибридная модель, управляемая маржа и понятные правила проверок. Передаём платформу с конфигурациями, схемами и политиками доступа — команда получает готовый к работе сервис.
Часто задаваемые вопросы

Разработка крипто-обменника: где ломается обмен и ликвидность

Боль входа в крипто-обменник почти всегда одна и та же. Внутренние балансы кабинета расходятся с публичным реестром: пополнение прошло, а зачисление не отобразилось; вывод ушёл, а резерв списался дважды. На резком движении рынка заявки зависают в промежуточном состоянии — клиент повторяет сделку и получает её дважды.

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

Цена измерима. Отраслевые обзоры, которые мы разбирали вместе с Chainalysis, сходятся: значимая доля инцидентов на обменных сервисах — не взломы, а рассинхрон балансов и зависшие заявки. Каждый час простоя обменного сервиса на живом рынке — потерянные обороты и клиенты, которые возвращаются уже к конкуренту.

Узкие места обменника вскрываются в момент нагрузки, когда исправлять их дороже всего. Поэтому разработку крипто-обменника мы начинаем не с интерфейса, а с учёта: регулярная сверка с реестром, карантин спорных операций вместо ручных правок, отдельный контур для односторонних сделок. Разбираем, как это закрывается.

Что меняется после внедрения: скорость, маржа, устойчивость

Управляемая архитектура меняет три измеримые величины: долю заявок, закрытых без оператора, время от открытия до расчёта и размер маржи, которая остаётся после работы внешних поставщиков ликвидности. Ниже — за счёт чего именно.

Время обработки заявки и очередь операций

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

Устранённый класс отказов и расчёт маржи

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

Маржа обменника считается по каждой сделке: комиссия, стоимость привлечения ликвидности, проскальзывание. Расхождение видно в реальном времени, поэтому лимиты правятся по факту, а не по месячному отчёту. Разграничение доступов и проверки сводим к требованиям ISO/IEC 27001.

Гибридная модель обменника против прямых сделок: что выбрать

Режим работы обменника определяет, откуда берётся вторая сторона сделки: из собственного резерва площадки, от внешних поставщиков ликвидности или от других пользователей. От этого зависят спред, скорость исполнения и поведение сервиса при резком движении рынка. Ниже — реальные варианты, между которыми выбирают на этапе проектирования.

Вариант Когда подходит Ограничения
Собственный резерв Узкий список пар, предсказуемый поток заявок Капитал заморожен; при тренде одна сторона резерва вырабатывается
Гибридная модель обменника Много пар, нужны крупные заявки без проскальзывания Сложнее сверка позиций, зависимость от контрагентов
Прямые сделки между пользователями Редкие пары, нестандартные активы Долгое ожидание контрагента, нужен эскроу и арбитраж
Книжный обмен с ордербуком Ликвидные пары с плотным потоком Без маркет-мейкеров стакан остаётся пустым

Гибрид: свой резерв плюс внешняя ликвидность

Ядро считает цену по собственному резерву, а недостающий объём добирает у внешних поставщиков через маршрутизацию заявок. Резерв закрывает мелкие сделки без задержки, внешний канал — крупные и редкие пары. Нужны лимиты на контрагента и регулярная сверка позиций: расхождение балансов иначе всплывёт на клиентских выплатах.

Прямые сделки между пользователями и книжный обмен

Площадка здесь не держит капитал: она сводит заявки, блокирует актив в эскроу до подтверждения оплаты и разрешает спор через арбитраж. Ограничения модели — время ожидания контрагента и риск недобросовестного поведения, поэтому нужны рейтинг, лимиты и понятные правила разблокировки. Ордербук даёт мгновенное исполнение на ликвидных парах, но требует постоянной поддержки стакана.

Порядок внедрения: от аудита до передачи в эксплуатацию

Разработка крипто-обменника идёт волнами, и порядок здесь важнее скорости: сначала фиксируем то, как средства двигаются сейчас, и только потом меняем. Иначе новая логика расчёта ложится поверх неучтённых ручных операций, и расхождения всплывают уже на живых клиентах.

  1. Аудит инфраструктуры обменника. Снимаем карту узлов, внешних источников курса и ликвидности, мест хранения ключей и списка тех, у кого есть доступ. Отдельно выписываем всё, что до сих пор делается руками.
  2. Схема движения средств. Описываем маршрут от поступления на адрес до зачисления в баланс пользователя: резервы, подтверждения сети, лимиты, комиссии, зависшие операции и порядок их разбора.
  3. Настройка окружений. Разводим контуры разработки, тестовый и рабочий, держим одинаковые конфигурации, секреты — вне репозитория, ключи у каждого контура свои. Проверки и эксперименты перестают трогать боевые средства.
  4. Правила расчёта. Задаём спред и маржу, порядок применения курса, округление, лимиты на операцию и на пару — с журналированием каждого решения, чтобы расчёт можно было объяснить и пересчитать.
  5. Приёмочные проверки на исторических данных. Прогоняем новые правила на записях прошлых сделок и сверяем результат до последнего знака. Расхождение — повод вернуться к схеме, а не списывать на погрешность.
  6. Передача в эксплуатацию. Передаём регламенты, дашборды, оповещения об отклонениях и порядок отката на предыдущее состояние, обучаем дежурную смену.

Кто и что делает на каждом шаге

Аудит и схему потоков ведут наши инженеры вместе с вашим финансистом и службой поддержки — они знают реальные исключения. Окружения, расчётный модуль и приёмочные прогоны закрываем мы, а решение о запуске принимаете вы после демонстрации сверки. Дальше остаёмся на связи по регламенту сопровождения.

Комплект передачи: конфигурации, схемы, политики доступа

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

Документация и схемы

  • Схемы интеграций: потоки ордеров между ядром обменника, контуром ликвидности, кошельками, антифродом и источниками курса — с точками отказа и таймаутами.
  • Конфигурации окружений: параметры тестового, предпродуктивного и продуктивного контуров — лимиты, спреды, список активов, настройки повторов запросов.
  • Описание модели данных: сделки, проводки внутреннего учёта, балансы и история статусов; порядок сверки с блокчейном.
  • Инструкции для операторов: обработка зависшей заявки, ручная выплата, перевод пары в режим только чтения.

Регламенты и матрица ответственности

  • Матрица ролей и политики доступа: кто меняет лимиты, инициирует выводы и ротирует ключи — разделение обязанностей и второй фактор.
  • Регламенты обслуживания: плановые работы, обновление узлов и курсовых источников, резервное копирование и проверка восстановления.
  • Регламент реагирования: действия при скачке курса, всплеске выводов или отказе провайдера — пороги оповещений и ответственные.
  • Порядок отката: версия конфигурации, автор изменения, способ вернуть предыдущее состояние без простоя.

Кейс: как сократили ручные операции и убрали класс отказов

Обменник работал на гибридной модели: часть объёма закрывал внутренний стакан, часть уходила на внешнюю ликвидность. Узким местом стала не пропускная способность, а ручные операции — оператор подтверждал каждый вывод, сверял остатки на горячем и холодном кошельках и разбирал расхождения по журналу.

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

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

Что было до и что стало после

Показатель До После
Доля операций с ручным подтверждением большинство выводов единицы процентов, только аномалии
Реакция на расхождение балансов часы, по факту обнаружения минуты, по оповещению
Спорные сделки за квартал десятки единичные
Поиск причины сбоя вручную по журналу по идентификатору операции, минуты

Класс отказов с двойным проведением вывода больше не воспроизводился: повторный запрос отсекается по идентификатору операции, а сверка находит расхождение раньше, чем его заметит клиент. По отраслевым данным Chainalysis, заметная часть инцидентов в обменниках связана не с пробитым периметром, а с операционными процессами и ручными подтверждениями — этот слой мы и убрали.

Что делать, если платформа уже развёрнута на готовом решении?

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

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

Постепенный переход трафика — по направлениям и валютным парам. Сначала на новое ядро уходит небольшая доля заявок с ограничением суммы, затем лимиты поднимаются, а старый контур остаётся резервным маршрутом. Курсовой и риск-контур при этом общий: расхождение котировок между платформами недопустимо, иначе появляется арбитраж внутри собственного сервиса.

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

Технические сомнения: хранение средств, маржа, проверки

Самый частый технический вопрос заказчика — где физически лежат средства клиентов и у кого на руках ключи. Мы строим кастодиальную модель с разделением на горячий, тёплый и холодный контуры: в горячем только операционный запас под выводы, остальное — в холодном хранении. Приватные ключи не попадают на сервер приложения: подпись транзакции проходит через отдельный сервис с пороговой схемой, где компрометация одной площадки не открывает доступ к балансу.

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

Кто владеет приватными ключами после сдачи проекта?

Ключами управляете вы. Мы описываем процедуру генерации, резервного копирования и ротации долей доступа, но не сохраняем за собой возможность вывода средств. Передача доступов идёт по протоколу с фиксацией ответственных.

Как проверяется корректность начислений?

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

Что происходит при спорной операции?

Выводы по счёту можно приостановить точечно, без остановки всей платформы. История сделок неизменяема, поэтому разбор опирается на фактические записи, а не на восстановленные логи.

Обсудим задачу: что нужно для оценки и плана работ

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

  • Текущая схема обмена: откуда берутся котировки, куда уходят заявки, как сейчас сводятся остатки и в каком месте считается маржа.
  • Роли и доступы: кто меняет курсы, кто подтверждает вывод средств, какие права нужны оператору, риск-менеджеру и поддержке.
  • Требования к проверкам: обязательные шаги перед зачислением и выводом, пороги для ручного разбора, что делать при расхождении баланса.
  • Ожидаемая нагрузка: сколько операций в сутки, пиковые часы, сколько направлений обмена и пар планируете держать на старте.
  • Контуры и интеграции: платёжные каналы, решения для хранения активов, внутренние системы, с которыми обменник должен обмениваться данными.
  • Сроки внедрения: дата, к которой обменник должен работать, этапы запуска, есть ли готовая инфраструктура и требования площадки.
  • Кто со стороны заказчика принимает результат и по каким критериям договоримся считать работу принятой.

Получив это, мы называем состав команды под ваш объём: сколько инженеров нужно, кто отвечает за сведение заявок, кто за безопасность и проверки, кого подключаем на интеграции. Дальше раскладываем работы по этапам с датами и точками приёмки. Опишите задачу — вернёмся с оценкой и планом работ.

  • Заказывают «обменник» как витрину с кнопкой «купить», не описав заранее, откуда берётся ликвидность и кто закрывает разницу при резком движении рынка — платформа запускается, а первый же всплеск волатильности вскрывает дыру в запасе.
  • Держат средства клиентов, операционный резерв и прибыль на одном кошельке: при первой задержке вывода невозможно показать, что обязательства перед пользователями покрыты, а разбирательство с партнёрами идёт вслепую.
  • Просят «гибрид», не определив, какие операции закрываются внутри книги заявок, а какие уходят на внешние площадки — в итоге маржа считается дважды или не считается вовсе, и настоящая доходность направления неизвестна.
  • Экономят на проверках: вход без подтверждения личности, лимиты выставлены «на глазок», правила пополнения не описаны — канал быстро начинают использовать для обналичивания, и претензии от платёжных посредников приходят раньше первой прибыли.
  • Оставляют ключи и права администратора у подрядчика «до лучших времён», без разделения ролей — один человек может и пополнить резерв, и утвердить вывод, поэтому любая ошибка или уход специалиста превращаются в угрозу для всего баланса.
  • Считают, что работа заканчивается запуском: нет регламента на сбой, нет плана на остановку внешней площадки, нет дежурного — обычный технический инцидент растягивается на часы и стоит репутации.
  • Наращивают функции вместо устойчивости: сначала новые способы оплаты и разделы кабинета, а журналирование операций, оповещения и порядок восстановления — «потом», хотя именно они определяют, переживёт ли обменник первый серьёзный сбой.
  • Не фиксируют в договоре, что именно передаётся: без описания настроек, инструкций поддержки и порядка восстановления платформа остаётся завязанной на одного человека, и сменить исполнителя без остановки сервиса уже нельзя.

Направления блокчейн-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142