← Kasyno/🛡️ Uczciwa Losowość
🛡️

Uczciwa Losowość

Provably Fair — każdy wynik odtworzysz samodzielnie w przeglądarce

Wyniki gier nie są losowane na ślepo — są obliczane z trzech wartości: Server Seed (nasz, tajny podczas gry), Client Seed (Twój, możesz go zmienić) i Nonce (numer zakładu). Po ujawnieniu Server Seeda możesz odtworzyć każdy zakład niezależnie — kod liczący jest poniżej i działa lokalnie.

</> Algorytm (silnik v2)

block_r = HMAC_SHA256(serverSeed, clientSeed + ":" + nonce + ":" + r)
bajty pobierane po 4:
  float  = b0/256 + b1/256² + b2/256³ + b3/256⁴        → [0, 1)
  uint32 = (b0<<24)|(b1<<16)|(b2<<8)|b3                  (big-endian)
  int(min,max) = rejection sampling → rozkład IDEALNIE jednostajny
commitment: serverSeedHash = SHA-256(serverSeed)

HMAC-SHA256 · rejection sampling eliminuje bias modulo · hash zobowiązania: SHA-256 · weryfikacja zawsze możliwa offline

Uruchamiam test referencyjny silnika...
Ładowanie seedów...
Weryfikator wyniku (liczony w Twojej przeglądarce)

Ten panel nie pyta serwera o wynik — odtwarza go lokalnie przez WebCrypto (HMAC-SHA256). Możesz odłączyć internet po wczytaniu strony i nadal zweryfikować zakład.

🔬
Fairness Studio
Interaktywne laboratorium — testuj RNG sam w przeglądarce, histogram Monte Carlo, live coin flip
❓ Jak to działa? (szczegóły)

1. Zobowiązanie (commitment). Przed grą pokazujemy Ci tylko SHA-256(serverSeed). Nie znając serverSeeda, nie przewidzisz wyniku — ale my też nie możemy go później podmienić, bo hash już został opublikowany.

2. Strumień bajtów. Dla każdego zakładu liczymy HMAC-SHA256(serverSeed, `${clientSeed}:${nonce}:${r}`). Jeśli gra potrzebuje więcej losowości (np. tasowanie talii), zwiększamy r i doklejamy kolejny blok — wszystko deterministycznie odtwarzalne.

3. Liczba z bajtów. Cztery bajty składamy w float z przedziału [0,1) (jak w Stake) lub w uint32. Dla liczby całkowitej z zakresu używamy rejection sampling: odrzucamy „ogon”, który nie dzieli się równo przez zakres. Dzięki temu np. kostka 1–6 jest idealnie jednostajna, bez biasu modulo.

4. Ujawnienie i weryfikacja. Gdy rotujesz seedy, stary serverSeed jest publikowany. Wklejasz go (z clientSeedem i nonce) do weryfikatora powyżej — kod liczy wszystko w Twojej przeglądarce przez WebCrypto i porównuje z hashem oraz deklarowanym wynikiem. Możesz nawet odciąć internet — i tak się policzy.

Wynik to czysta matematyka na serverSeedzie, clientSeedzie i nonce — po opublikowaniu hasha nie da się manipulować rezultatami po złożeniu zakładu.