RNG Rastgele Dizi Gerçekleri
Rastgele bir dizi "kaos'değil, doğrulanabilir özelliklere sahip bir değer akışıdır. Oyun sistemlerinde, spinlerin, dağıtımların, çarpanların dürüstlüğü bu akışın kalitesine bağlıdır. Aşağıda, RNG dizisinin ne olması gerektiği ve nasıl kontrol edildiği ile ilgili temel bilgiler verilmiştir.
1) Bağımsızlık "güzellik'ten daha önemlidir
I.I.D. (bağımsız ve eşit dağıtılmış) altın standarttır.
Görünür desenlerin yokluğu rastgeleliği garanti etmez; Korelasyon ve serialite testleri önemlidir, "gözle'değil.
2) Dağıtım protokol tarafından belirlenir
"Ham'bir akışta, tekdüzelik genellikle varsayılır (örneğin, 32 bitlik kelimeler eşit derecede olasıdır).
Oyunda, tekdüze sayılar olaylara eşlenir: slot sembolleri,'sanal desteden "kartlar, tekerlek sektörleri. Doğru haritalama = ölü bölge ve bozulma yok.
3) Her zaman bir dönem vardır - soru uzunluğundadır
PRNG'nin sonlu bir periyodu vardır (döngüsellik). İyi bir jeneratörün o kadar uzun bir süresi vardır ki, gerçek operasyonda onu "atlamazsınız".
Durum/nonce yeniden kullanım eşleşmelerinden kaçınmak kritik önem taşır, aksi takdirde tuş tekrarlanır.
4) Tohum - öngörülemezliğin kökü
Koltuk tarafından yanlış başlatma tekrarlanabilir veya öngörülebilir çıkışlar sağlar.
Güvenilir bir sistem çok kanallı entropi ve periyodik yeniden besleme (belgelenmiş) kullanır.
5) Entropi "gürültü'ile aynı şey değildir
Bit entropisi bir akışın ne kadar tahmin edilemez olduğunu ölçer.
Donanım entropisi (gürültü) genellikle hızlı ve kalıcı bir akış üretmek için kriptografik DRBG (CSPRNG) tarafından sindirilir.
6) p-değerleri "güzel" olmamalıdır
Test pillerinde (frekanslar, seriler, "doğum günleri", matris sıraları, vb.), p değerleri eşit olarak dağıtılmalıdır [0; 1] yerine "0 civarında toplanın.
Bir "kırmızı" test sorunu kanıtlamaz: Kontrollerin çokluğunu hesaba katın ve çalışmayı tekrarlayın.
7) Yerel "şerit'bir hata değil
Herhangi bir gerçekten rastgele dizide, kümeler (sıfırların/birlerin uzun serileri, karakterlerin tekrarları) meydana gelir.
Çizgiler normaldir; Sistemik risk - büyük pencerelerde kalıcı bozulmalar.
8) Doğrusallık gizli bir düşmandır
LCG formunun basit doğrusal üreteçleri temel testleri geçebilir, ancak karmaşık olanlara (matris sıralaması, doğrusal karmaşıklık, DFT) "dökülür".
Oyun endüstrisinde standart, kriptografik DRBG'dir (örneğin, blok şifrelerinde/hash'lerde).
9) Haritalama sabit ve sürüm olmalıdır
Maç tablolarında yapılan herhangi bir değişiklik "sayı - olay" = yeni oyun sürümü ve yeniden kontrol.
İyi bir uygulama, hash toplamları ve dijital imzalarla haritalamayı zorlaştırmaktır.
10) "Neredeyse kazanıyor" - arayüz hakkında, akış hakkında değil
Near-miss görsel dramanın bir parçasıdır; Paylaşım ve davranış, oyunun matematiği tarafından belirlenir.
RNG bir sayı verir ve arayüz bir hikaye anlatır - bu katmanlar ayrılmalıdır.
11) Tekrarlanabilirlik ≠ öngörülebilirlik
Bir denetim için, her tur, sonucun yeniden üretilebilmesi için günlüğe kaydedilir (yuvarlak kimlik, sid/nonce, hash'ler).
Bu, oyun sırasında akışı öngörülebilir kılmaz: sırlar (sid) ve durumlar korunur.
12) "İyi" diziler, gözetim altında prod üzerinde yaşar
Serbest bırakıldıktan sonra, izleme önemlidir: RTP'nin sertifikalı olana yakınsayıp yakınsamadığı, sembollerin, tekrarların ve "sıcak" sayıların frekanslarında bir kayma olup olmadığı.
Eşiklerde uyarılar - başlık izolasyonu ve teknik soruşturma.
13) Durum ve akışlar - ayrı
Farklı oyunlar/tablolar/örnekler bağımsız RNG durumları kullanır.
Bir akışı birkaç ürüne "bölemezsiniz" - çapraz korelasyonlar ortaya çıkar.
14) İleri/Geri güvenlik göründüğünden daha önemlidir
Mevcut durumdan ödün verirken, iyi bir CSPRNG, dizinin geçmişini (destek direnci) ve geleceğini (ileri güvenlik) ortaya çıkarmamalıdır.
Bu kripto ilkel ve düzenli yeniden besleme ile elde edilir.
15) "Kanıtlanabilir adil" uygun olmayan ikameyi kanıtlıyor
Commit revil (server sid hash - disclosure) + client sid oyuncuya sonucu yeniden hesaplama fırsatı verir.
Bu tutarlılığı garanti eder, ancak oyun matematiğini ve haritalamayı denetlemenin yerine geçmez.
Kötü tutarlılık neye benziyor (işaretler)
Tarafları/nonce tekrarlayın - sonuçları aynı girdilerle çoğaltın.
Büyük pencerelerde kararlı frekans eğriltme (tek bir küme değil).
DFT'de saptanabilir periyotlar, TestU01/BigCrush'de "dips".
Ampirik RTP'nin makul hacimler için bildirilenden sapması.
İyi tutarlılık neye benziyor
Güven aralıklarında bile frekanslar ve serialite; Tekdüze p değerleri.
Komşu ve uzak elemanlar arasındaki korelasyon eksikliği.
Modele ampirik RTP/olay frekansı yakınsaması.
Üretim ikili ve sertifikalı ikili (hash kontrolü) arasında sıfır fark.
Mini beşikler
Stüdyolar/sağlayıcılar için
Çok kanallı entropiden CSPRNG + belgeli yeniden besleme kullanın.
Akışa/oyuna göre ayrı durumlar; nonce log tutun.
Yarış NIST/Dieharder/TestU01, artı haritalama simülasyonları, RTP bitene kadar.
Dijital imza için eşleme ve ikili dosyaları düzeltin; İmzasız yayınları yasaklayın.
Prod'daki sürüklenme metriklerine uyarılar ayarlayın; İzolasyon ve geri alma planı.
Operatörler için
Oyun sürümlerini ve hash'leri sertifikalı olanlara karşı kontrol edin.
RTP/frekansları/tekrarları izleyin; Eşikleri ve otomatik uyarıları saklayın.
Değiştirilemez yuvarlak günlükleri, biletle hızlı bir şekilde dışa aktarma özelliği ile saklayın.
Oyuncular için
RTP, kurallar, sürüm, maksimum kazanç bilgisi ekranını kontrol edin.
Kümeleri "büküm'ile karıştırmayın: çizgiler normaldir.
Bir anlaşmazlıkta, yuvarlak bir kimlik ve bir ekstre isteyin - sonuç çoğaltılmalıdır.
RNG rastgele dizisi, doğrulanabilir özelliklere sahip bir mühendislik eseridir: bağımsızlık, doğru dağılım, uzun süre, yetkin siding ve uzlaşmaya direnç. Oyunlarda dürüstlük, yüksek kaliteli bir akışın doğru haritalama ve kontrol prosedürlerine bağlı olduğu durumlarda ortaya çıkar: yayınlanmadan önce sertifikasyon, günlükler ve sonrasında izleme. Her üç katman da yerinde olduğunda, "rastgelelik'bir sözden güvenilir bir uygulamaya dönüşür.