Ana sayfa

Provably Fair

WINSHOT · winshot-v4

Bu sayfanın metni şu anda Rusça olarak mevcuttur.

Проверить апгрейд

Введите Roll ID нужного апгрейда, чтобы проверить его результат через Provably Fair.

Проверяемый результат апгрейда: сервер фиксирует секрет до принятия ставки и раскрывает его после расчёта раунда.

1. Что именно проверяется

Новые раунды используют winshot-v4: 100 000 билетов (0–99 999), RTP и случайно смещённый выигрышный диапазон. Старые winshot-v1, winshot-v2 и winshot-v3 проверяются по правилам своей версии. Для каждого предложения сервер создаёт случайный 32-байтовый server seed и возвращает его SHA-256 hash. После получения предложения браузер генерирует client seed и отправляет его при принятии ставки. Предложение действует 60 секунд.

После завершения сервер раскрывает server seed, client seed, ID раунда, билет и порог победы. Сохранённый заранее хеш позволяет проверить, что сервер не заменил секрет после получения client seed. Сам по себе хеш, полученный вместе с готовым результатом, этого не доказывает.

2. Шанс и выигрышный диапазон

Расчёт выполняется по целым минимальным единицам коинов. stake — стоимость предметов и добавленных коинов; target — цена цели. Для новых раундов winshot-v4 chanceBps = min(maxChanceBps, floor(stake × rtpBps / target)), где maxChanceBps равен 8000: максимальный шанс — 80%. При RTP 90% rtpBps равен 9000. Старые раунды проверяются с сохранённым для них пределом; в доказательствах без maxChanceBps используется прежнее значение 9000. В старой winshot-v1 вместо rtpBps используется 10000. Ставка с шансом ниже 1% отклоняется, цель должна быть дороже ставки. Выигрышные билеты распределяются между источниками стоимости пропорционально с точным целочисленным округлением. Источник выигранного билета наследуется новым предметом.

Из HMAC-SHA256 берутся первые четыре байта как беззнаковое число big-endian. В v3/v4 значения от 4 294 900 000 включительно отбрасываются, чтобы исключить смещение вероятностей. В v4 начало выигрышного диапазона независимо выводится из server seed через HMAC с меткой range. Диапазон содержит ровно threshold билетов и может переходить через 99 999 к нулю. Победа наступает, если циклическое расстояние от rangeStart до ticket меньше threshold. В v1/v2 используется исходный 32-битный билет без отбора.

ticket = unbiasedHmacTicket(serverSeed, ["winshot-v4", String(roundId), clientSeed], 100000)
rangeStart = unbiasedHmacTicket(serverSeed, ["winshot-v4", "range"], 100000)
threshold = chanceBps * 10
rangeEnd = (rangeStart + threshold) % 100000
offset = (ticket - rangeStart + 100000) % 100000
won = offset < threshold
rollPercent = ticket / 100000 * 100

3. Как проверить раунд

Сохраните commitment из ответа /api/upgrades/prepare до принятия ставки. После завершения данные вашей игры доступны в ответе /api/upgrades/{id}/accept и через GET /api/upgrades/{id} после авторизации. Проверка ниже принимает JSON этого ответа и не отправляет введённые данные на сервер.

Хеш commitment вычисляется от UTF-8 строки serverSeed, содержащей 64 hex-символа; ключ HMAC — это уже декодированные из hex 32 байта. ID раунда в сообщении обязательно передаётся строкой. Различие между текстом и байтами важно для воспроизведения результата.

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

4. Анимация и границы проверки

Вращение стрелки не генерирует случайное число. Быстрый и медленный режимы показывают один и тот же серверный результат; переключение скорости не меняет вероятность.

При обычной игре браузер автоматически сопоставляет раскрытый секрет с исходным commitment. Полный пересчёт HMAC доступен в форме ниже. Провал проверки требует разбора сохранённых параметров раунда, а не повторной ставки.

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