Как работает эскроу-защита сделки

Эскроу — основа доверия P2P. Рассказываем, в какой момент крипта блокируется, кому она доступна и недоступна, как это защищает обе стороны от обмана.

Обновлено: 27 июня 2026 г.

Идея эскроу одним предложением

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

В традиционной обменке роль эскроу играет сама обменка. На P2P-площадке эскроу — это код платформы, который математически и атомарно блокирует баланс. Никакой человек руками крипту не переключает.

Кто здесь продавец и кто покупатель

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

  • SELL-объявление (трейдер продаёт): автор объявления = продавец, клиент = покупатель.
  • BUY-объявление (трейдер покупает): автор объявления = покупатель, клиент = продавец.

В обоих случаях продавцом мы называем ту сторону, которая отдаёт криптовалюту, а покупателем — ту, которая отдаёт рубли. Эскроу работает одинаково: блокируется крипта продавца.

Что происходит в момент открытия сделки

Когда покупатель нажимает «Открыть сделку», платформа выполняет одну атомарную транзакцию в базе данных (Prisma Serializable isolation — самый строгий уровень изоляции, без гонок), внутри которой:

  1. Создаётся запись сделки в статусе «Открыта».
  2. С «доступного» баланса продавца списывается crypto_amount + commission.
  3. В «заблокированный» баланс продавца добавляется crypto_amount + commission.
  4. Создаётся системное сообщение в чате с реквизитами для оплаты.

commission рассчитывается от суммы крипты по ставке комиссии платформы и округляется в большую сторону до 2 знаков для USDT или 8 для BTC. Платит её только автор объявления (трейдер), но для удобства она блокируется в эскроу заранее, чтобы избежать гонок при освобождении.

Если у продавца недостаточно «доступного» баланса для блокировки — открытие сделки отклоняется с ошибкой «Сумма превышает доступный баланс продавца». Никаких партиц или «полу-блокировок» — либо вся сумма попадает в эскроу, либо сделка не создаётся.

Что значит «заблокированный» баланс

В кошельке у каждой валюты вы видите два числа:

  • Доступно — что можно потратить (выводить, открывать новые сделки).
  • Заблокировано — что находится в эскроу по открытым сделкам.

Заблокированные средства:

  • нельзя вывести (форма вывода покажет, что доступно меньше);
  • нельзя использовать в других сделках (новые сделки откажут, если не хватает «доступного»);
  • видны в кошельке как часть общего баланса, но с пометкой «в сделках».

Эта блокировка длится до момента, пока сделка не закроется одним из четырёх способов: подтверждением получения, отменой, истечением таймера, или решением спора.

Что происходит при завершении сделки

Успешное завершение (продавец нажал «Подтвердить получение»)

Внутри одной Serializable-транзакции:

  1. С «заблокированного» баланса продавца списывается crypto_amount + commission.
  2. На «доступный» баланс покупателя зачисляется crypto_amount.
  3. commission распределяется на счёт платформы. Если у автора объявления есть реферер, часть комиссии начисляется ему — см. Реферальная программа.
  4. Сделка переводится в статус «Завершена».

После этого баланс покупателя растёт на ровно crypto_amount, баланс продавца — уменьшается на crypto_amount + commission.

Отмена покупателем до оплаты или истечение таймера

  1. С «заблокированного» баланса продавца списывается crypto_amount + commission.
  2. На «доступный» баланс продавца зачисляется crypto_amount + commission.
  3. Сделка переводится в статус «Отменена».

То есть продавец получает обратно ровно то, что было заблокировано. Никаких потерь — комиссия за неуспешные сделки не взимается.

Спор

Если сделка перешла в статус «Спор», эскроу остаётся заблокированным до решения модератора. Решения три:

  • В пользу покупателя — крипта переходит покупателю (то же самое движение, что при успехе), комиссия списывается.
  • В пользу продавца — эскроу разблокируется и возвращается продавцу.
  • Отмена — эскроу разблокируется и возвращается продавцу.

В двух последних случаях комиссия с продавца не взимается.

Что эскроу защищает и чего не защищает

Защищает

  • Покупателя — от того, что продавец сбежит с криптой. Крипта уже в эскроу. Продавец не может её увести.
  • Продавца — от того, что покупатель «получит крипту и ничего не оплатит». Чтобы крипта ушла, продавец сам должен нажать «Подтвердить получение». Без этого подтверждения крипта остаётся в эскроу, а в случае спора решение принимает модератор.
  • Обе стороны — от технических сбоев. Атомарная транзакция с Serializable-изоляцией исключает гонки (например, продавец не сможет одновременно вывести крипту и открыть с ней сделку).

Не защищает

Эскроу — это про криптовалюту на нашей стороне. Эскроу не защищает от:

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

Почему так строго про Serializable

Финансовые транзакции в BitMoment выполняются на уровне изоляции Serializable — самом строгом в PostgreSQL. На практике это означает, что:

  • два параллельных запроса не могут одновременно списать одну и ту же сумму с одного баланса;
  • при «гонке» один из запросов получит ошибку и будет повторён;
  • никаких ситуаций «открыл две сделки на 100 USDT при балансе 100 USDT» быть не может.

Это медленнее, чем менее строгие уровни, но это правильное место для денег.

Где это всё видно

  • Открытая сделка — статус «Открыта» или «Оплачено», крипта в «заблокировано» у продавца. Видно на странице сделки и в «Кошельке».
  • Завершённая сделка — статус «Завершена», крипта на «доступном» у покупателя, у продавца списана. История — в «Кошельке → История операций».
  • Спор — статус «Спор», крипта в «заблокировано» до решения модератора.
  • Все движения средств — в «Кошельке → История операций» и в /dashboard/transactions с фильтрами.

Полезные ссылки

Была ли статья полезной?

Остались вопросы?

Напишите нам в Telegram — отвечаем 24/7.

Написать в Telegram
Как работает эскроу-защита сделки — BitMoment