Uczciwa gra (Provably Fair)

3-102-969694 SOCIEDAD DE RESPONSABILIDAD LIMITADA. PROVINCIA 01 SAN JOSE, CANTON 01 SAN JOSE, DISTRITO CARMEN, BARRIO ESCALANTE, AVENIDA SIETE, CALLE VEINTINUEVE, EDIFICIO DOS MIL NOVECIENTOS DIEZ, CENTRO CORPORATIVO AG

Uczciwa gra

SpyDrop korzysta z algorytmu Provably Fair, aby każdy gracz mógł sprawdzić uczciwość gry. Wynik skrzyni lub ulepszenia zależy od ustalonego wcześniej seeda serwera, Twojego seeda klienta i numeru gry, więc nie da się go zmanipulować po rozpoczęciu gry.

Wynik jest ustalony z góry

Przed grą widzisz hash seeda serwera, więc serwer nie może już niezauważenie podmienić danych wejściowych.

Twoje dane biorą udział w obliczeniu

Twój seed i numer gry biorą udział w obliczeniu, więc wyniku nie tworzy sam serwer.

Dane gry

Wpisz dane gry. Obliczenia odbywają się w Twojej przeglądarce, na serwer nic nie jest wysyłane.

Tablica wierszy z polami itemId, start, end, name i phase (faza CS2 lub null). Skopiuj ją z karty gry.

Wynik sprawdzenia

Wpisz dane gry i naciśnij „Sprawdź” — tutaj pojawi się wylosowana liczba i przedmiot.

Jak powstaje wynik

Seed serwera + Twój seed + Numer gry = Uczciwy wynik

Jak to działa

  1. Zobowiązanie serwera

    Serwer wybiera losowy seed serwera i pokazuje tylko jego hash SHA-256. Później nie można go podmienić: hash przestałby się zgadzać.

  2. Hash gry

    Dla każdej gry liczony jest HMAC-SHA256. Kluczem jest seed serwera jako 64-znakowy ciąg hex, dokładnie taki, jaki jest, bez dekodowania na bajty. Wiadomość składa się z rodzaju gry, gry, Twojego seeda klienta i numeru gry.

  3. Bilet

    Pierwsze 8 znaków hex hasha daje liczbę od 0 do 4 294 967 295. Z niej powstaje bilet od 1 do 100 000 000: floor(liczba × 100 000 000 / 2^32) + 1.

  4. Skrzynia

    W tabeli szans z momentu gry każdy przedmiot ma własny zakres biletów. Wypada przedmiot, w którego zakres trafił bilet.

  5. Ulepszenie

    Próg to floor(szansa × 100 000 000). Ulepszenie wygrywa, jeśli bilet nie jest większy od progu.

  6. Ujawnienie

    Seed serwera jest ujawniany, gdy zmieniasz seedy. Potem każdą grę pary można przeliczyć w przeglądarce na tej stronie albo własnym kodem.

Wzór

Wiadomość
kind:game:clientSeed:nonce
Klucz HMAC
HMAC-SHA256(serverSeed, message)

Kluczem jest ciąg hex seeda serwera taki, jaki jest (64 znaki), a nie zdekodowane z niego bajty. Tu najczęściej mylą się przy samodzielnej weryfikacji.

Rozegraną grę sprawdzisz przyciskiem „Sprawdź” w historii skrzyń i ulepszeń.