Przeciwdziałanie oszustwom i anty-botom w gamowaniu opartym na ML
1) Dlaczego oddzielny system zwalczania nadużyć finansowych dla gier hazardowych
Gamyfikacja pobudza aktywność (misje, żetony, kosmetyki), co oznacza, że prowokuje:- boty (skrypty misji, tokeny/oceny gospodarstwa);
- wielofunkcyjne/zmowy (oszustwa zespołowe, nagrody za „rzucanie”);
- emulatory/urządzenia korzeniowe (manipulacja klientem);
- mission exploit (cykle, w których postęp idzie bez prawdziwej gry).
Celem zwalczania nadużyć finansowych jest utrzymanie uczciwości, a nie przegrzanie UX, zachowanie prywatności/regulacji i utrzymanie zrównoważonej gospodarki promo.
2) Sygnały i funkcje (co liczyć)
Urządzenie i środowisko
Certyfikacja integralności klienta (mobile/web), funkcje emulatora/korzenia, niestandardowy profil WebGL/Canvas.
Odcisk palca urządzenia (bez PII): kombinacje agenta użytkownika, czcionki, grafika, czas renderowania.
Biometria behawioralna
Szybkość kliknięć/wycieków, gładkość krzywych, mikropauzja, zmienność trajektorii.
„Ludzkie” hałasy: wstrząs kursora, przewijanie mikrodrafu, rozkład odstępów (lognormalność).
Gra i wzory misji
Powtarzające się cykle o „doskonałej” długości, nienormalnie stabilnych szybkościach (spin/min).
Wąskie okna aktywności (na przykład dokładnie co 10 minut), natychmiastowe zakończenie zadań wielostopniowych.
Sygnały wykresowe i sieć
Mecze IP/AS, wspólne źródła płatności (w kruszywach), klastry przyjaźni/zaproszeń.
Wspólny udział w turniejach z „grą wzdłuż” (dziwne korelacje wyników).
Ekonomia/Promo
Nieproporcjonalna monetyzacja na misjach z żetonami, ostre wnioski po aptece.
RG/Kontekst
Bardzo długie sesje bez mikro-pauz (bot-sign), nocne „przenośniki”.
3) Model stosu (jak złapać)
1. Wykrywacze anomalii (bez nadzoru):- Isolation Forest, One-Class SVM, Autoencoder dla behawioralnych i urządzeń.
- Zastosowanie: Wczesne „podejrzenie punktacji” bez etykiety „winny”.
- Wykrywanie przez Wspólnotę (Louvain/Leiden) + oznaki centralności (betweeness, degree).
- GNN (GraphSAGE/GAT) dla klasyfikacji węzłów/krawędzi (zmowa, gospodarstwa rachunkowe).
- Zwiększanie gradientu/transformatory tabelaryczne na znacznikach z poprzednich badań.
- Skalibrowane prawdopodobieństwa → zaufanie do podejmowania decyzji.
- User2Vec według kolejności zdarzeń; odległości → klastry bot.
- Wybór minimalnej bariery (łatwa kontrola vs hard verification) w kontekście ryzyka × UX.
4) Silnik polityczny
Pomysł: ML daje risk_score, polityka decyduje „co robić” biorąc pod uwagę gospodarkę i UX.
Przykład poziomów:- R0 (zielony): nieograniczony; bierne monitorowanie.
- R1 (żółty): miękkie „wyzwania ludzkości” (mikro-interakcje), ograniczona czapka misji.
- R2 (pomarańczowy): sprawdzenie urządzenia, dodatkowa kontrola tempa, redukcja emisji żetonów.
- R3 (czerwony): Progress block on controversial missions, manual moderation/temporary award freeze.
- R4 (czarny): przegląd zakazu/CCR (jeżeli jest to uzasadnione i regulacyjne).
Kierowcy przejściowi: zagregowane ryzyko, flagi zmowy, skargi, sygnał od dostawców.
5) Sprawiedliwe bariery bez zbędnych tarć
Niewidoczne kontrole: biometria zachowań w tle, zaświadczenie środowiskowe.
Ludzkość-działanie zamiast captcha: mini-gest (losowy wzór przeciągania, suwak impromptu), okno czasowe z mikropazem.
WebAuthn/Passkeys dla „drogich” czynności: bezpieczne urządzenie/tożsamość bez hasła.
Bariery reaktywne: włączają się tylko w czasie anomalii, nie dla wszystkich.
6) Wzorce antymisyjne (jak zapobiec „gospodarstwu”)
Zmienność wymagań: szereg działań w różnych dostawcach/godzinach/stawkach.
Cooldowns i zmiany treści: zakaz tego samego typu cykli z rzędu.
Przypadkowe zdarzenia kontrolne: małe kontrole „ludzkie” w trakcie długiej misji.
Ograniczenie równoległego postępu: aby gospodarstwa nie zamykały jednocześnie kilkudziesięciu misji.
7) Zgodność, prywatność, przejrzystość
Minimalizacja danych: tylko niezbędne funkcje, przechowywanie anonimowych agregatów.
Wyjaśnienie: kody uzasadnienia dla kontrowersyjnych działań (na przykład „anormalna prędkość + klaster wykresu”).
Postępowanie odwoławcze: zrozumiała forma odwołania; szybka rewizja.
Polityka RG: z oznakami zmęczenia zmniejszamy obciążenie, a nie „naciskamy” na gracza.
8) Wskaźniki sukcesu i opiekunowie gospodarki
Wskaźnik połowu bota/zmowy.
False Positive Rate (próg Opóźnienie w akcji. Emisja do GGR i nagrody ROI: ochrona płaci za siebie. Skarga/Stawka odwołania Skok odwoławczy. Wpływ na UX: konwersja misji, mute/opt-out z personalizacji, NPS dla uczciwości. 9) A/B i walidacja offline 1. Misje anty-konsumpcyjne: zmienność vs basic. 2. Kontrola ludzkości: niewidzialny gest vs classic captcha. 3. próg risk_score: miękki/twardy (różne TPR/FPR). 4. Filtry wykresu: z/bez GNN, tylko zasady wykresu. 5. Orkiestrator bariery: statyczny vs kontekstowy bandyta. 10) Pseudokoda (punktacja → polityka → działanie) 11) szablony JSON (zasady i dziennik) 12) Proces reagowania i redtiming Monitorowanie w czasie rzeczywistym: deski rozdzielcze do kolców ryzyka, elementy wykresu. 1. wykrywanie anomalii → 2) zmniejszenie emisji/zamrożenie kontrowersyjnych nagród → 3) pobieranie próbek kłód/wykresów → 4) łata zasad/modeli → 5) retro ponowne obliczenie uczciwych nagród. Czerwony zespół/podziemne laboratorium: symulacja botów (obfuscation, randomization), ataki na modele (przykłady przeciwne). Kanaryjskie wydania: wprowadzenie nowych barier dla 5-10% ruchu. 13) UX i komunikacja Neutralny, pełen szacunku ton: „Niestandardowe działania zauważone - potwierdzić, że jesteś człowiekiem (30 sekund)”. Opcje: „powtórz później”, „wsparcie kontaktowe”, „odwołanie”. Dostępność: Alternatywy dla osób z ograniczeniami motorycznymi/wzrokowymi. Przejrzystość: Jak chronić stronę Integralność z zasadami ogólnymi (bez recept na nadużycia). 14) Architektura techniczna (w skrócie) Zbiór wydarzeń: Kafka/Redpanda, schematy 'mission _ progress', 'input _ stream', 'device _ attest'. Fichestor: online (ms-latency) + offline (partie 1-6 h). Usługi ML: „ocena ryzyka”, „obsługa wykresu”, „silnik polityczny”. Przechowywanie dowodów: dzienniki niezmienne (WORM), szyfrowanie w spoczynku i w kanale. Bezpieczeństwo: nasiona bezpieczeństwa RNG na serwerze; klient - tylko wizualizacja. 15) Lista kontrolna przed zwolnieniem Antyfraud/antiboot w gamingu jest warstwą ML + wykresy + uczciwe bariery, które są zawarte dokładnie tam, gdzie jest to potrzebne. Biometria behawioralna i wykrywanie anomalii dają wczesny sygnał, analiza wykresu ujawnia zmowy, orkiestra wybiera minimalną wystarczającą kontrolę. Dzięki przejrzystości, prywatności i poszanowaniu UX, system zachowuje integralność konkurencji, chroni gospodarkę nagród i nie przekształca produktu w „kurs przeszkód” dla sumiennych graczy.
python def score_request (użytkownik, wydarzenie):
x = build_features (użytkownik, zdarzenie) # urządzenie, zachowanie, charakterystyka wykresu r_unsup = oc_svm. score (x) # anomaly r_sup = gbdt. predict_proba (x) [:, 1] # prawdopodobieństwo oszustwa r_graph = gnn_node_prob (użytkownik. node_id) # ryzyko wykresu = kalibrat (r_unsup, r_sup, r_graph) # ryzyko zwrotu kalibracji izotropowej
def decide_action (ryzyko, kontekst):
kontekst: znaczenie działania, wartość nagrody, współczynnik UX, jeśli ryzyko <0. 25: zwrot „PERMIT”
jeśli ryzyko <0. 45: zwrot „SOFT_CHECK” # ludzkość-gest, mikro-pauza, jeśli ryzyko <0. 65: powrót „DEVICE_ATTEST” # integrity + sниi. misje limitowane, jeśli ryzyko <0. 85: powrót' HOLD_REWARDS „# zamrozić, aby przejrzeć powrót' BAN_OR_REVIEW”
def enforce (działanie, użytkownik):
minimalna wymagana bariera, jeśli działanie = = "SOFT_CHECK": trigger_humanity_challenge (użytkownik)
elif action = = "DEVICE_ATTEST": run_integrity_attestation (user. urządzenie)
elif action = = "HOLD_REWARDS": freeze_rewards (użytkownik, czas trwania =" 72h")
elif action = = "BAN_OR_REVIEW": open_case_to_fraud_ops (użytkownik)
Dziennik decyzji (do audytu/odwołania):
json
{
"policy_id": "anti_fraud_s1," "poziomy": [
{„nazwa „: „R0 „,” risk _ lt”: 0. 25, „działanie „:” permit”}, {„name „: „R1 „,” risk _ lt”: 0. 45, „action „: „soft _ check”}, {„name „: „R2 „,” risk _ lt”: 0. 65, „działanie „: „device _ attest _ and _ cap”}, {„name „: „R3 „,” risk _ lt”: 0. 85, „action „: „hold _ rewards _ review”}, {„name „: „R4 „,” risk _ gte”: 0. 85, „działanie „: „ban _ or _ kyc _ review”}
], „caps': {” missions _ per _ day _ r2 „: 2,” token_emission_multiplier_r2": 0. 5}, "appeal": {"enabled": true ", sla_hours": 48}
}json
{
"decision_id":"dec_2025_10_24_1415," "user_id":"u_45219," "risk_components":{"unsup":0. 38, „sup”: 0. 41, „wykres”: 0. 57} ", final_risk":0. 51, „action „: „device _ attest _ and _ cap”, „reasons „: [„abnormal _ click _ tempo”,” graph _ cluster _ c17”], „expires_at":"2025-10-27T14:15:00Z”
}