Przejdź do treści

BoosterHand Lab · symulacja

Czy kasyna kryptowalutowe mogą oszukiwać? Zbudowałem grę provably fair, żeby to sprawdzić

Aktualizacja 2026-10-29 · BoosterHand Lab · Metoda: symulacja Monte Carlo (Python/NumPy, stałe ziarno)

Demo kości provably fair z server seedem, hashem SHA-256 i rzutem HMAC: test, czy kasyna kryptowalutowe mogą oszukiwać
Najważniejsze wyniki
  • Zmiana 1 znaku w server seedzie dała zupełnie inny hash SHA-256, więc podmiana została wykryta natychmiast.
  • Mój pierwszy rzut (nonce 1) to 91,76 i każdy może go przeliczyć z ujawnionych seedów.
  • W 200 000 rzutów każdy 10-punktowy przedział dostał od 9,88% do 10,11% wyników: kości były uczciwe.
  • Zasada „rzut poniżej 49,5 płaci 2x” wciąż ukrywa 1% przewagi kasyna: gracze odzyskiwali około 99,4 centa z każdego dolara.
  • Provably fair odpowiada na 1 pytanie (czy wynik został zmieniony?), a nie na to, czy wypłaty są realizowane albo czy strona ma licencję.
Obejrzyj (po angielsku): Provably Fair Explained: Can Crypto Casinos Cheat? (I Tried)

Czy kasyna kryptowalutowe mogą oszukiwać? Prawie każde kasyno krypto odpowiada tymi samymi dwoma słowami: provably fair. Obietnica brzmi tak, że kasyno nie może ustawić twojego wyniku, a ty możesz to sam sprawdzić. Zbudowałem więc od zera grę w kości provably fair, spróbowałem ją oszukać, a potem rzuciłem 200 000 razy, żeby zobaczyć, czego system naprawdę dowodzi (i jednej ważnej rzeczy, której nie dowodzi).

Jeśli chcesz pełnej teorii, nasz poradnik o provably fair omawia ją szczegółowo. Ten artykuł to wersja praktyczna: prawdziwe seedy, prawdziwe hashe, prawdziwe liczby z mojego własnego demo.

Provably fair: jak to działa w 4 krokach

Provably fair to nie jeden konkretny produkt. To schemat zbudowany z dwóch standardowych narzędzi kryptograficznych: funkcji skrótu (SHA-256) i skrótu z kluczem (HMAC-SHA256). Oto jak użyła ich moja gra demo.

Krok 1: kasyno pieczętuje swój server seed

Zanim postawisz choćby jeden zakład, kasyno wybiera tajną wartość zwaną server seedem. W moim demo był to bh-demo-server-seed-7f3a9c21.

Kasyno nie pokazuje ci seeda. Pokazuje ci jego odcisk palca: hash SHA-256 seeda. Dla mojego seeda był to 0516de5d906f8cd6...eaa7848. Potraktuj to jak zapieczętowaną kopertę. Nie możesz przeczytać, co jest w środku, ale po zapieczętowaniu zawartości nie da się po cichu podmienić.

Server seed zobowiązany jako hash SHA-256 przed zakładem, etap zapieczętowanej koperty w provably fair
Kasyno zobowiązuje się do swojego server seeda, publikując przed twoim zakładem tylko hash SHA-256.

Krok 2: dodajesz client seed i nonce

Teraz twoja kolej. Client seed to dowolny tekst, który wybierzesz. Mój to my-lucky-seed-42. Każdy zakład dostaje też licznik zwany nonce: 1 dla pierwszego zakładu, 2 dla drugiego i tak dalej.

Dlaczego twój seed ma znaczenie? Bo kasyno zobowiązało się do swojego server seeda, zanim poznało twój. Nie może wybrać server seeda, który da ci złe wyniki, bo nie kontroluje całych danych wejściowych.

Krok 3: HMAC zamienia seedy w rzut

Gra przepuszcza server seed, client seed i nonce przez HMAC-SHA256. Powstaje długi ciąg szesnastkowy. Moje demo bierze pierwsze 8 znaków, zamienia je na liczbę i skaluje do zakresu od 0 do 100.

Mój pierwszy rzut wyniósł 91,76. Oto pierwsze pięć rzutów z demo:

NoncePierwsze 8 znaków hex z HMACRzut (0 do 100)
1eae5dbc191,76
2f140597794,24
392d71f7457,36
493f96f2957,80
54cff089730,08
HMAC-SHA256 z server seeda, client seeda i nonce zamieniony na rzut kośćmi provably fair o wartości 91,76
Pierwsze 8 znaków hex z HMAC staje się rzutem od 0 do 100, tutaj 91,76.

Krok 4: wszystko weryfikujesz sam

Gdy skończysz (albo zmienisz seedy), kasyno ujawnia server seed. Teraz robisz dwie kontrole:

  1. Sam zahashuj ujawniony seed SHA-256. Jeśli pasuje do odcisku, który widziałeś przed zakładem, seed nie został podmieniony.
  2. Przelicz każdy rzut z seedów i nonce. Jeśli każdy zgadza się z twoją historią zakładów, żaden wynik nie został zmieniony.

To jest ta część, o którą chodzi ludziom, gdy wpisują „weryfikacja provably fair”. Oto ogólna wersja kontroli z mojego demo w Pythonie. Jest na tyle krótka, że uruchomisz ją na każdym laptopie:

import hashlib, hmac

server_seed = "bh-demo-server-seed-7f3a9c21"   # revealed after play
client_seed = "my-lucky-seed-42"
shown_hash  = "0516de5d906f8cd663d818fa4b55b4bfb98f897e7ad9c1c8ecaa6bb30eaa7848"

# 1. Does the revealed seed match the hash shown before betting?
print(hashlib.sha256(server_seed.encode()).hexdigest() == shown_hash)

# 2. Recompute each roll
for nonce in range(1, 6):
    msg = f"{client_seed}:{nonce}".encode()
    h = hmac.new(server_seed.encode(), msg, hashlib.sha256).hexdigest()
    roll = int(h[:8], 16) / 2**32 * 100
    print(nonce, round(roll, 2))

Prawdziwe strony używają własnego, dokładnego wzoru (format wiadomości, liczba znaków, sposób skalowania zakresu) i powinny go publikować. Idea jest wszędzie ta sama.

Weryfikacja provably fair: ujawniony server seed daje ten sam odcisk SHA-256, który pokazano przed zakładem
Zgodny hash dowodzi, że kasyno użyło tego samego server seeda, do którego się zobowiązało.

Czy kasyna kryptowalutowe mogą oszukiwać? Spróbowałem

Czas zagrać czarny charakter. Zmieniłem jeden jedyny znak w server seedzie: ostatnia 1 stała się 2, co dało bh-demo-server-seed-7f3a9c22.

Nowy hash SHA-256 zaczynał się od 14c8e98f... zamiast 0516de5d.... Nie trochę inny: zupełnie inny, od pierwszego do ostatniego znaku. Tak właśnie zaprojektowano SHA-256. Drobna zmiana na wejściu miesza cały wynik i nikt nie jest w stanie cofnąć się i znaleźć drugiego seeda z tym samym odciskiem.

Gdyby więc kasyno próbowało podmienić seed po zobaczeniu twojego zakładu, weryfikacja hasha zawiodłaby za pierwszym razem. Natychmiast przyłapane. To jest prawdziwa, użyteczna siła provably fair.

Zmiana jednego znaku server seeda daje zupełnie inny hash SHA-256, więc oszustwo zostaje wykryte
Jeden zmieniony znak daje zupełnie inny hash, więc podmieniony seed nie ma gdzie się ukryć.

Zanim nastąpi zwrot akcji, pytanie do ciebie: czy zaufałbyś bardziej grze provably fair niż licencjonowanej? Dlaczego? Napisz odpowiedź w komentarzach pod filmem, bo następna sekcja może zmienić twoje zdanie.

Czego provably fair nie dowodzi

Kryptografia wytrzymała. Ale „wynik nie został zmieniony” i „gra jest wobec ciebie uczciwa” to dwa różne stwierdzenia.

Rzuty były uczciwe: przetestowano 200 000 rzutów

Najpierw sprawdziłem same liczby losowe. Rzuciłem kośćmi z demo 200 000 razy i podzieliłem zakres od 0 do 100 na dziesięć przedziałów po 10 punktów. Uczciwy rzut powinien umieścić około 10% wyników w każdym przedziale, czyli 20 000 rzutów.

Zakres rzutuRzutyUdział
0 do 1020 18810,09%
10 do 2019 9509,98%
20 do 3019 8629,93%
30 do 4020 19010,10%
40 do 5020 21310,11%
50 do 6019 8449,92%
60 do 7019 7539,88%
70 do 8020 04710,02%
80 do 9020 15310,08%
90 do 10019 8009,90%

Każdy przedział trafił o włos od 10%. Nikt nie ustawiał kości.

Histogram 200 000 rzutów provably fair, każdy 10-punktowy przedział blisko 10 procent, co pokazuje rozkład jednostajny
W 200 000 rzutów każdy 10-punktowy przedział dostał niemal dokładnie 10% wyników.

Przewaga kasyna wciąż tam była

Teraz zwrot akcji. W mojej grze rzut poniżej 49,5 wygrywa i płaci 2x stawki. Brzmi prawie jak rzut monetą, ale nie do końca.

  • Szansa na wygraną: 49,5% (strefa wygranej to 49,5 punktu na 100)
  • Wypłata: 2x
  • Oczekiwany zwrot: 49,5% × 2 = 99 centów z dolara

Ta zasada ukrywa 1% przewagi kasyna, na widoku. W 200 000 symulowanych rzutów gracze wygrywali w 49,7% przypadków i odzyskiwali około 99,4 centa z każdego postawionego dolara. To blisko 99%, które przewiduje zasada, plus normalny losowy szum.

Zasada kości rzut poniżej 49,5 płaci 2x ukrywa 1 procent przewagi kasyna nawet w grze provably fair
Uczciwe kości, ale zasada wypłat i tak zatrzymuje około 1% z każdego postawionego dolara.

Provably fair dowodzi, że wynik nie został zmieniony. Nie usuwa przewagi, bo przewaga tkwi w zasadach, a nie w liczbie losowej. 1% przewagi to niewiele w porównaniu z wieloma grami kasynowymi, ale i tak rośnie, im więcej stawiasz. Nasza symulacja RTP pokazuje, jak to wygląda w tysiącach zakładów.

Czego to nigdy nie sprawdza

Provably fair odpowiada na jedno wąskie pytanie: czy ten konkretny wynik został zmanipulowany? Nie mówi nic o:

  • Wypłatach. Idealnie uczciwy rzut jest nic niewart, jeśli strona ci nie zapłaci. Szybkość i niezawodność wypłat to zupełnie osobna kwestia.
  • Licencji. Matematyka nie powie ci, kto reguluje operatora ani gdzie możesz złożyć skargę. Nasz poradnik o licencjach wyjaśnia, co obejmują licencje Curacao i Anjouan.
  • Każdej grze na stronie. Kasyno może oferować kości provably fair obok gier, które w ogóle nie używają tego systemu. Etykieta na jednej grze nie rozciąga się na resztę.
  • Wdrożeniu. Jeśli strona nie publikuje dokładnego wzoru albo nie pozwala ustawić własnego client seeda, nie możesz niczego naprawdę zweryfikować.

Jak przeprowadziliśmy symulację

To było moje własne demo edukacyjne, a nie kopia kodu żadnego prawdziwego kasyna. Oto parametry:

  • Zobowiązanie: hash SHA-256 server seeda, pokazany przed grą
  • Rzut: HMAC-SHA256 z server seedem jako kluczem i client_seed:nonce jako wiadomością, pierwsze 8 znaków hex skalowane do 0–100
  • Seedy: server seed bh-demo-server-seed-7f3a9c21, client seed my-lucky-seed-42, stałe dla powtarzalności
  • Test manipulacji: zmieniony jeden znak server seeda (...c21 na ...c22)
  • Wolumen: 200 000 rzutów
  • Zasada gry: rzut poniżej 49,5 wygrywa, płaci 2x, teoretyczna przewaga kasyna 1%
  • Wynik: 49,7% wygranych, 99,4% zwrotu dla gracza (RTP)

Prawdziwe wdrożenia różnią się szczegółami: niektóre używają więcej znaków, innych formatów wiadomości albo dodatkowych kroków w grach takich jak karty. Główna idea „najpierw zobowiąż się, później ujawnij, przelicz wszystko” pozostaje ta sama. Nasza strona z metodologią wyjaśnia, jak budujemy i sprawdzamy wszystkie symulacje w Lab.

Co to oznacza dla ciebie

Provably fair to prawdziwa, użyteczna ochrona, a mój test manipulacji pokazał dlaczego: kasyno nie może po cichu podmienić seeda bez wpadki. Ale to jedna kontrola, a nie znak jakości.

  • Traktuj to jako minimum, a nie powód do zaufania. Dowodzi, że wynik nie został zmieniony po twoim zakładzie. Nic więcej.
  • Czytaj zasady gry, żeby znaleźć przewagę. Tabela wypłat mówi ci, ile zatrzymuje kasyno. Uczciwe kości z 1% przewagi i tak średnio kosztują cię pieniądze w dłuższym czasie.
  • Sprawdzaj też nudne rzeczy. Licencja, historia wypłat i regulamin liczą się tak samo jak matematyka. Nasza lista sygnałów ostrzegawczych w kasynach krypto to dobry punkt wyjścia.
  • Ustal limity, zanim zaczniesz grać. Żaden system weryfikacji nie zmienia faktu, że oczekiwany wynik to strata. Jeśli hazard przestaje być zabawą, zrób przerwę i zajrzyj na naszą stronę o odpowiedzialnej grze po wsparcie.

Następnie w Lab: czy bonus kasynowy się opłaca? Dałem bonus 100% 10 000 symulowanych graczy i przeliczyłem wymagania obrotu.

Najczęstsze pytania

Czy kasyna kryptowalutowe mogą oszukiwać w grach provably fair?

W poprawnie wdrożonej grze provably fair kasyno nie może zmienić wyniku po twoim zakładzie bez tego, by weryfikacja hasha zawiodła. Wciąż może jednak ustalać zasady z przewagą kasyna i odmawiać lub opóźniać wypłaty, czego provably fair nie obejmuje.

Jak zweryfikować wynik provably fair?

Po ujawnieniu server seeda zahashuj go SHA-256 i porównaj z hashem pokazanym ci przed zakładem. Następnie przelicz każdy rzut z server seeda, twojego client seeda i nonce, korzystając ze wzoru publikowanego przez stronę.

Czy provably fair oznacza brak przewagi kasyna?

Nie. Provably fair dowodzi tylko, że wynik nie został zmieniony. W naszym demo kości były uczciwe, ale zasada wypłat i tak zatrzymywała około 1% z każdego postawionego dolara.

Czy provably fair jest lepsze niż licencja hazardowa?

Sprawdzają różne rzeczy. Provably fair sprawdza pojedyncze wyniki, a licencja dotyczy tego, kto reguluje operatora, reklamacji i wypłat. Najlepiej mieć jedno i drugie.

Po co mi własny client seed?

Twój client seed jest wmieszany w każdy rzut, więc kasyno nie może znać końcowego wyniku, gdy zobowiązuje się do swojego server seeda. Zmiana go na własny tekst eliminuje możliwość, że kasyno wybrało oba dane wejściowe.

Powiązane

Symulacje używają ogólnych modeli, a nie prawdziwej gry ani kasyna. Wyniki pokazują matematykę w długim okresie, a nie prognozę jednej sesji. Tylko 18+. Jeśli hazard przestaje być zabawą, zrób przerwę: odpowiedzialna gra.

Źródła

  1. FIPS 180-4, Secure Hash Standard (SHS) — NIST
  2. RFC 2104: HMAC: Keyed-Hashing for Message Authentication — IETF
  3. SHA-2 — Wikipedia
  4. HMAC — Wikipedia
  5. Commitment scheme — Wikipedia

Następny eksperyment: Czy bonus kasynowy się opłaca? Zasymulowałem obrót 35x na 10 000 graczy