18+ · Азартные игры связаны с риском · Помощь · О нас
Русский
USD · 24h · 19:34 UTC · Kraken

Криптоаналитика

Provably fair: что это такое и как самому проверить раунд

Что такое provably fair, или доказуемая честность: серверный и клиентский сид, nonce, SHA-256 и HMAC, проверка броска дайса на примере и признаки подделки.

Автор: Алексей Соколов Проверено: Мария Волкова Обновлено 1 мин чтения

Provably fair, или «доказуемая честность», устроена так: казино заранее фиксирует результат раунда криптографическим хешем, а после игры раскрывает исходные данные, чтобы игрок сам пересчитал результат и убедился, что его не подменили. Всё держится на открытых стандартах SHA-256 и HMAC, поэтому проверять раунд можно, не доверяя казино на слово. Ниже расскажем, из чего складывается проверка, покажем полный пример на реальных числах и честно перечислим, чего provably fair не гарантирует.

Предупреждение. Provably fair относится к играм онлайн-казино. В России и Казахстане онлайн-казино запрещены, в Беларуси и Украине законны только местные лицензиаты. Игра на сайте без лицензии вашей страны может нарушать закон там, где вы живёте, и не даёт местной защиты, даже если каждый раунд на сайте можно проверить.

Что provably fair доказывает, а что нет

Доказывает Не доказывает
Результат раунда определён до вашей ставки и не изменён после Что у игры нет преимущества казино: оно заложено в формулу выплат
Казино не подогнало исход под размер или направление вашей ставки Что казино выплатит выигрыш и не заблокирует счёт
Вы сами повлияли на результат через клиентский сид Что у сайта есть лицензия и что он законен в вашей стране
Любой раунд можно пересчитать после раскрытия сида Что слоты сторонних провайдеров честны: они работают по другой схеме

Из чего складывается проверка

  • Серверный сид: случайная строка, которую генерирует казино. До игры её держат в секрете.
  • Хеш серверного сида: результат SHA-256 от серверного сида. Казино показывает его заранее. Восстановить сид по хешу нельзя, а вот по раскрытому сиду легко убедиться, что хеш был именно от него.
  • Клиентский сид: строка, которую задаёте вы (или браузер генерирует её случайно). Из-за него казино не может заранее подобрать «удобный» результат.
  • Nonce: порядковый номер ставки с текущей парой сидов: 1, 2, 3 и так далее.
  • Курсор: номер дополнительного блока случайности, если на одну ставку нужно больше чисел (например, при раздаче карт).

Хеш-функция SHA-256 описана в стандарте NIST FIPS 180-4, а конструкция HMAC в RFC 2104. Это общепринятые криптографические стандарты, а не изобретение казино.

Как проверить раунд по шагам

  1. До игры казино показывает хеш серверного сида. Сохраните его (скопируйте или сделайте скриншот).
  2. Задайте свой клиентский сид или оставьте случайный.
  3. Играйте. Каждая ставка получает следующий nonce.
  4. Смените пару сидов в настройках fairness. Казино раскроет старый серверный сид и покажет хеш нового.
  5. Сверьте хеш: посчитайте SHA-256 от раскрытого сида и сравните с тем, что сохранили.
  6. Пересчитайте результат ставки по опубликованной формуле игры: HMAC-SHA256 с ключом «серверный сид» от строки «клиентский сид:nonce:курсор», затем переведите байты в число, а число в результат игры.

Пример на реальных числах

Возьмём схему, которую Stake описывает в документации к своим играм, и посчитаем бросок в дайсе. Данные мы подобрали для примера, а результаты получены настоящим вычислением.

Параметр Значение
Серверный сид a1b2c3d4e5f60718293a4b5c6d7e8f90
SHA-256 серверного сида (его казино показало бы заранее) ff25d2389ab7917a77cc0c3546331401054d53cb7b2edeedb7b4e7742bb5286d
Клиентский сид moskva2026
Nonce 1
Строка для HMAC moskva2026:1:0
HMAC-SHA256 (ключ: серверный сид) 2e6a946c567d78a2441b0a053c3341b279e7bf265eff70ff829dd0b0ec21db37

Как байты превращаются в число

Первые четыре байта HMAC в шестнадцатеричном виде: 2e, 6a, 94, 6c. В десятичном: 46, 106, 148 и 108. Число от 0 до 1 получается так: 46 / 256 + 106 / 256² + 148 / 256³ + 108 / 256⁴ = 0,181313…

Как число превращается в результат дайса

Для дайса Stake использует формулу: число × 10 001, потом деление на 100 с отбрасыванием лишнего. 0,181313 × 10 001 = 1 813,3…; округляем вниз до 1 813 и делим на 100. Выпало 18,13. Если вы ставили «меньше 50», ставка выиграла, если «больше 50», проиграла.

Повторить расчёт можно в любом инструменте, который считает SHA-256 и HMAC-SHA256, в том числе в стандартных библиотеках языков программирования. Стоит изменить в сиде или nonce хотя бы один символ, и результат станет совсем другим: поэтому подмену и видно.

Чем считать: программой или онлайн-калькулятором

Для проверки подойдёт любой калькулятор SHA-256 и HMAC-SHA256, в том числе онлайн. Это безопасно: раскрытый серверный сид для будущих ставок уже не используется, а клиентский сид доступа к счёту не даёт. А вот чего в такие сервисы вводить нельзя: пароль от казино, сид-фразу кошелька и любые ключи. Надёжнее всего посчитать HMAC стандартной библиотекой языка программирования на своём компьютере: тогда результат не зависит ни от казино, ни от чужого сайта.

Почему по хешу нельзя заранее узнать сид

SHA-256 работает в одну сторону: посчитать хеш от строки легко, а восстановить строку по хешу практически невозможно. У 256-битного выхода 2²⁵⁶ вариантов, это число из 78 знаков. Поэтому игрок, видя хеш до ставки, не может узнать сид и предсказать результат, а казино, опубликовав хеш, уже не может подменить сид: любой другой сид дал бы другой хеш. На этом свойстве держится вся схема, и именно поэтому «предикторы», которые продают в Telegram, с настоящим provably fair работать не могут.

Как это устроено в разных играх

Игра Как число превращается в результат
Дайс Число × 10 001 / 100, результат от 0,00 до 100,00
Краш Точка краша по опубликованной формуле игры со встроенным преимуществом казино
Плинко На каждом ряду своё число решает, куда упадёт шарик, влево или вправо
Мины Числа задают, где на поле стоят мины
Карточные игры Числа тасуют колоду (алгоритм Фишера–Йетса)

О краш-играх, где точку краша считают из тех же сидов, подробно рассказывает страница краш-игры.

Другие схемы: общие сиды и цепочки хешей

  • Общие сиды раунда. В многопользовательских играх вроде Aviator серверный сид раунда объединяют с клиентскими сидами первых игроков, сделавших ставку. Данные для проверки есть в истории каждого раунда.
  • Цепочка хешей. Оператор заранее генерирует длинную цепочку, в которой каждый хеш получается из следующего, и проигрывает её в обратном порядке. Конечный хеш публикуют заранее, и по нему можно проверить, что все будущие раунды были определены до начала игры.

Откуда взялась идея

Проверяемая честность родилась вместе с биткоин-играми. Ранние игры вроде SatoshiDice, появившейся в 2012 году, определяли результат по данным самой транзакции и заранее опубликованным секретам, так что пересчитать исход мог любой. Позже казино перешли на схему «серверный сид плюс клиентский сид плюс nonce»: играть так можно быстро, без ожидания блоков, а возможность проверки сохраняется. Как устроены сами платежи в биткоине, рассказывает страница биткоин-казино.

Почему у ставок на спорт нет provably fair

Provably fair проверяет случайное число, которое генерирует казино. А исход футбольного матча казино не генерирует, он решается на поле. Поэтому в ставках на спорт честность зависит от правил расчёта, линии и надёжности оператора, а не от криптографии. Если спортбук называет себя provably fair, речь о его казино-играх, а не о ставках. Особенности ставок разобраны на странице крипто ставки.

Чем provably fair отличается от сертифицированного генератора

Слоты и live-игры сторонних провайдеров, как правило, не provably fair. Их честность подтверждают по-другому: генератор случайных чисел и математику игры проверяют аккредитованные лаборатории, например GLI, а за выплатами следит регулятор. Здесь игрок доверяет лаборатории и регулятору, а не проверяет раунд сам. Честными могут быть обе модели, разница лишь в том, кто проверяет.

Как распознать поддельный provably fair

  • Хеш серверного сида показывают не до ставки, а только после.
  • Клиентский сид поменять нельзя.
  • Серверный сид после смены пары не раскрывают или раскрывают «по запросу в поддержку».
  • Формула перевода в результат не опубликована, есть только кнопка «проверить» на сайте самого казино.
  • Расчёт на стороне с теми же данными даёт другой результат.

Встроенным инструментом проверки на сайте казино пользоваться можно, но настоящая проверка это независимый расчёт.

Частые ошибки при проверке

  • Не тот nonce. В одних казино ставки считают с 0, в других с 1. Сверьтесь с номером ставки в её деталях.
  • Лишние символы. Пробел или перенос строки в конце скопированного сида полностью меняют HMAC.
  • Регистр букв. «Moskva2026» и «moskva2026» это два разных сида.
  • Сид ещё не раскрыт. Пока пара сидов активна, серверный сид секретен. Сначала смените пару.
  • Не та формула. У каждой игры своё преобразование числа в результат, и формула дайса для плинко не подойдёт.

Как вести журнал проверок

Если хотите проверять игру регулярно, заведите простой журнал: хеш серверного сида до начала сессии, ваш клиентский сид, номера ставок, которые собираетесь проверить, и раскрытый серверный сид после смены пары. Хватит таблицы или заметки. Проверять каждую ставку незачем: выборочной проверки нескольких раундов, особенно самых крупных проигрышей, достаточно, чтобы понять, держит ли казино слово.

Provably fair в Telegram-казино и на сомнительных сайтах

Надпись «provably fair» ничего не стоит, если за ней нет хеша до ставки, изменяемого клиентского сида и опубликованной формулы. В Telegram-ботах и на сайтах без лицензии «честная игра» часто сводится к картинке с замком и кнопке «проверить», которая просто показывает «OK». Настоящая схема всегда позволяет пересчитать результат вне сайта.

Что делать, если проверка не сошлась

  1. Исключите свои ошибки: проверьте nonce, пробелы, регистр и формулу именно этой игры.
  2. Сравните хеш: если SHA-256 раскрытого сида не совпадает с хешем, который вы сохранили до игры, это прямое доказательство подмены. Сохраните скриншоты.
  3. Напишите в поддержку, приложите данные ставки и свой расчёт и попросите ответить письменно.
  4. Подайте жалобу в порядке, который предусматривает лицензия (через службу ADR или печать регулятора), и приложите расчёт.
  5. Перестаньте играть на этом сайте и выведите остаток: казино, которое не может подтвердить честность раунда, доверия не заслуживает.

Provably fair и выбор казино

Проверяемые раунды полезны, но это лишь один пункт из многих. Получите ли вы деньги, больше зависит от лицензии, лимитов вывода, пункта о проверке личности и условий бонусов. Порядок проверки описан на главной странице раздела, проверка личности на странице казино без KYC, а условия бонусов на странице бонусы крипто казино.

Частые вопросы о provably fair

Что такое provably fair простыми словами?

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

Если игра provably fair, значит, казино не в плюсе?

Нет. Преимущество казино заложено в формулу выплат: например, в краш-игре Stake заявлено преимущество 1 %. Provably fair доказывает только то, что результат не изменили после ставки.

Зачем менять клиентский сид?

Клиентский сид участвует в расчёте результата, поэтому казино не может заранее подобрать удобный исход. А смена пары сидов заставляет казино раскрыть старый серверный сид, без которого прошлые ставки не проверить.

Можно ли проверить слоты на provably fair?

Как правило, нет. Слоты и live-игры сторонних провайдеров работают на генераторах случайных чисел, которые проверяют аккредитованные лаборатории вроде GLI. Provably fair чаще встречается в собственных играх казино: дайс, краш, плинко, мины.

Как проверить HMAC-SHA256 без сайта казино?

Любым инструментом или библиотекой, которые считают SHA-256 и HMAC-SHA256, например стандартными модулями языков программирования. Главное ввести сиды и nonce точно, символ в символ.

Защищает ли provably fair от невыплаты выигрыша?

Нет. Он подтверждает честность раунда, но ничего не говорит о лицензии, лимитах вывода и проверке личности. Это нужно проверять отдельно по правилам казино.

Почему моя проверка не совпала с результатом казино?

Чаще всего из-за неверного nonce (счёт с 0 или с 1), лишнего пробела в скопированном сиде, другого регистра букв или формулы от другой игры. Если всё введено точно, а результат не совпадает, это серьёзный повод не играть на этом сайте.

Законно ли играть в provably fair игры в России?

Нет. Provably fair относится к играм онлайн-казино, а они в России запрещены законом № 244-ФЗ, как бы хорошо ни проверялись раунды. В Казахстане интернет-казино тоже запрещены, в Беларуси и Украине законны только местные лицензиаты.

Источники

  1. Stake: provably fair, реализация (HMAC_SHA256, серверный и клиентский сид, nonce, курсор)
  2. Stake: provably fair, преобразование байтов в числа
  3. Stake: provably fair, события игр (дайс, краш)
  4. NIST FIPS 180-4: Secure Hash Standard (SHA-256)
  5. RFC 2104: HMAC
  6. Spribe: Aviator
  7. Gaming Laboratories International (GLI)
  8. Федеральный закон № 244-ФЗ (КонсультантПлюс)
  9. Wikipedia: SatoshiDice