Rust sitelerinde provably fair nasıl çalışır ve atışlarını nasıl kontrol edersin
Server seed hash'leri, client seed'ler, nonce ve HMAC-SHA256 sade kelimelerle; yeniden üretebileceğin uygulamalı bir örnek ve bir Rust skin sitesindeki herhangi bir atışı kontrol etmek için adım adım bir rutin.
Sıralamamızdaki on sitenin hepsi oyunlarını provably fair olarak listeliyor. İfadenin kesin bir anlamı var ve arkasındaki kontrolü ücretsiz bir hash aracı ya da birkaç satır kodla kendin çalıştırabilirsin. Çok az oyuncu bunu çalıştırıyor. Bu rehber sistemin neyi kanıtladığını, neyi dışarıda bıraktığını ve bir atışı baştan sona nasıl doğrulayacağını açıklıyor.
Kısa hali: bahis yapmadan önce site gizli bir değeri kilitliyor ve sana onun parmak izini gösteriyor. Sen kendi girdini ekliyorsun. Bahislerden sonra site gizli değeri açıklıyor ve parmak izinin eşleştiğini ve her sonucun girdilerden çıktığını doğrulayabiliyorsun. Rakamlar tutuyorsa, site bahsini gördükten sonra bir sonucu değiştiremezdi.
Provably fair'in çözdüğü sorun
Bir skin sitesinde her sonuca sunucu karar veriyor. Bir case açtığında, bir yazı tura attığında ya da bir crash çarpanını beklediğinde, denetleyemeyeceğin bir makinede üretilmiş bir sayının animasyonunu izliyorsun. Bir tür kanıt olmadan, işletmecinin bahsin büyük olduğunda atışları sessizce senin aleyhine itmediğine güveniyorsun.
Lisanslı online kumarhaneler bunu genelde düzenleyiciler ve rastgele sayı üreteçlerinin üçüncü taraf denetimleriyle yanıtlıyor. Çoğu skin sitesi bunun yerine kriptografik bir yaklaşıma güveniyor. Oyuncular için büyük bir avantajı var: bir denetçiye güvenmen gerekmiyor, çünkü hesaplamayı kendi bilgisayarında tekrarlayabilirsin.
Fikrin adı taahhüt şeması. Sitenin gizli değerini bir karta yazdığını, kartı bir zarfa mühürlediğini ve oyun başlamadan önce zarfı sana verdiğini düşün. Kartı sonradan sen fark etmeden değiştiremez ve sen kartı erken okuyamazsın.
Üç girdi: server seed, client seed ve nonce
Rust sitelerindeki hemen hemen her provably fair sistem aynı bileşenleri kullanıyor. Etiketler siteler arasında biraz değişiyor, ama roller aynı kalıyor.
Server seed
Site tarafından üretilen uzun rastgele bir dize. Sen oynarken gizli kalıyor, çünkü onu bilen herkes her sonucu tahmin edebilirdi. Onun yerine gördüğün şey, genelde SHA-256 ile üretilen hash'i. Hash tek yönlü bir parmak izi. Aynı girdi her zaman aynı 64 karakterlik çıktıyı veriyor, girdinin tek bir karakterini değiştirmek çıktıyı tamamen değiştiriyor ve hash'ten seed'e geri gitmenin pratik bir yolu yok.
Client seed
Senin tarafından gelen bir dize. Siteler senin için varsayılan bir tane üretiyor ve çoğu adalet ya da ayarlar panelinde onu düzenlemene izin veriyor. Görevi, sitenin özellikle senin için kötü bir server seed seçmesini engellemek. Site seed'ine, senin ne yazacağını bilmeden önce taahhüt etti, yani birini diğerine göre ayarlayamazdı.
Nonce
0 ya da 1'den başlayan ve aynı seed çiftinde yaptığın her bahisle bir artan bir sayaç. Bir server seed ve bir client seed'i yüzlerce bahis için yeniden kullanıp her seferinde yine de yeni bir sonuç almana izin veriyor.
Sonuçlarını kontrol etmek istediğinde siteden seed'i döndürmesini istiyorsun. Eski server seed'i düz metin olarak açıklıyor, yeni birinin hash'ini gösteriyor ve nonce'u sıfırlıyor. Eski seed'de oynadığın her şey artık doğrulanabilir.
Girdiler nasıl bir sonuca dönüşüyor
En yaygın tarif HMAC-SHA256. HMAC, gizli bir anahtarı bir mesajla birleştirip bir hash üretmenin standart yolu. Çoğu Rust sitesinde server seed anahtar ve mesaj, genelde iki nokta üst üste ile, clientseed:nonce gibi birleştirilmiş client seed ve nonce. Bazı siteler bir tur numarası ya da oyun kimliği ekliyor, bu yüzden tam formülü her zaman sitenin kendi adalet sayfasında oku.
Çıktı 64 karakterlik onaltılık bir dize. Site ardından bu dizenin bir kısmını 0 ile 1 arasında bir sayıya çeviriyor. Tipik bir yöntem ilk sekiz hex karakteri (32 bit) alıp bir tam sayıya çeviriyor ve 4,294,967,296'ya, yani 2'nin 32. kuvvetine bölüyor. Bu ondalık sayı sonra oyuna eşleniyor:
- Dice ve upgrader: 0.00 ile 99.99 arasında bir atış için 100 ile çarp, sonra hedefle karşılaştır.
- Rulet: bir yuva seçmek için çarktaki yuva sayısıyla çarp ve aşağı yuvarla.
- Case'ler: case'teki toplam bilet sayısıyla çarp, böylece biletlerin %1'ine sahip bir skin atışların %1'inde kazanır.
- Crash: sayıyı, kasa avantajı içine gömülü olarak onu bir çarpana çeviren bir formüle ver. Crash strateji rehberimiz o formülü ve cashout hedefleri için ne anlama geldiğini anlatıyor.
Yeniden üretebileceğin uygulamalı bir örnek
Aşağıdaki seed'ler bu örnek için uydurulmuş, yani aritmetiğimizi herhangi bir HMAC-SHA256 hesaplayıcısıyla kontrol edebilirsin.
- Server seed: example-server-seed-01. SHA-256 hash'i a5275da7ccca3f73 ile başlıyor. Site oynamadan önce sana bu hash'i gösterirdi.
- Client seed: my-own-client-seed. Nonce: 1. Mesaj yani my-own-client-seed:1.
- Server seed anahtar ve bu mesaj girdi olarak HMAC-SHA256, 4cdcf221 ile başlayan bir sonuç veriyor.
- Hex 4cdcf221 ondalıkta 1,289,548,321. 4,294,967,296'ya bölününce yaklaşık 0.30025.
- 0 ile 100 arası bir dice ölçeğinde bu 30.02'lik bir atış. 15 yuvalı bir rulet çarkında 0.30025 çarpı 15 yaklaşık 4.5, bu da aşağı yuvarlanarak 4. yuva oluyor (ilk yuvayı 0 sayarak).
Aynı seed'leri nonce 2 ile çalıştır ve 6486ccbd ile başlayan, yaklaşık 0.3927'ye denk gelen tamamen farklı bir hash elde edersin. İlk atış ikinci hakkında sana hiçbir şey söylemiyor. Bu bağımsızlık işin özü: bir bahis geçmişinde okunacak bir örüntü yok, çünkü her sonuç yeni bir hash.
Bir atışı kendin adım adım nasıl doğrularsın
İlk tam kontrol biraz sürüyor. Ondan sonra birkaç dakikalık kopyala yapıştır. Bunu önce küçük bir bakiyede yap, böylece bir sonuç gerçekten önemli olmadan önce süreci bilirsin.
- Bahis yapmadan önce adalet panelini aç. Genelde oyun ekranından, alt bilgiden ya da profil ayarlarından bağlanır. Hash'lenmiş server seed'i sitenin dışında bir yere, telefonundaki bir not ya da bir ekran görüntüsü gibi, kaydet.
- Kendi client seed'ini ayarla. Varsayılanı kendi yazdığın bir şeyle değiştir. Klavyeye rastgele bas. Akılda kalıcı olması gerekmiyor.
- Oyna ve önemsediğin bahisleri not et. Her bahiste gösterilen nonce'u yaz ya da sonra bahis geçmişinde bul.
- Seed'i döndür. Site eski server seed'i açıklıyor. Kopyala.
- Taahhüdü kontrol et. Açıklanan server seed'i herhangi bir SHA-256 aracından geçir. Çıktı, 1. adımda kaydettiğin hash ile karakter karakter eşleşmeli.
- Atışı yeniden hesapla. Açıklanan server seed, client seed'in ve nonce ile HMAC-SHA256 kullan, sonra sitenin yayınladığı dönüşümü uygula. PHP'de bu hash_hmac'e tek bir çağrı, Python'ın hmac modülü de aynısını birkaç satırda yapıyor.
- Karşılaştır. Hesapladığın sayı, geçmişinde kayıtlı sonucu üretmeli.
Çoğu site seed'leri yapıştırdığın yerleşik bir doğrulayıcı da sunuyor. Kullanışlı, ama işletmecinin kendi kodunda çalışıyor. Siteye hiç bağlı olmayan bir kontrol için en az bir kez bağımsız bir araç ya da kendi betiğini kullan.
Paylaşılan oyunlar biraz farklı çalışıyor
Dice, upgrader ve tek kişilik case açılışları gibi tek oyunculu modlar kişisel seed çiftin üzerinde çalışabilir. Jackpot, coinflip, case battle'lar, rulet turları ve crash gibi birçok oyuncunun tek sonucu paylaştığı oyunlar, tek bir oyuncunun client seed'inin herkesin sonucunu belirlemesine izin veremez. Siteler bunu birkaç yaygın şekilde ele alıyor.
- Bir hash zinciri. Crash'te yaygın. Site önceden uzun bir hash zinciri üretiyor; her turun hash'i bir sonraki turun SHA-256'sı. İlk tur oynanmadan önce zincirin son hash'ini yayınlıyor ve açıklanan her turun bir öncekine geri hash'lendiğini kontrol edebiliyorsun. Zincirdeki her sonuç, kimse bahis koymadan önce sabitlenmişti.
- Site dışından bir genel seed. Site server seed'ine taahhüt ediyor, ardından kimsenin önceden bilemeyeceği bir değeri, örneğin genel bir blockchain'deki gelecekteki bir bloğun hash'ini karıştırıyor. Site taahhüt ettiğinde o blok var olmadığı için, seed'ini ona göre ayarlayamazdı.
- Tur başına taahhütler. Jackpot ve coinflip'te turun hash'lenmiş seed'i tur açıldığında görünüyor, düz seed ve kazanan bilet bittiğinde gösteriliyor.
Doğrulama fikri her birinde aynı. Turdan önce herkese açık olan taahhüdü bul, açıklanan değerin onunla eşleştiğini doğrula, sonra sonucu yeniden hesapla. Kazanan bir biletin ortak bir potta nasıl bir kazanana dönüştüğü için coinflip ve jackpot oranları rehberimize bak. Case battle'lar iki yaklaşımı karıştırıyor ve bunu case battle'lar açıklandı yazımızda ele alıyoruz.
Provably fair'in kanıtlamadığı şeyler
Doğrulanmış bir atış tek bir dar şeyi kanıtlıyor: sonuç, sen bahis yapmadan önce sitenin taahhüt ettiği girdilerden geldi. Bu yararlı, ama oyuncular çoğu zaman rozetten desteklediğinden çok daha fazlasını okuyor.
- Kasa avantajı hakkında hiçbir şey söylemiyor. Büyük bir avantajı olan bir crash oyunu tamamen provably fair olabilir. Avantaj, rastgele sayıyı bir çarpana ya da kazanma şansına çeviren yayınlanmış formülün içinde duruyor. Adil olmak, sitenin kendi kurallarını izlediği anlamına gelir ve o kurallar zamanla yine siteyi kayırır.
- Fiyatları kontrol etmiyor. Bir case bir skini Steam Community Market'te satılacağından çok daha yüksek bir değerle listeliyorsa, atış adil olurken case yine de kötü değer olabilir. Upgrader rehberimiz eşya fiyatlamasının gerçek oranları nasıl sessizce kaydırdığını gösteriyor.
- Çekimleri kapsamıyor. Bir site kusursuz seed'ler çalıştırıp yine de ödemeleri geciktirebilir, hesapları dondurabilir ya da şartlarını yeniden yazabilir. Bu yüzden adalet, siteleri nasıl puanladığımızda ödeme hızı ve güvenin yanında yalnızca bir girdi.
- Yalnızca biri kontrol ederse işe yarıyor. Kimsenin karşılaştırmadığı bir taahhüt, bir sayfadaki bir karakter dizisinden ibaret.
Bir adalet sayfasındaki kırmızı bayraklar
Seed'leri doğrulamak, bir siteyi test ederken rutin bir adım. Bunlar bizi şüphelendiren şeyler, kabaca hafiften ciddiye.
| Ne görüyorsun | Ne anlama geliyor | Ne yapmalı |
|---|---|---|
| Client seed'i değiştirme seçeneği yok | Site kişisel atışlarının her girdisini kontrol ediyor | Tek oyunculu modlara daha dikkatli yaklaş |
| Bir doğrulayıcı düğmesi var ama yayınlanmış formül yok | Sonuçları yalnızca sitenin kendi koduyla kontrol edebilirsin | Çok para yatırmadan önce desteğe tam formülü sor |
| Server seed hash'i yalnızca bahis yaptıktan sonra görünüyor | Gerçek bir taahhüt yok | Oyunu provably fair olarak değerlendirme |
| Eski server seed'ler hiçbir zaman açıklanamıyor | Hiçbir şey doğrulanamaz | Yukarıdakiyle aynı |
| Açıklanan seed kaydedilen taahhüde hash'lenmiyor | Seed değiştirildi ya da sayfa bozuk | Oynamayı bırak, her şeyin ekran görüntüsünü al ve desteğe ulaş |
Son satıra denk gelirsen kanıtlarını sakla: kaydedilen hash, açıklanan seed, bahis kimlikleri ve her bahsin saati. Tek bir uyuşmazlık bir görüntüleme hatası olabilir, ama bir siteyi yeniden kontrol etmemize yol açan güvenilir oyuncu bildirimi tam olarak bu türden.
Normal oyuncular için makul bir rutin
Her bahsi doğrulaman gerekmiyor. Hafif bir rutin, bir oturumu ödeve çevirmeden çoğu sorunu yakalıyor.
- Yeni bir sitede oynamaya başladığında yeni bir client seed ayarla.
- Oynamadan önce hash'lenmiş server seed'in ekran görüntüsünü al.
- Oturumdan sonra döndür ve taahhüdü kontrol et; bu tek bir SHA-256 hesaplaması.
- En çok önem taşıyan bir ya da iki sonucu, örneğin büyük bir upgrader kaybını ya da kazanman gerektiğinden emin olduğun bir battle'ı yeniden hesapla.
- Arada bir, sitenin doğrulayıcısı yerine bağımsız bir araçla tam kontrolü tekrarla.
Temiz bir doğrulama, aldığın kayıpların yayınlanmış matematiğin öngördüğü kayıplar olduğu ve fazlası olmadığı anlamına geliyor. Avantaj her atışta hâlâ orada. Pratik sonraki adım, eğlence için bu beklenen kayıpların ne kadarını ödemeye razı olduğuna önceden karar vermek; sorumlu kumar sayfamız basit limitleri ve onlara bağlı kalmana yardım eden araçları kapsıyor.
Sık sorulan sorular
Provably fair bir site yine de hile yapabilir mi?
Hash kontrolü başarısız olmadan taahhüt edilmiş bir sonucu değiştiremez. Yine de yüksek bir kasa avantajı işletebilir, case'lerdeki eşyaları fahiş fiyatlayabilir ya da çekimleri geciktirebilir, çünkü provably fair yalnızca atışın nasıl üretildiğini kapsıyor.
Client seed'imi değiştirmek zorunda mıyım?
Hayır, ama değiştirmelisin. Server seed hash'i gösterildikten sonra seçtiğin bir client seed, sitenin seed'ini senin girdini düşünerek seçemeyeceği anlamına gelir.
Site neden oynamadan önce server seed'i göstermiyor?
Hem server seed'i hem client seed'i bilen herkes gelecekteki her sonucu hesaplayabilir. Hash, sitenin gelecekteki atışları ele vermeden seed'ine taahhüt etmesine izin veriyor.
Atışları doğrulamak için hangi aracı kullanabilirim?
Ücretsiz çevrimiçi araçlar ve PHP, Python ya da JavaScript'teki yerleşik fonksiyonlar dahil, herhangi bir SHA-256 ve HMAC-SHA256 hesaplayıcısı işe yarar. Rahatlık için sitenin doğrulayıcısını, önemli olan kontrol için bağımsız bir aracı kullan.
SHA-256 bunun için yeterince güvenli mi?
Evet. Bitcoin madenciliğinde de kullanılan, yaygın bir standart ve onu tersine çevirmenin ya da aynı hash'i üreten ikinci bir seed bulmanın bilinen pratik bir yolu yok.
Okumaya devam et
İlgili rehberler
Rust gambling bonusları, ücretsiz case'ler ve promo kodları: gerçek değerleri
Ücretsiz bir case, en iyi eşyasına değil ortalama düşüşüne değer ve ücretsiz bir bakiye, çevrimden sağ çıkan kadar değerli. Bir kod yazmadan önce her yaygın Rust site bonusunu nasıl fiyatlayacağın.
Rust case battle'ları açıklandı: modlar, oranlar ve adil bir battle nasıl seçilir
Bir case battle, içindeki case'lerin kasa avantajını değiştirmez. Ne kadar sert kazandığını ya da kaybettiğini değiştirir. Formatlar nasıl çalışıyor, arkasındaki matematik ve katılmaya değer bir battle nasıl fark edilir.
Sorumlu skin kumarı: limitler, uyarı işaretleri ve nereden yardım alınır
Skinler gerçek paranın hesabını kaybetmeyi kolaylaştırıyor. Bu rehber uyarı işaretlerini, gerçekten tutan limitleri, kendini dışlamayı ve engelleme araçlarını, bugün ulaşabileceğin ücretsiz yardım hatlarını kapsıyor.