Что такое provably fair и как это работает?
Используйте калькулятор Provably Fair ниже, чтобы проверить каждый результат и понять, как Cloudbet Originals обеспечивает честность коэффициентов.Делая ставки в Cloudbet Originals, вы можете проверить каждый результат сами. Никаких догадок и уловок — только чистая, доказуемая случайность, которую вы можете перепроверить.
Что такое «provably fair»?
Provably fair (доказуемая честность) — это система, которую используют онлайн-казино, чтобы каждый результат игры был честным и мог быть независимо проверен игроком. Вместо того чтобы просто доверять казино на слово, вы получаете математическое доказательство того, что результаты не были подтасованы или изменены во время игры.
Преимущество Cloudbet Provably Fair:
- Cloudbet Originals работают на новейших протоколах provably fair, поэтому каждый результат защищен от подмены, независимо проверяем и математически честен.
- После завершения раунда и раскрытия сидов любой может с математической точностью убедиться, что результат был сгенерирован честно.
- Это как если бы вам вручили схему каждого раунда — никаких скрытых уловок и оправданий после спина.
Как обеспечивается доказуемая честность
Доказуемая честность означает доказательство двух вещей:
- У каждой игры есть доступ к по-настоящему случайной, защищенной от подмены последовательности чисел — этому посвящена данная страница.
- Эта случайная последовательность определяет результат игры фиксированным, прозрачным способом — при одинаковых числах вы всегда получаете одинаковый результат. Эта часть зависит от конкретной игры — смотрите, как это работает в Mines и других наших Originals.
Чтобы гарантировать настоящую случайность, в генерации чисел участвуют и игрок, и Cloudbet — поэтому ни одна из сторон не может в одиночку контролировать результат, а Cloudbet обязан доказать, что не изменил свои входные данные постфактум.
Ключевые термины
- Бит: базовая единица цифровой информации — «1» или «0». Последовательности битов представляют числа в двоичном виде.
- Байт: 8 бит, до 256 возможных значений. Наши сиды используют 32-байтные (256-битные) числа.
- Сид: исходное значение для генератора случайных чисел. Один и тот же сид всегда дает один и тот же результат.
- Сид сервера: секретный код Cloudbet — криптографически случайная 32-байтная строка, сгенерированная перед игрой, зафиксированная и раскрываемая после.
- Сид клиента: ваш код — задайте его сами или позвольте браузеру сгенерировать его (до 255 символов).
- Nonce: счетчик раундов, который увеличивается каждый раз при игре с одной и той же парой сидов, поэтому каждый раунд уникален.
- Хеш / Коммитмент: защищенный отпечаток сида сервера, которым с вами делятся до начала игры. Он необратим — никто не может по нему вычислить исходный сид, но после раскрытия сида, захешировав его самостоятельно, вы должны получить точно такой же Коммитмент.
- Сигнатура раунда: сид сервера, сид клиента и nonce, объединенные и захешированные вместе — фактические входные данные, определяющие результат вашего раунда.
- SHA3-256: алгоритм хеширования, используемый для создания Коммитментов и Сигнатур раунда. Одни и те же входные данные всегда дают один и тот же результат фиксированной длины; процесс необратим.
- SHAKE256: гибкий алгоритм семейства SHA-3, превращающий Сигнатуру раунда в поток случайных чисел, из которых строится результат вашей игры — одни и те же входные данные всегда дают одинаковый результат, и именно это делает проверку возможной.
- Модуло: остаток от деления одного числа на другое (например, 16 % 5 = 1) — используется для перевода случайного числа в один из фиксированного набора возможных результатов.
- Ротация сидов: обновление обоих сидов для получения новой случайной пары.
Подготовка к игре
Перед началом каждого раунда создаются два числа: Сид сервера и Сид клиента.
Игровой сервер Cloudbet генерирует Сид сервера с помощью криптографической функции randomBytes в Node.js — 32-байтное (256-битное) число, по сути защищенный цифровой подброс монеты, повторенный 256 раз. Он держится в секрете до ротации пары сидов. Чтобы доказать, что он не будет изменен позже, сервер сразу же хеширует его (с помощью SHA3-256) в Коммитмент, которым делится с вами до игры — поэтому после раскрытия сида вы можете захешировать его сами и убедиться, что он совпадает.
Сид клиента по умолчанию генерируется вашим браузером, либо вы можете задать свой собственный.

Во время игры
Ваши Сид сервера, Сид клиента и Nonce объединяются и хешируются с помощью SHA3-256 в единую Сигнатуру раунда — представьте это как двух людей, каждый из которых тайно вносит свою половину имени, так что ни один заранее не знает полного результата.

Затем эта Сигнатура раунда передается в SHAKE256, который генерирует поток случайных чисел, определяющих результат вашей игры. Поскольку SHAKE256 всегда выдает один и тот же результат для одних и тех же входных данных, любой, у кого есть раскрытые сиды и nonce, может воспроизвести ваш точный результат — именно это делает проверку возможной. Преобразование этого потока случайных чисел в конкретный игровой результат (например, где окажутся мины или что выпадет при броске кубика) работает по-разному для каждой игры — смотрите, как это устроено в Mines и других наших Originals.

Честные результаты игр также опираются на выборку с отбраковкой (rejection sampling) — метод, который гарантирует, что случайно сгенерированное число выбирает среди всех возможных результатов с действительно равной вероятностью, а не отдает предпочтение одним результатам перед другими из-за неравномерного деления.
Для подробного примера выборки с отбраковкой мы подготовили короткий пример с броском 10-гранного кубика, где, поскольку у нас 10 возможных результатов, P равно 10.
Обычно бросок 10-гранного кубика делается путем случайной генерации числа «X» и вычисления X по модулю 10, поскольку, как и бросок кубика, эта операция имеет 10 возможных результатов. Однако если сделать это без предварительной выборки с отбраковкой, младшие результаты будут несправедливо чаще выпадать. Допустим, X — это случайное 4-битное число, то есть у него 2⁴=16 возможных значений: от 0 до 15. Тогда все возможные результаты X по модулю 10 (X % 10) таковы:
- Если X от 0 до 9: 0 … 9
- Если X от 10 до 15: 0 … 5
Вот наглядная иллюстрация:

Каждый из результатов броска кубика от 0 до 5 может получиться из двух разных значений X, тогда как результаты 6–9 — только из одного. Это означает, что броски 0–5 в два раза вероятнее бросков 6–9, что несправедливо:

Это происходит потому, что 16 не делится нацело на 10. Именно поэтому при выборке с отбраковкой мы находим наибольшее число, которое ДЕЙСТВИТЕЛЬНО делится нацело на 10. При 4 битах наибольшее значение X может быть 15, а наибольшее кратное 10 в этом диапазоне значений — 10, поэтому мы отбраковываем все случайно сгенерированные числа, которые больше или равны 10. Это означает, что возможными значениями X остаются только 0 … 9. Примечание: если число отбраковано, генерируется новое.

После шага отбраковки мы вычисляем X по модулю P, чтобы получить число от 0 до P. Это и определяет, какой из P равновероятных результатов мы выбираем.
Как проверить результаты своей игры
- Перед игрой запишите Коммитмент и свой Сид клиента.
- После раунда выполните ротацию сидов, чтобы раскрылся использованный Сид сервера.
- Захешируйте раскрытый Сид сервера с помощью SHA3-256 — он должен совпасть с сохраненным вами Коммитментом. Это подтверждает, что сид не менялся в ходе игры.
- Вставьте свои Сид сервера, Сид клиента и Nonce в калькулятор проверки ниже — он восстановит результат с нуля.
- Сравните это с тем, что вы увидели в игре. Совпадение подтверждает честность раунда; несовпадение сигнализировало бы о подтасовке (чего с Cloudbet не произойдет).
Часто задаваемые вопросы о provably fair
1. Почему сиды такие длинные и выглядят случайными?
Потому что случайность — основа честности. Длинные строки символов не позволяют ни Cloudbet, ни игрокам предсказывать или подтасовывать результаты. Больше энтропии = больше доверия.
2. Могу ли я изменить свой сид клиента?
Да. Перейдите в настройки честности в игре и в любой момент введите собственный сид клиента. Вы можете менять его так часто, как захотите.
3. Что если сид сервера не совпадает с исходным хешем?
Значит, что-то не так. Смысл хеширования как раз в том, чтобы доказать, что сид был зафиксирован до начала игры. Несовпадение сигнализировало бы о подтасовке — но с Cloudbet этого не произойдет.
4. Нужно ли мне разбираться в криптографии, чтобы этим пользоваться?
Нет. Инструмент делает всю тяжелую работу за вас. Вам нужно лишь скопировать, вставить и проверить.
5. Что такое хеш?
Представьте его как цифровую подпись. Он создается путем преобразования сида сервера с помощью криптографического алгоритма. Если кто-то попытается позже изменить сид, хеш будет другим — и вы заметите обман.
6. Могу ли я использовать сторонние инструменты для проверки результатов?
Да. Система Cloudbet совместима с независимыми инструментами проверки, поэтому вы можете перепроверить результаты даже за пределами нашей платформы.
7. Почему это важно, если игры и так увлекательны?
Потому что честность — это не бонусная опция, а обязательное требование. Делая ставки в крипте, вы заслуживаете полного контроля и никаких догадок. Provably fair делает это нормой по умолчанию.