Crash oyunun nəticəsini yoxlamaq: alqoritm, təhlükəsizlik

1) Yoxlamanın məqsədi: tam olaraq nə təsdiq edirsiniz

Dəyişməzlik: operator sizin bahisinizdən sonra nəticəni dəyişə bilmədi (server cid hash kommiti hesabına).

Oynama qabiliyyəti: giriş məlumatları ilə oyun göstərdiyi eyni çoxluğu əldə edirsiniz.

Prosedurun bütövlüyü: mesaj formatı, increment 'nonce', yuvarlaqlaşdırma qaydası və «house edge» ciddi spesifikasiyaya görə tətbiq olunur.

2) Yoxlanılması mümkün olmayan məlumatlar

1. Server Seed Hash (commit) - müvafiq «Server Seed» istifadə edilməzdən əvvəl dərc olunur.

2. Server Seed (daha sonra/dövrün sonunda açılır).

3. Client Seed (sizin led; özünüz soruşursunuz və ya platforma yaradır).

4. Nonce (cari 'Server Seed' çərçivəsində bahis sayğacı).

5. Heşləmə alqoritmi (adətən 'HMAC-SHA256' və ya 'SHA-256').

6. Mesaj formatı (məsələn: '' : '), dəqiq ayırıcılar/registr/kodlaşdırma.

7. Mapping formula hasha → çarpan (və yuvarlaqlaşdırma qaydası/minimum).

💡 Bütün spesifikasiya operatorda Fairness/Provably Fair bölməsində olmalıdır. Əgər bir şey yoxdursa, bu qırmızı bayraqdır (bax § 10).

3) Yoxlama alqoritmi (7 addım)

1. Kommiti müqayisə edin: 'SHA-256 (ServerSeed)' hesablayın və dərc olunmuş 'ServerSeedHash' ilə müqayisə edin.

2. Mesaj toplayın: platforma formatında (məsələn, 'msg = ClientSeed +': '+ Nonce').

3. Raund Hash hesablayın:
  • при `HMAC-SHA256`: `RoundHash = HMAC_SHA256(key=ServerSeed, msg=message)`;
  • 'SHA-256' ilə: 'RoundHash = SHA256 (ServerSeed | | message)' və ya spesifikasiyada göstərildiyi kimi.
  • 4. Təsadüfi çıxarın: ilk 'k' biti (tez-tez 52) → bütün 'r', sonra 'u = r/2 ^ k' götürün.
  • 5. Mappinq düsturunu tətbiq edin: 'u' çoxaltıcıya çevirin (house edge/xüsusi hallar oyun sənədlərinə əsasən nəzərə alınır).
  • 6. Oyun qaydalarına görə yuvarlaqlaşdırın (məsələn, 2 işarəyə qədər, ən azı 1. 00 × və s.).
  • 7. Tarixdəki turun nəticəsi ilə müqayisə edin. Uyğunluq = düzgün dürüstlük.

4) Pseudo-kod (Python/JS-ə uyğunlaşdırıla bilər)

python
Buraya platformanızdan dəqiq mapping düsturunu stub_mapping ()

import hmac, hashlib, math

def round_hash(server_seed: bytes, client_seed: str, nonce: int) -> bytes:
message = f «{client _ seed}: {nonce}» .encode («utf-8») formatına baxın
return hmac. new(server_seed, message, hashlib. sha256). digest () və ya hashlib. sha256(...)

def take_u_from_hash(h: bytes, k_bits=52) -> float:
k yaşlı bit bütün r kimi götürün
r = int. from_bytes(h, "big") >> (256 - k_bits)
return r / (1 << k_bits) u в [0, 1)

def stub_mapping(u: float) -> float:
ZAPLUSHKA! Oyununuzun sənədlərindən düsturla əvəz edin
Məsələn, bəzən növün çevrilməsindən istifadə olunur: crash = floor ((const/( r + 1)) 100 )/100
və/və ya nadir məcburi kimi «house edge» 1. 00×. Bu stubu real yoxlamada istifadə etməyin.
return max(1. 00, round(1. 0 / max(1e-12, 1. 0 - u), 2))

def verify(server_seed_hex, server_seed_hash_hex, client_seed, nonce, shown_multiplier):
server_seed = bytes. fromhex(server_seed_hex)
1) Kommit
assert hashlib. sha256(server_seed). hexdigest() == server_seed_hash_hex. lower()
2-3) Hesh raund
h = round_hash(server_seed, client_seed, nonce)
4) u
u = take_u_from_hash(h)
5-6) mappinq + yuvarlaqlaşdırma
calc_mult = stub_mapping(u)
7) müqayisə
return abs(calc_mult - shown_multiplier) < 1e-9

Vacibdir: 'stub _ mapping' əvəzinə platformanızın Fairness bölməsindən dəqiq bir düstur tətbiq edin; əks halda yoxlama düzgün olmayacaq.

5) Xüsusi hallar və sualtı daşlar

Bir turda iki bahis: bir çox 'nonce' platformaları eyni turda olsa belə, hər bir bahis artır (məsələn: A → 'nonce = 42' bahis, B → 'nonce = 43' bahis). Tarixi yoxlayın.

'Client Seed' dəyişdirilməsi: 'nonce' sidi dəyişdirildikdə adətən sıfırlanır (və ya yeni axın başlayır). Platformanızın qaydalarını yoxlayın.

Batchi 'Server Seed': bir 'Server Seed' bir sıra raundlar üçün işləyir, sonra yeni kommit dərc olunur; müxtəlif dövrlərdə toxumları qarışdırmayın.

Dəyirmanlama/minimum: ikinci işarə uyğunsuzluğu - 90% hallarda dəyirmanlama/minimum qaydalarında səhv (məsələn, sabit 1. 00 × xüsusi şərtlərlə).

Kodlaşdırma/boşluqlar: əlavə boşluq/xətt tərcüməsi, səhv registr, UTF-8 yoxlamanı pozur.

6) Tur sürətli yoxlama çek siyahısı

1. 'SHA-256 (ServerSeed)' dərc olunmuş 'ServerSeedHash' ilə üst-üstə düşürmü?

2. 'message' və 'nonce' formatı doğrudurmu?

3. Alqoritm ('HMAC-SHA256 '/' SHA-256') və açar/sahə qaydası ciddi spesifikasiyaya görə tətbiq olunur?

4. Mapping və yuvarlaqlaşdırma sənədlərlə eynidir?

5. Xüsusi hallar nəzərə alınır (nadir «ani qəza», minimum 1. 00 ×, kaplar)?

6. Nəticə oyunun tarixçəsi ilə bir qəpiyə təsadüf edirmi?

7) Nəzarət avtomatlaşdırılması (təcrübə)

Log 'lar: 'client _ seed', 'nonce' ardıcıllığı, vaxt işarəsi, yekun çarpanı saxlayın.

Sampling: «revil» 'Server Seed' sonra təsadüfi 20-50 raund script; uyğunluq faizini qeyd edin (100% olmalıdır).

Reqressiya: Oyun/provayder versiyasını dəyişdirərkən eyni dəsti qaçırın.

İxrac: CSV/JSON-u mənbələrlə saxlayın - bu sizin «audit yolunuzdur».

8) Təhlükəsizlik: səhv etməmək və özünüzü aldatmamaq

Yerli/oflayn yoxlayın: yalnız operatorun veb validatoruna güvənməyin; öz skript saxlamaq.

Tam məlumat paketi olmadan raundlara etibar etməyin: heç bir formula/format yoxdur - heç bir yoxlama yoxdur.

Güclü 'Client Seed': təsadüfi soruşun, vaxtaşırı dəyişdirin (bu RTP-ni artırmır, lakin reproduktivlik üçün sualları istisna edir).

TLS/seanslar: giriş yalnız HTTPS, 2FA, giriş və download tarixi izləmək.

"Server Seed 'i heç kimə verməyin: bu, operator tərəfindən bir müddətdən sonra yayımlanır; sizin vəzifəniz onu əvvəlcədən «əldə etməməyi» yoxlamaqdır.

9) Tipik «yeni gələnlərin səhvləri»

Sahələrin sırası qarışıq ('Nonce: ClientSeed' əvəzinə 'ClientSeed: Nonce').

Hesab sıfırdan vahid əvəzinə (və ya əksinə).

Platformanın bütün turunun heş (global nonce) istifadə olunur, ancaq şəxsi 'nonce' lazımdır.

Banker 's rounding vs floor/ceil.

Artıq açılmış 'Server Seed' ilə deyil, aktiv ilə müqayisə.

10) «Qırmızı bayraqlar» operator

Heç bir ictimai Server Seed Hash dövrü başlamazdan əvvəl.

Siz Client Seed-i təyin edə və ya nonce izləyə bilməzsiniz.

Çoxluqda heş mappinqinin ictimai formulu yoxdur.

Raundların tarixi yoxlama üçün minimum məlumat vermir.

Format və alqoritm bildiriş/spesifikasiya arxivi olmadan dəyişdirildi.

11) Avstraliya konteksti (AU)

Valyuta: qazancların/bahislərin hesabını AUD-da aparın, hekayələrin yüklənməsini saxlayın (dəstək, mübahisəli məsələlər).

Məsuliyyətli oyun (RG): depozit/vaxt limitləri, fasilələr və özünü istisna - vicdanlı tətbiqlərdə mövcuddur; onları istifadə edin.

Platforma təcrübələri: Vicdanlı operatorlarda «Fairness/Provably Fair» bloku yoxlamanın tam təsviri və nümunələrini ehtiva edir; təfərrüatların olmaması başqa bir xidmət seçmək üçün bir səbəbdir.

12) Yekun

Crash oyununun nəticəsinin yoxlanılması dəqiq prosedurdur:
  • «Server Seed Hash» kommitinin yoxlanılması,
  • bərpa 'RoundHash' 'Server Seed', 'Client Seed', 'nonce' və alqoritm,
  • dərc olunmuş mappinq düsturunun və yuvarlaqlaşdırma qaydalarının tətbiqi,
  • yoxlama və oyun tarixində eyni çarpan.

Öz skriptinizi saxlayın, giriş məlumatlarınızı daxil edin və təsadüfi turları vaxtaşırı yoxlayın. Beləliklə, siz sözlə deyil, riyazi olaraq dürüstlüyünüzü təsdiq edirsiniz.

Caswino Promo