Финансы — операции платёжного коммутатора Живая модель

Вы работаете на диспетчерском пульте платёжного коммутатора, стоящего между торговыми точками и банками-эмитентами карт. Каждую минуту поступает около 400 операций в секунду; каждая оценивается на риск мошенничества, ждёт свободный слот соединения и пересылается эмитенту за ответом. Модель по учебным формулам вычисляет очереди, тайм-ауты, повторы клиентов, компромисс антифрод-проверки и риск резервных одобрений. Суммы даны в условных денежных единицах (у. е.). Только учебная симуляция — не финансовая, не юридическая и не инвестиционная консультация.

Чему вы научитесь

Симулятор

Время 0 мин
Предложенная нагрузка (новые + повторы) 400 · Повторы 0 · Доля одобрения добросовестных клиентов 99,9% · Время авторизации 330 ms · Занято слотов соединений 69% · Серверов в работе 6 (+0) · Доля мошенничества (от одобренной суммы) 10,4 bp · Тайм-ауты эмитентов 0,0% · Риск резервных одобрений 0,00 M uАнтифрод-проверкаt = 3,00σ✓ 99,9% · ? 0,0% · ✗ 0,1%Остановленомошенничества 31%Доля мошенничества (отодобренной суммы) 10,4 bp400 транз./с · ↻ 0Серверы авторизации▶▶▶▶▶▶··················Занято слотовсоединений 69% · 330 ms✗ 0,0%Эмитенты A✓ 250 msЭмитенты B✓ 250 ms⏱ 8 s · ⌛ 0,0% · Σ 0 uДоля одобрения добросовестных клиентов 99,9%Риск резервных одобрений 0,00 M u
  • Сервер в работе
  • Сервер запускается
  • Свободное место в стойке для сервера
  • Эмитент отвечает нормально
  • Эмитент медленный или недоступен
  • Резервная обработка включена
  • Входящие операции

Управление

Каждый сервер содержит 32 слота соединений. Добавленные серверы запускаются 5 минут; оплачивается каждый сервер, запускается он или нет.

Допускает не более 90 % мощности, а избыток сразу отклоняет ответом «повторите позже» — вместо того чтобы дать ему встать в очередь и истечь по тайм-ауту.

Как торговые точки повторяют операцию после технического сбоя (до 3 повторов). Немедленно = в течение следующей минуты; с задержкой = случайная экспоненциальная задержка, средние интервалы 1, 2 и 4 минуты.

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

Оценки, лежащие настолько ниже порога, получают дополнительную проверку клиента вместо решения: её проходят 85 % настоящих клиентов и 5 % мошенников. 0 = выключено.

Как долго слот соединения ждёт ответа эмитента. После этого коммутатор отправляет отмену (реверс) и использует резервное одобрение либо отклоняет операцию с причиной «эмитент недоступен».

Если эмитент не отвечает вовремя, коммутатор одобряет операцию вместо него до этой суммы. Каждое резервное одобрение — это риск, который эмитент не проверял. 0 = выключено.

Показатели

Доля одобрения добросовестных клиентов
99,9%
норма
Время авторизации
330ms
норма
Доля мошенничества (от одобренной суммы)
10,4bp
норма
Занято слотов соединений
69%
норма
Доля одобрения, исправные эмитенты99,9 %
Добросовестные клиенты, отклонённые правилом против мошенничества1,3 ‰
Операции, отправленные на дополнительную проверку0,0 %
Остановлено мошенничества31 %
Новые операции400 tx/s
Предложенная нагрузка (новые + повторы)400 tx/s
Повторы0 tx/s
Сброшено (ответ «повторите позже»)0 tx/s
Отброшено в очереди0,0 %
Тайм-ауты эмитентов0,0 %
Резервные одобрения0 tx/s
Серверов в работе6
Серверов запускается0
Скорость затрат на серверы36 u/h
Затраты на серверы к текущему моменту0 u
Риск резервных одобрений0,00 M u
Одобрено мошенничества к текущему моменту0,00 M u
Потеряно добросовестных операций к текущему моменту0,0 k tx
Операции, ожидающие повтора0 tx
Задержка эмитентов группы B (среднее)250 ms

Динамика

Доля одобрения добросовестных клиентов: — %100,00,0

Кризисные сценарии

Уровень 1 · Пик распродажи

На 5-й минуте открывается крупная онлайн-распродажа и удваивает трафик примерно до 800 операций в секунду на 45 минут. Коммутатор работает на 6 серверах, рассчитанных на обычный день при загрузке около 70 %. Торговые точки повторяют каждый технический сбой сразу. Сохраняйте одобрение добросовестных клиентов и быстрые ответы, не покупая ненужную мощность.

  • Средняя доля одобрения добросовестных клиентов ≥ 95 % с начала распродажи
  • Среднее время авторизации ≤ 500 мс
  • Затраты на серверы ≤ 75 у. е.

Уровень 2 · Волна мошенничества

На 5-й минуте начинают использовать партию украденных данных карт: доля мошенничества в трафике подскакивает с 0,1 % до 1 %. Порог отклонения настроен на обычные дни (3σ), а дополнительная проверка выключена. Снизьте уровень мошенничества, не отказывая добросовестным клиентам.

  • Средняя доля мошенничества ≤ 25 б. п.
  • Средняя доля одобрения добросовестных клиентов ≥ 98 %
  • Добросовестные клиенты, отклонённые правилом ≤ 5 ‰

Уровень 3 · Сбой эмитента

На 5-й минуте эмитенты группы B — четверть всего трафика — замедляются до среднего времени ответа 12 секунд. Коммутатор ждёт ответа до 8 с, резервного одобрения нет, а серверов 6. Не прерывайте поток клиентов исправных эмитентов, обслуживайте группу B настолько, насколько это безопасно, и держите под контролем риск резервных одобрений и затраты.

  • Средняя доля одобрения клиентов исправных эмитентов ≥ 90 %
  • Средняя доля одобрения добросовестных клиентов ≥ 86 %
  • Риск резервных одобрений ≤ 9 млн у. е.
  • Затраты на серверы ≤ 65 у. е.

Основа — модель, стоящая за числами

Все зависимости, которые использует симулятор, с источниками. Константы, помеченные как допущения, — иллюстративные калибровки.

Новые операции поступают с базовой интенсивностью, умноженной на всплеск продаж; число в минуту случайно (Пуассон, нормальное приближение) с небольшой пачечностью.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Допущение: число слотов, времена обслуживания и ответа эмитента, разделение оценок, доли прохождения дополнительной проверки, доля напрасной работы, суммы и цены — иллюстративные значения для коммутатора среднего размера, а не данные какой-либо реальной сети.
Бинормальная оценка мошенничества: оценки законных и мошеннических операций — две нормальные кривые на расстоянии d′; порог выбирает точку на ROC-кривой.
genuine score ~ N(0,1), fraud ~ N(d′,1), d′ = 2.5; FPR(t) = 1 − Φ(t), TPR(t) = 1 − Φ(t − d′); AUC = Φ(d′/√2) ≈ 0.96[6][7]Допущение: число слотов, времена обслуживания и ответа эмитента, разделение оценок, доли прохождения дополнительной проверки, доля напрасной работы, суммы и цены — иллюстративные значения для коммутатора среднего размера, а не данные какой-либо реальной сети.
Оптимальный по затратам порог: отклонять, когда отношение правдоподобия превышает отношение затрат, взвешенное на базовую долю, — при десятикратном росте мошенничества порог смещается на ln 10 / d′ ≈ 0,9σ ниже.
decline when e^(d′x − d′²/2) ≥ (1 − π)·c_FP / (π·c_FN) ⇒ t* = [ln((1 − π)c_FP/(π c_FN)) + d′²/2] / d′[8][7]
Дополнительная проверка: оценки в полосе ниже порога проверяются, а не решаются сразу.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Допущение: число слотов, времена обслуживания и ответа эмитента, разделение оценок, доли прохождения дополнительной проверки, доля напрасной работы, суммы и цены — иллюстративные значения для коммутатора среднего размера, а не данные какой-либо реальной сети.
Задержка эмитента распределена экспоненциально; слот удерживается на время задержки или тайм-аута — смотря что наступит раньше.
L ~ Exp(mean m); E[min(L, T)] = m(1 − e^(−T/m)), P(L > T) = e^(−T/m); S = 80 ms + forwarded × Σ share·E[min(L,T)][2][9]
Закон Литтла: занятые слоты = интенсивность поступления × время удержания.
busy slots = λ·S (Little) ⇒ utilization = λ·S / (32 × servers)[3]
Формула Эрланга C: вероятность того, что операция ждёт свободного слота, и вероятность того, что она ждёт дольше тайм-аута очереди в 2 с.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Сверх мощности коммутатор тратит работу и на запросы, которые отбросит позже, поэтому полезная пропускная способность падает по мере роста нагрузки; сброс нагрузки отказывает избытку дёшево.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Допущение: число слотов, времена обслуживания и ответа эмитента, разделение оценок, доли прохождения дополнительной проверки, доля напрасной работы, суммы и цены — иллюстративные значения для коммутатора среднего размера, а не данные какой-либо реальной сети.
Повторы клиентов: каждый технический сбой повторяется до трёх раз — сразу или со случайной экспоненциальной задержкой.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Допущение: число слотов, времена обслуживания и ответа эмитента, разделение оценок, доли прохождения дополнительной проверки, доля напрасной работы, суммы и цены — иллюстративные значения для коммутатора среднего размера, а не данные какой-либо реальной сети.
Тайм-аут эмитента, реверс и резервное одобрение: суммы логнормальны, поэтому доля ниже лимита и объём одобренного следуют из нормальной функции распределения.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Доля мошенничества в базисных пунктах от одобренной суммы; 13 б. п. используется как ориентир для небольших удалённых платежей картой.
fraud rate = approved fraud amount / approved amount × 10,000 bp (reference scale: 13 bp)[10]
Прочие эксплуатационные константы, используемые моделью.
32 slots per server, 2–24 servers, +5 min boot, 6 u per server-hour · switch time 80 ms · queue timeout 2 s · issuer latency 250 ms (group B = 25 % of traffic, ±15 % per minute) · amounts lognormal, median 40 u, σ = 1, fraud ×1.5 · ω = 0.3 · shedding at 90 % · reversal = 80 ms of switch timeДопущение: число слотов, времена обслуживания и ответа эмитента, разделение оценок, доли прохождения дополнительной проверки, доля напрасной работы, суммы и цены — иллюстративные значения для коммутатора среднего размера, а не данные какой-либо реальной сети.

Случайность: генератор mulberry32 с seed; используемые распределения — равномерное, экспоненциальное (обратная CDF), нормальное (Бокса — Мюллера), Пуассона (Кнут). Seed показан и им можно делиться.

Источники

  1. Teletraffic Engineering Handbook — Erlang C formula; waiting-time distribution for M/M/n, FCFS — ITU-D Study Group 2 Question 16/2 (V. B. Iversen), 2005
  2. M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013
  3. J. D. C. Little — A Proof for the Queuing Formula: L = λW — Operations Research 9(3):383–387, 1961
  4. Site Reliability Engineering — Ch. 22 Addressing Cascading Failures (retries, randomized exponential backoff, load shedding, work on requests past their deadline) — Beyer, Jones, Petoff, Murphy (eds.), O'Reilly, 2016
  5. N. Bronson, A. Aghayev, A. Charapko, T. Zhu — Metastable Failures in Distributed Systems — HotOS ’21, ACM, 2021
  6. T. Fawcett — An introduction to ROC analysis — Pattern Recognition Letters 27(8):861–874, 2006
  7. R. J. Bolton, D. J. Hand — Statistical Fraud Detection: A Review — Statistical Science 17(3):235–255, 2002
  8. C. Elkan — The Foundations of Cost-Sensitive Learning — IJCAI 2001, 2001
  9. ISO 8583-1:2003 Financial transaction card originated messages — Interchange message specifications — Part 1 (authorization, reversal messages) — ISO/TC 68/SC 9, 2003
  10. Commission Delegated Regulation (EU) 2018/389 — RTS on strong customer authentication, Annex: reference fraud rates (0.13 % for remote card payments up to EUR 100) — Official Journal of the European Union, 2018
  11. N. L. Johnson, S. Kotz, N. Balakrishnan — Continuous Univariate Distributions, Vol. 1 (lognormal distribution, partial moments) — Wiley, 1994

Кто этим занимается профессионально

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