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).