Provably Fair — Доказуемо честно
CSFail использует систему Provably Fair, которая позволяет каждому игроку самостоятельно проверить результат любой игры.
Как работает Provably Fair?
Server Seed (серверный seed)
Перед началом сессии сервер генерирует уникальный seed. Он хешируется (SHA-256) и предоставляется игроку — так игрок может убедиться, что seed не менялся после ставки.
Client Seed (клиентский seed)
Игрок также предоставляет собственный seed (или генерируется автоматически). Клиентский seed влияет на результат, поэтому сервер не может подстроить результат под конкретного игрока.
Nonce (счётчик)
Каждая игра увеличивает счётчик (nonce). Вместе с seeds он гарантирует уникальность каждого результата и исключает повторения.
HMAC-SHA256 хеширование
Результат вычисляется по формуле HMAC-SHA256(server_seed, client_seed + nonce). Результат конвертируется в число для определения исхода игры.
Верификация после игры
После завершения игры раскрывается серверный seed (без хеша). Игрок может сравнить с хешем, который ему предоставлялся, и самостоятельно вычислить результат.
Ротация seedов
Игрок может в любой момент изменить клиентский seed. При этом раскрывается предыдущий серверный seed, завершая предыдущую сессию.
📐 Формула верификации
Вы можете самостоятельно проверить результат любой игры с помощью этого алгоритма:
Полученная hex-строка конвертируется в число от 0 до 1, которое определяет результат игры (множитель в Crash, цвет в Double и т.д.).
Для проверки можно использовать любой HMAC-SHA256 калькулятор онлайн или написать скрипт Python/JavaScript.