Otwieranie skrzynek CS2 provably fair
Każda skrzynka, bitwa, ulepszenie, rzut monetą, zrzut w Plinko i przejście w Kurczaku na CS2Bolt jest rozstrzygane losowaniem, które możesz sam przeliczyć. Blokujemy sekret serwera przed twoją grą, dodajemy seed, który kontrolujesz, i ujawniamy sekret po rundzie, abyś mógł sprawdzić, że wynik nie został zmieniony.
Zaloguj się, aby zobaczyć własne rundy i seedyJak ustalany jest wynik
- Serwer zobowiązuje się do sekretu
Przed rundą CS2Bolt generuje losowy seed serwera i pokazuje ci tylko jego hash SHA-256. Hash działa jak zapieczętowana koperta: dowodzi, że seed już istnieje, nie ujawniając go.
- Dodawany jest twój seed i numer rundy
Losowanie łączy seed serwera z twoim seedem klienta, nonce (licznikiem twoich rund), grą i szczegółami rundy przy użyciu HMAC-SHA256.
- Sekret jest ujawniany i sprawdzany
Po rundzie seed serwera jest publikowany. Zahashuj go sam: jeśli zgadza się z hashem, który widziałeś, seed nigdy nie został podmieniony, a ponowne przeliczenie losowania daje dokładnie twój wynik.
message = clientSeed + ":" + nonce + ":" + game + ":" + context
digest = HMAC_SHA256(key = serverSeed, message)
roll = first 13 hex characters of digest ÷ 16¹³ → 0 ≤ roll < 1
Trzynaście znaków hex to 52 losowe bity, które przeglądarka przechowuje dokładnie, więc losowanie jest identyczne na każdym urządzeniu.
Jak każda gra wykorzystuje losowanie
Skrzynki
Losowanie wybiera przedmiot według jego szans. Każdy przedmiot ma swój wycinek zakresu od 0 do 1 odpowiadający jego szansie na drop; wygrywasz przedmiot, którego wycinek zawiera wynik losowania.
context = the case’s URL name, e.g. afterpartyBitwy na skrzynki
Jeden seed serwera jest wspólny dla całej bitwy. Seedy klientów wszystkich graczy są łączone znakiem „:”, a każde miejsce w każdej rundzie dostaje własny nonce, więc każde otwarcie to osobne losowanie, którym nikt nie może sterować.
nonce = round × players + seat · context = battle numberUpgrader
Wygrywasz, gdy wynik losowania wypadnie w zielonej strefie. Strefa zaczyna się od przesunięcia pokazanego przy rundzie i jest tak szeroka jak twoja szansa na wygraną, zawijając się od 1 z powrotem do 0.
win if the roll is in [offset, offset + chance)Rzut monetą
Both players’ client seeds are combined as creator|joiner. The creator wins when the roll is below their share of the pot, so a bigger stake means a proportionally bigger chance.
creator wins if roll < creator stake ÷ total potPlinko
Wynik losowania jest zamieniany z powrotem na 52 losowe bity. Każdy rząd kołków używa kolejnego bitu: 0 to lewo, 1 to prawo. Liczba odbić w prawo to pole, w które wpada kulka.
context = plinko:rows:riskCS2Bolt Bonanza
Każdy spin jest odtwarzany z zadeklarowanych ziaren, łącznie z liniami, zbieraniem CT, darmowymi spinami i zaokrągleniem. Pełne obliczenia są w ostatnich rundach Bonanza.
context = rules:mode:bet:feature:configurationKurczak na drodze
Jedno losowanie odbywa się na starcie. Każdy pas ma próg bezpieczeństwa dla twojego poziomu trudności; kurczak zostaje potrącony na pierwszym pasie, na którym wynik losowania jest równy progowi lub wyższy.
lose at the first lane where roll ≥ thresholdZweryfikuj rundę
Wklej wartości z dowolnej rundy, a zostanie ona sprawdzona w twojej przeglądarce. Zaloguj przez Steam , aby zamiast tego wybrać jedną ze swoich rund jednym kliknięciem.
Wpisz wartości ręcznie
Sprawdź to bez tej strony
Uruchom to w Node.js, zastępując wartości wartościami z twojej rundy:
node -e "const c=require('crypto');const d=c.createHmac('sha256','SERVER_SEED').update('CLIENT_SEED:NONCE:GAME:CONTEXT').digest('hex');console.log(d,parseInt(d.slice(0,13),16)/2**52)"Pytania
Czy CS2Bolt może zmienić wynik po postawieniu zakładu?
Nie. Odcisk (hash SHA-256) seeda serwera jest pokazywany przed grą. Gdyby seed ujawniony później był inny, jego hash nie zgadzałby się z tym, który widziałeś, a weryfikator poniżej by to wykrył.
Dlaczego warto ustawić własny seed klienta?
Twój seed klienta jest wmieszany w każde losowanie. Seed serwera jest zablokowany, zanim wybierzesz lub zmienisz swój, więc strona nie mogła wybrać seeda serwera, który dałby z nim konkretny wynik.
Czym jest nonce?
To licznik, który rośnie o jeden z każdą rozegraną rundą. Sprawia, że każde losowanie jest inne nawet przy tych samych seedach, i pozwala sprawdzić, że żadna runda nie została pominięta ani powtórzona.
Dlaczego seed serwera jest nowy w każdej rundzie?
CS2Bolt ujawnia seed serwera, gdy tylko runda zostanie rozliczona, abyś mógł go od razu sprawdzić. Ujawniony seed nie może być użyty ponownie, więc na twoją następną rundę ustalany jest nowy.
Czy muszę ufać tej stronie, aby zweryfikować rundę?
Nie. Sprawdzenie to standardowy HMAC-SHA256, więc każde niezależne narzędzie da ten sam wynik. Weryfikator na tej stronie działa w całości w twojej przeglądarce i niczego nie wysyła na nasze serwery.