ML əsaslı gamifikasiyada antifrod və antibot
1) Niyə oyunlaşdırma üçün ayrı antifrod sistemi
Geymifikasiya aktivliyi stimullaşdırır (missiyalar, tokenlər, kosmetika), yəni provokasiya edir:- botlar (missiyaların yerinə yetirilməsi skriptləri, tokenlərin/reytinqlərin ferması);
- multiakkaunt/kollyuziyalar (komanda bükülməsi, mükafatların «atılması»);
- emulyatorlar/rut cihazları (müştəri manipulyasiyası);
- missiyaların istismarı (real oyun olmadan irəliləyişin getdiyi dövrlər).
Anti-frod məqsədləri: dürüstlüyünü qorumaq, UX-ni həddindən artıq qızdırmamaq, gizlilik/tənzimləməyə riayət etmək və iqtisadiyyatı davamlı saxlamaq.
2) Siqnallar və fiçlər (saymaq üçün)
Cihaz və mühit
Müştəri bütövlüyünün sertifikatlaşdırılması (mobile/web), emulator/root əlamətləri, standart olmayan WebGL/Canvas profili.
Device fingerprint (PII olmadan): User-Agent kombinasiyaları, şriftlər, qrafiklər, render vaxtı.
Davranış biometrikası
Klik/tuşların sürəti, əyrilərin hamarlığı, mikropauzluq, trayektoriyaların dəyişkənliyi.
«İnsan» səs-küyü: kursorun titrəməsi, skrolun mikrodreyfi, intervalların paylanması (loqnormallıq).
Oyun və missiya nümunələri
«İdeal» uzunluğun təkrarlanan dövrləri, anormal sabit temp (spin/dəq).
Dar fəaliyyət pəncərələri (məsələn, hər 10 dəqiqədən bir), çox mərhələli axtarışların ani tamamlanması.
Graf siqnalları və şəbəkə
IP/AS uyğunluqları, ümumi ödəniş mənbələri (aqreqatlarda), dostluq/dəvət klasterləri.
«Alt oyun» ilə turnirlərdə birgə iştirak (qəribə nəticə korrelyasiyaları).
İqtisadiyyat/Promo
Tokenlərlə missiyalarda qeyri-mütənasib monetizasiya, farmadan sonra kəskin nəticələr.
RG/kontekst
Mikropauzsuz ultra uzun sessiyalar (bot əlaməti), gecə «konveyerləri».
3) Model yığını (tutmaq kimi)
1. Anomaliya detektorları (unsupervised):- İzolation Forest, One-Class SVM, davranış və cihazlar üçün Autoencoder.
- Istifadə: «günahkar» etiketi olmadan erkən «şübhə».
- Community detection (Louvain/Leiden) + mərkəzlilik əlamətləri (betweenness, degree).
- GNN (GraphSAGE/GAT) qovşaqların/qovşaqların (kollyuziyalar, hesablar fermaları) təsnifatı üçün.
- Gradient Boosting/Tabular Transformers keçmiş araşdırmalara görə.
- Calibrated probabilities → qərar qəbul etimad.
- User2Vec ardıcıllığına görə; → «bot-klasterlər» məsafələri.
- UX × riski kontekstində minimum baryerin seçilməsi (asan çek vs sərt yoxlama).
4) Qaydaların orkestri (policy engine)
Fikir: ML risk_score verir, policy iqtisadiyyatı və UX-i nəzərə alaraq «nə etmək» qərarına gəlir.
Səviyyələrin nümunəsi:- R0 (yaşıl): məhdudiyyətsiz; passiv monitorinq.
- R1 (sarı): yumşaq «humanity-challenge» (mikrodalğalar), missiyalar azaldıldı.
- R2 (narıncı): device-check, əlavə temp nəzarət, token emissiyasını azaltmaq.
- R3 (qırmızı): mübahisəli missiyalar üzrə tərəqqi bloku, əl moderasiyası/mükafatların müvəqqəti dondurulması.
- R4 (qara): ban/KUS-revyu (tənzimləyici məqbul və əsaslandırılırsa).
Keçid sürücüləri: yığılmış risk, kollyuziya qraf bayraqları, şikayətlər, provayderlərdən gələn siqnal.
5) Lazımsız sürtünmə olmadan dürüst maneələr
Invisible checks: fon davranış biometrikası, ətraf mühitin sertifikatlaşdırılması.
Kapça əvəzinə Humanity-action: mini jest (təsadüfi drag-pattern, improvized slider), mikropauzlu vaxt pəncərəsi.
«Bahalı» hərəkətlər üçün WebAuthn/Passkeys: parol olmadan cihaz/şəxsiyyəti təsdiqləmək.
Reaktiv maneələr: hər kəs üçün deyil, yalnız anomaliyalar anında işə salınır.
6) Missiyaların anti-nümunələri («əczaçılıq» verməmək üçün necə)
Tələblərin dəyişkənliyi: müxtəlif provayderlərdə/vaxtlarda/dərəcələrdə bir sıra hərəkətlər.
Kuldaunlar və məzmun dəyişikliyi: ardıcıl olaraq eyni tipli dövrlərin qadağan edilməsi.
Təsadüfi nəzarət hadisələri: uzun bir missiyanın ortasında kiçik «insan» yoxlamaları.
Paralel irəliləyişlərin məhdudlaşdırılması: fermaların eyni vaxtda onlarla missiyanı bağlamaması.
7) Uyğunluq, gizlilik, şəffaflıq
Data minimizasiya: yalnız zəruri xüsusiyyətlər, anonim aqreqatların saxlanması.
Explainability: mübahisəli hərəkətlər üçün reason-codes (məsələn, «anormal sürət + qrafik-klaster»).
Appeal prosesi: apellyasiya apellyasiyasının aydın forması; sürətli reviziya.
RG siyasəti: yorğunluq əlamətləri ilə oyunçunu «itələmək» deyil, yükü azaltmaq.
8) Uğur metrikası və iqtisadiyyat mühafizəçiləri
Bot/Collusion catch rate (əsas mükafatları almadan əvvəl müəyyən edilmiş pay).
False Positive Rate ( Lag to Action (anomaliyadan ölçüyə qədər). Emission to GGR və Prize ROI: müdafiə özünü ödəyir. Complaint/Appeal rate и Appeal overturn rate. Impact on UX: missiyaların dönüşümü, personalizasiyadan mute/opt-out, dürüstlük NPS. 9) A/B və oflayn validasiya 1. Anti-istifadə missiyaları: variativlik vs əsas. 2. Humanity çek: görünməz jest vs klassik kapça. 3. risk_score həddi: yumşaq/sərt (müxtəlif TPR/FPR). 4. Qraf filtrləri: s/GNN olmadan, yalnız qraf qaydaları. 5. maneələr orkestrator: statik vs kontekstli quldur. 10) Psevdokod (skoring → siyasət → fəaliyyət) 11) JSON şablonları (qaydalar və jurnal) 12) Reaksiya prosesi və redtiminq Real vaxt monitorinqi: risklərin artması, qrafik komponentlər üzrə daşbordlar. 1. anomaliya detekti → 2) mübahisəli mükafatların emissiyasının azaldılması/dondurulması → 3) log/qrafların seçilməsi → 4) qaydaların/modellərin yaması → 5) ədalətli mükafatların retro-yenidən hesablanması. Red Team/yeraltı laboratoriya: botların simulyasiyası (obfusion, randomization), modellərə hücumlar (adversarial examples). Kanarya buraxılışları: trafikin 5-10% -i üçün yeni maneələr çıxarırıq. 13) UX və kommunikasiya Neytral, hörmətli ton: «Qeyri-standart hərəkətlər - insan olduğunuzu təsdiqləyin (30 san)». Seçimlər: «sonra təkrarlamaq», «dəstək əlaqə», «apellyasiya». Əlçatanlıq: Motor/görmə məhdudiyyəti olan insanlar üçün alternativlər. Şəffaflıq: Ümumi prinsiplərlə (sui-istifadə üçün reseptlər olmadan) «Dürüstlüyü necə müdafiə edirik» səhifəsi. 14) Texniki memarlıq (qısaca) Hadisələrin toplanması: Kafka/Redpanda, 'mission _ progress', 'input _ stream', 'device _ attest' sxemləri. Fichestor: online (ms-gizli) + oflayn (batches 1-6 h). ML xidmətləri: 'risk-scorer', 'graph-service', 'policy-engine'. Dəlil saxlama: dəyişməz qeydlər (WORM), rahat və kanalda şifrələmə. Security: serverdə RNG secury sides; müştəri - yalnız vizuallaşdırma. 15) Buraxılışdan əvvəl çek siyahısı Geymifikasiyada antifrod/antibot ML + qraflar + düzgün maneələr layıdır. Davranış biometrikası və anomaliya-detekt erkən siqnal verir, qrafik-analitika kollyuziyaları açır, orkestrator minimal kifayət qədər yoxlama seçir. Şəffaflıq, gizlilik və UX-ə hörmətlə sistem rəqabətin dürüstlüyünü qoruyur, mükafatların iqtisadiyyatını qoruyur və məhsulu vicdanlı oyunçular üçün «maneə zolağına» çevirmir.
python def score_request(user, event):
x = build_features (user, event) # cihaz, davranış, qrafik xüsusiyyətlər r_unsup = oc_svm. score (x) # anomallıq r_sup = gbdt. predict_proba (x) [:, 1] # frod ehtimalı r_graph = gnn_node_prob (user. node_id) # qrafik risk = calibrate (r_unsup, r_sup, r_graph) # izotrop kalibrləmə return risk
def decide_action(risk, context):
kontekst: hərəkətin əhəmiyyəti, mükafatın dəyəri, UX faktoru if risk <0. 25: return "ALLOW"
if risk < 0. 45: return "SOFT_CHECK" # humanity-gesture, micro-pause if risk < 0. 65: return "DEVICE_ATTEST" # integrity + сниж. cap missiyaları if risk <0. 85: return «HOLD_REWARDS» # return «BAN_OR_REVIEW»
def enforce(action, user):
minimum baryer if action = = "SOFT_CHECK": trigger_humanity_challenge (user)
elif action == "DEVICE_ATTEST": run_integrity_attestation(user. device)
elif action == "HOLD_REWARDS": freeze_rewards(user, duration="72h")
elif action == "BAN_OR_REVIEW": open_case_to_fraud_ops(user)
Log Solutions (audit/apellyasiya üçün):
json
{
"policy_id": "anti_fraud_s1", "tiers": [
{"name":"R0","risk_lt":0. 25,"action":"allow"}, {"name":"R1","risk_lt":0. 45,"action":"soft_check"}, {"name":"R2","risk_lt":0. 65,"action":"device_attest_and_cap"}, {"name":"R3","risk_lt":0. 85,"action":"hold_rewards_review"}, {"name":"R4","risk_gte":0. 85,"action":"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,"graph":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"
}