Гонка на выводе средств

Два запроса, один баланс, окно в микросекунды. Когда проверка баланса и списание не атомарны, деньги уходят дважды.

Механика гонки

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

На криптобирже или кэшауте казино это прямая потеря денег, и видно её только когда кто-то намеренно шлёт один и тот же вывод параллельно. Обычное тестирование так не делает.

Где это встречается чаще всего

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

Как это закрыть

Поток кэшаута, который нельзя удвоить — и доказательство этого для партнёров и аудиторов.

Вопросы

Как вы доказываете, что гонка есть?

Шлём один и тот же вывод однопакетным параллелизмом HTTP/2 и показываем, что оба запроса одобрены против одного баланса — с отрицательным контролем, где обычный последовательный вывод корректно отклоняется.

Вы двигаете реальные средства для проверки?

Нет. Проверки идут на изолированных данных и тестовых счетах, никогда на балансах клиентов.

Закройте гонку раньше, чем она вас обнулит

Пришлите контур вывода — оценка гонок в течение 48 часов.
Заказать аудит гонок