Losowe fakty sekwencji RNG
Przypadkowa sekwencja nie jest „chaosem”, ale strumieniem wartości o możliwych do zweryfikowania właściwościach. W systemach gier uczciwość spinów, dystrybucji, mnożników zależy od jakości tego strumienia. Poniżej przedstawiono kluczowe fakty dotyczące tego, czym powinna być sekwencja RNG i jak jest ona sprawdzana.
1) Niezależność jest ważniejsza niż „piękno”
i.i.d. (niezależny i równie rozdzielony) jest złotym standardem.
Brak widocznych wzorów nie gwarantuje losowości; testy na korelacje i seryjność są ważne, a nie „przez oko”.
2) Dystrybucja jest określona protokołem
W strumieniu „surowym” często przyjmuje się jednorodność (np. 32-bitowe słowa są równie prawdopodobne).
W grze, jednolite numery są mapowane na wydarzenia: symbole gniazda, karty z „wirtualnego pokładu”, sektory kół. Prawidłowe odwzorowanie = brak martwych stref i brak zniekształceń.
3) Zawsze jest okres - pytanie ma swoją długość
PRNG ma skończony okres (cykliczność). Dobry generator ma okres tak długi, że w rzeczywistej eksploatacji nie będzie „omijać” go.
Ważne jest, aby uniknąć stanu/nonce ponownie używać mecze, w przeciwnym razie następnie powtórzy.
4) Nasiona - korzeń nieprzewidywalności
Nieprawidłowa inicjalizacja przez siedzenie daje powtarzalne lub przewidywalne wyjścia.
Niezawodny system wykorzystuje entropię wielokanałową i okresową (udokumentowaną).
5) Entropia nie jest taka sama jak „hałas”
Bit entropia mierzy jak nieprzewidywalny jest przepływ.
Entropia sprzętowa (szum) jest zwykle trawiona przez kryptograficzny DRBG (CSPRNG) w celu wytworzenia szybkiego i trwałego strumienia.
6) p-wartości nie powinny być „piękne”
W bateriach testowych (częstotliwości, serie, „urodziny”, szeregi macierzy itp.) wartości p powinny być równomiernie rozłożone na [0; 1] zamiast "zbór około 0.
Jeden „czerwony” test nie dowodzi problemu: wziąć pod uwagę mnogość kontroli i powtórzyć przebieg.
7) Lokalny „pasek” nie jest błędem
W dowolnej naprawdę przypadkowej sekwencji występują klastry (długa seria zer/jedynek, powtórzenia znaków).
Paski są normalne; ryzyko systemowe - trwałe zniekształcenia w dużych oknach.
8) Liniowość jest ukrytym wrogiem
Proste generatory liniowe formularza LCG mogą przejść podstawowe testy, ale są „wlewane” na złożone (ranking matrycy, złożoność liniowa, DFT).
W branży gier standardem jest kryptograficzny DRBG (np. na szyfrach blokowych/hashach).
9) Mapowanie musi być stacjonarne i wersjonowane
Każda zmiana w tabelach meczowych „number → event” = nowa wersja gry i ponowne sprawdzenie.
Dobrą praktyką jest ciężko naprawić mapowanie z sum hash i podpisów cyfrowych.
10) „Prawie wygrywając” - o interfejsie, nie o strumieniu
Near-miss jest częścią dramatu wizualnego; dzielenie się i zachowanie są ustawione przez matematykę gry.
RNG daje liczbę, a interfejs opowiada historię - te warstwy muszą być oddzielone.
11) Powtarzalność
Dla audytu, każda runda jest rejestrowana tak, aby można było odtworzyć wynik (okrągły ID, sid/nonce, hashes).
To nie czyni przepływ przewidywalny w czasie gry: tajemnice (sid) i stany są chronione.
12) „Dobre” sekwencje na żywo na prod pod nadzorem
Po zwolnieniu ważne jest monitorowanie: czy RTP zbiega się do certyfikowanego, czy jest dryf w częstotliwościach symboli, powtórzeń, i „gorące” numery.
Wpisy dotyczące progów → izolacja tytułów i dochodzenie techniczne.
13) Status i przepływy - oddzielne
Różne gry/tabele/instancje używają niezależnych stanów RNG.
Nie można „podzielić” jednego strumienia na kilka produktów - pojawiają się korelacje krzyżowe.
14) Bezpieczeństwo do przodu/do tyłu jest ważniejsze niż się wydaje
Przy kompromisie obecnego stanu dobra CSPRNG nie powinna ujawniać przeszłości (oporu za) i przyszłego (bezpieczeństwa naprzód) sekwencji.
Osiąga się to za pomocą krypto prymitywnych i regularnych reseeingu.
15) „Okazało się sprawiedliwe” dowodzi niekwalifikowalnej substytucji
Commit revil (server sid hash → disclosure) + client sid daje graczowi możliwość ponownego obliczenia wyniku.
Gwarantuje to spójność, ale nie jest substytutem audytu matematyki i mapowania gier.
Jak źle wygląda konsystencja (znaki)
Powtórz strony/nonce → powielaj wyniki z tymi samymi wejściami.
Stabilny skew częstotliwości w dużych oknach (ani jednego klastra).
Wykrywalne okresy w DFT, „dips” w TestU01/BigCrush.
Drift empirycznego RTP z zadeklarowanych dla rozsądnych ilości.
Jak wygląda dobra konsystencja
Nawet częstotliwości i serii w odstępach ufności; jednolite wartości p.
Brak korelacji między sąsiednimi i odległymi elementami.
Empiryczna konwergencja częstotliwości RTP/event do modelu.
Zerowa różnica między binarnym a certyfikowanym binarnym (kontrola skrótu).
Mini-kołyski
Dla studiów/dostawców
Użyj CSPRNG + udokumentowanego reseeingu z entropii wielokanałowej.
Oddzielne stany według strumienia/gry; przechowywać dziennik nonce.
Wyścig NIST/Dieharder/TestU01, plus masymulacje mapowania, aż skończy się RTP.
Fix mapowanie i binaries dla podpisu cyfrowego; zakazać zwolnień bez podpisu.
Ustaw alerty do metryk dryfujących w prod; plan izolacji i odwrócenia.
Dla podmiotów gospodarczych
Sprawdź wersje gry i hashes przed certyfikowanymi.
Monitoruj RTP/częstotliwości/powtórzenia; utrzymywać progi i automatyczne wpisy.
Przechowuj niezmienne okrągłe dzienniki z możliwością szybkiego eksportu biletem.
Dla graczy
Sprawdź RTP, zasady, wersja, max wygrać ekran informacji.
Nie mylić klastrów z „skręcaniem”: paski są normalne.
W sporze, poproś o rundę ID i ekstrakt - wynik należy odtworzyć.
Losowa sekwencja RNG to artefakt inżynieryjny o możliwych do zweryfikowania właściwościach: niezależność, prawidłowa dystrybucja, długi okres, kompetentna bocznica i odporność na kompromis. W grach, uczciwość powstaje, gdzie wysokiej jakości strumień jest podłączony do prawidłowych procedur odwzorowania i kontroli: certyfikacja przed zwolnieniem, dzienniki i monitorowanie po. Gdy wszystkie trzy warstwy są na miejscu, „losowość” zmienia się z obietnicy w niezawodną praktykę.