Вернуться в блог

Provably fair в слотах: что доказывает хеш, а что нет

Обложка статьи: Сертификация слотов: GLI-19, тестирование ГСЧ и пакет, который готовит студия

Спросите игрока криптоказино, почему он доверяет барабанам, и почти наверняка услышите два слова: provably fair. Спросите математика студии, что это значит для слота, и ответ окажется длинным — потому что механизм придумывали для костей и монетки, то есть для игр с одним случайным числом и без лент барабанов. Пятибарабанный слот с лестницей бонусов доказать куда сложнее. Разберём, что механизм действительно гарантирует, где он ломается на современной архитектуре и куда всё это движется.

Механизм в одном абзаце

До раунда оператор выбирает серверный сид и показывает его хеш. Вы задаёте клиентский сид. Исход выводится из ключевого хеша — обычно HMAC-SHA256 — от серверного сида, клиентского сида и нонса, который считает ваши ставки. После смены сида сервер раскрывает исходное значение; вы пересчитываете хеш сами и убеждаетесь, что полученный результат — тот самый, который дают эти сиды. Обязательство через хеш и делает мошенничество обнаружимым: сервер не может подменить свой сид задним числом, не сломав опубликованный заранее хеш.

Гарантия действительно сильная, но её границы стоит назвать честно. Она доказывает, что оператор не подменил случайное число после того, как увидел вашу ставку. Она не доказывает ни RTP, ни ленты барабанов, ни таблицу выплат, ни отсутствие смещения при переводе числа в исход. Всё это живёт в логике игры, и проверка сидов её не касается.

Почему слот сложнее кости

Бросок кости тратит одно число в известном диапазоне. Раунд слота может тратить десятки: по одному на остановку барабана, ещё на каскады, ещё на шаги бонуса, ещё на номиналы денежных символов. Чтобы раунд оставался проверяемым, игра должна задать детерминированный поток — число один это барабан один, число два барабан два — и опубликовать это соответствие. Иначе игрок воспроизведёт байты, но не спин.

Отсюда три практические проблемы. Первая — масштабирование: превратить 256-битный хеш в позицию барабана без модульного смещения нужно аккуратно, наивная реализация сдвигает вероятности на доли процента. Игрок этого не увидит, а лаборатория увидит. Вторая — платформы с предвычисленными исходами: архитектуры, которые хранят симулированные раунды и тянут один по весу (модель Stake Engine и нескольких новых RGS), в классическую схему не укладываются, потому что исход существует раньше вашего клиентского сида. Там можно фиксировать не построение раунда, а его извлечение из набора. Третья — дерево бонуса: если функция тратит переменное количество чисел, верификатор обязан воспроизвести всё дерево решений, а значит, дерево придётся опубликовать.

Что говорят стандарты и чего не говорят

Лабораторные стандарты вроде GLI-19 интересуются качеством ГСЧ, инициализацией, масштабированием и целостностью потока чисел. Публичного commit-reveal они не требуют, и provably fair не заменяет сертификацию: лаборатории всё равно нужен алгоритм, статистические батареи и проверка RTP. На лицензированных европейских рынках операторы спрашивают именно сертификат, а provably fair остаётся функцией доверия для игрока. Вещи дополняющие, и студии, которые считают одно заменой другого, обычно обнаруживают разрыв поздно.

Если сложить картину

Поставьте рядом четыре вещи — схему обязательства, то как современный слот потребляет случайность, предвычисленную архитектуру крипто-нативных платформ и реальный предмет лабораторной проверки — и увидите направление. Проверяемость переезжает от «докажи это число» к «докажи, что раунд взят из зафиксированного набора». Интересный инженерный вопрос теперь не в хеше, а в том, что именно фиксируется и способен ли игрок это проверить без математического образования.

И честное наблюдение про поведение: проверяют единицы. Исследования доверия в онлайн-гемблинге говорят то же, что логи любого оператора: наличие инструмента влияет на ощущение честности гораздо сильнее, чем его использование. Это не повод его не делать — это повод делать его для того меньшинства, которое действительно проверяет, потому что именно оно пишет те сообщения на форумах, которые читают все остальные.

Куда это идёт

  • Обязательство поднимется на уровень выше. Логично ожидать, что предвычисленные платформы начнут публиковать корень Меркла набора исходов до релиза и доказывать принадлежность выданного раунда этому набору. Свойство обнаружимости сохраняется, а притворяться, что раунд построен из вашего сида, больше не нужно.
  • Верификация станет функцией платформы, а не игры. Писать свой верификатор каждой студии бессмысленно; экономика толкает это в слой RGS — так же, как раньше туда ушла сертификация платформенного ГСЧ.
  • Регулируемые рынки возьмут словарь, а не механизм. Прозрачность там скорее придёт в виде обязательного отображения RTP и опубликованной вероятности максимального выигрыша, чем в виде commit-reveal: регулятор умеет аудировать сертификат, но не готовность игрока считать хеш.

Что с этим делать студии

Если делаете игру под крипто-нативную платформу, решайте рано: держите математический модуль детерминированным, задайте поток чисел явно, задокументируйте соответствие и считайте верификатор отдельной поставкой со своими тестами. Если делаете под лицензированных операторов, на первом месте пакет сертификации, а provably fair — опциональный слой презентации. В обоих случаях не позволяйте вывеске делать работу, которую не сделал код: значок без опубликованного соответствия — самый быстрый способ потерять ровно ту аудиторию, ради которой всё затевалось.

Дальше по теме: что на самом деле проверяет сертификация и как устроен современный HTML5-слот. Оба типа игр входят в нашу разработку слотов.

Читать дальше

Вам может понравиться