Provably Fair
Co to jest „Provably Fair”
Gracze zawsze obawiają się, że zostaną oszukani w grach online. Jest to zrozumiałe, ponieważ z technicznego punktu widzenia bardzo łatwo jest doprowadzić do przegranej. W Jemlit mamy na to rozwiązanie zwane provably fair. Provably fair to narzędzie, które pozwala graczowi zweryfikować każdy wynik rzutu i upewnić się, że nie jest oszukiwany!
Jak działa Provably Fair?
W tej metodzie każdy wynik rolki jest obliczany na podstawie następujących zmiennych:
- Server Seed - losowy ciąg znaków dostarczony przez nas
- Client Seed - ciąg znaków generowany przez przeglądarkę, który można zmienić.
- Nonce lub Play Count - liczba, która zwiększa się za każdym razem, gdy grasz.
Przed rozpoczęciem gry otrzymasz zaszyfrowany hash Server Seed. Ponieważ otrzymujesz go z wyprzedzeniem, nie możemy go później zmienić. Jest on jednak zaszyfrowany, więc nie możesz obliczyć własnych wyników rzutów z wyprzedzeniem (dopiero później, jeśli otrzymasz niezaszyfrowany Server Seed). Server Seed jest hashowany przy użyciu algorytmu SHA512.
Przeglądarka wygeneruje losowy Client Seed. Możesz jednak i powinieneś dostosować ten Client Seed przed rozpoczęciem. W ten sposób możesz upewnić się, że witryna nie zna Twojego Client Seed z wyprzedzeniem.
Teraz, jeśli postawisz zakład, Nonce zaczyna się od 1. Po każdym postawionym zakładzie liczba nonce wzrośnie o 1.
Obliczanie wyniku rzutu
A teraz najważniejsze! Oto 3 kroki, które doprowadzą nas do ostatecznej wylosowanej liczby w tej grze.
Krok 1 - Hashowanie zmiennych
W tym kroku obliczamy HMAC za pomocą Nonce jako danych, połączonych hypenem (-).
Możesz to obliczyć samodzielnie; przejdź do tutaj i uruchom ten kod:
echo hash_hmac('sha512/256', 'your client seed-your nonce', 'server seed');
.
Wynikiem będzie 38611068f6936027c4657138536fb5bb8f82a6cb2d883f1acb47cb24013f9e93.
Krok 2 - Konwersja hasha na liczbę
W kroku 2 bierzemy wynik uzyskany w poprzednim kroku i przekształcamy go w liczbę; przejdź
tutaj i uruchom ten kod:
echo number_format(hexdec('38611068f6936027c4657138536fb5bb8f82a6cb2d883f1acb47cb24013f9e93'), 0, „.”, „”);
.
Otrzymasz 25501016943689873370561741542489390377389678092728534236058081515070178721792, bardzo długą liczbę.
Krok 3 - Obliczanie końcowego rzutu
Ponieważ chcemy wyrzucić liczbę dziesiętną z przedziału od 0 do 100, najpierw dzielimy liczbę z poprzedniego kroku przez maksymalną możliwą liczbę, która wynosi 1664 (64 to długość zaszyfrowanego ciągu liter uzyskanego w kroku 1).
Na koniec obliczany jest roll:
roll = 0 + podzielona liczba * 100.
W tym przykładzie wynik to 22.0231.
Jak wybierana jest nagroda?
Po wejściu na stronę eBox, możesz przełączać szanse klikając na Pokaż szanse, a rolki możesz zobaczyć klikając na „See rolls” na dole strony.
Dla każdego przedmiotu w skrzynce, zobaczysz liczbę, którą musisz wyrzucić, aby wygrać tę nagrodę, np. 95.54 do 97.22. Oznacza to, że jeśli wyrzucisz liczbę wyższą niż 95,54 i niższą lub równą 97,22, otrzymasz tę nagrodę.
Jak mogę sprawdzić, czy wszystko jest w porządku?
Aby sprawdzić, czy nie doszło do oszustwa, wystarczy wykonać kroki opisane w poprzednim punkcie.
Oczywiście możesz zweryfikować grę dopiero po ujawnieniu Server Seed.
Możesz znaleźć swój Server Seed, Client Seed i Nonce w wyskakującym okienku „Fairness” u góry strony (lub w lewym górnym menu, jeśli korzystasz z JemLit na telefonie komórkowym).