Надпись «provably fair» на сайте казино не стоит ничего, пока раунд не пересчитан руками. Схема ровно для этого и придумана: исход — детерминированная функция от величин, зафиксированных до вашей ставки, и восстановить его можно за пару минут в браузере. Ниже — что именно фиксируется, как выполнить проверку по шагам и какие вопросы схема не закрывает.
Что схема заменяет
В обычном онлайн-слоте генератор случайных чисел работает на стороне сервера. Игрок видит только исход, а гарантией служит отчёт лаборатории, которая тестировала генератор однажды и на своём стенде. Проверка разовая, раундов у вас тысячи, и прямой связи между первым и вторым нет.
Provably fair переставляет действия местами: сервер публично фиксирует свою часть случайности до нажатия кнопки и раскрывает её после. Подмена исхода задним числом ломает соответствие между зафиксированным и раскрытым, и разрыв виден любому, у кого есть калькулятор SHA-256.
Три величины, из которых собирается раунд
- Server seed — случайная строка на стороне сервера. До игры показывают не её саму, а хеш SHA-256 от неё. Хеш односторонний: восстановить по нему строку нельзя, а сверить с ним раскрытую позже строку — можно.
- Client seed — строка, которую задаёт игрок. Она лишает сервер возможности заранее подобрать сид, неудобно ложащийся именно на вашу ставку.
- Nonce — счётчик ставок внутри текущей пары сидов. Увеличивается на единицу каждый раунд, поэтому одна и та же пара сидов не выдаёт два одинаковых исхода подряд.
Как из сидов получается результат
Отраслевой стандарт — HMAC-SHA256: ключом берут server seed, сообщением — склейку client seed, nonce и порядкового номера числа внутри раунда. Последний нужен там, где одного числа мало: позиции нескольких мин, карты в раздаче, путь шарика по рядам колышков. На выходе 32 байта, полностью детерминированных — те же входные данные всегда дают тот же результат.
Дальше байты переводят в дробь от нуля до единицы: первые из них читают как разряды числа с основанием 256. Полученную дробь игра раскладывает по своим правилам — сторона монеты, сектор рулетки, корзина в Plinko. Точную формулу для каждой игры описывает страница provably fair, и без неё проверять нечего.
Проверка раунда по шагам
- До игры сохраните хеш активного server seed — он показан в настройках честности.
- Задайте свой client seed. Подойдёт любая строка, важно лишь то, что выбрали её вы.
- Сыграйте и запишите nonce того раунда, который собираетесь проверять.
- Смените пару сидов. Активный server seed не раскрывают намеренно: зная его, можно было бы посчитать ближайшие раунды заранее. Раскрытие происходит после того, как сид выведен из оборота.
- Прогоните раскрытую строку через SHA-256 и сравните с сохранённым хешем. Совпало — сид существовал до ваших ставок, а не появился после них.
- Посчитайте HMAC-SHA256 от той же тройки и разложите результат по формуле игры. Число обязано совпасть с записью в истории ставок.
Отдельный софт не нужен: хватает онлайн-калькулятора хешей или пяти строк на Python.
Что схема не доказывает
Проверяемость говорит ровно об одном: результат не меняли после ставки. О том, сколько игра забирает в среднем, она не сообщает ничего — преимущество казино зашито в таблицу выплат, где коэффициент за выигрыш чуть ниже честного. Раунд может быть безупречно проверяемым и при этом невыгодным на дистанции: это две независимые характеристики, которые постоянно подменяют одну другой.
Второе ограничение — покрытие. У Tonza Originals (Coin Flip, Mines, Roulette, Plinko, Blackjack) раунд считается из сидов и пересчитывается вручную. Слоты и настольные игры внешних студий работают на генераторах провайдера: там своя модель проверки, и сиды из вашего профиля к ней отношения не имеют.
И последнее, чисто практическое. Смысл схемы теряется, если ею не пользоваться ни разу. Client seed разумно менять самому, а не ждать системной ротации, особенно в долгой сессии на одной паре. Проверять стоит и выигрышные раунды тоже: спокойная выборочная сверка говорит о механике больше, чем перепроверка после серии минусов, когда ищут уже не ошибку, а виноватого.






