Генерация случайных чисел

Для каждой поддающейся проверке ставки мы используем сид сервера (serverSeed), сид клиента (clientSeed), одноразовый номер (nonce) и курсор (cursor) в качестве входных параметров для функции генерации случайных чисел. Эта функция использует криптографическое хеширование HMAC_SHA256 для генерации байтов, которые затем используются в качестве основы для того, как мы генерируем доказуемо честные и случайные результаты игр на нашей платформе.

Сид сервера (serverSeed)

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

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

Обратите внимание, что еще до того как будет изменен текущий сид сервера, мы публикуем хешированную версию будущего сида сервера (на который будет происходить замена текущего). Это необходимо для гарантии того, чтобы мы не подтасовываем сид сервера имея знание о новом сиде клиента для преднамеренного ухудшения игровых результатов игрока.

Как только старый сид сервера заменяется на новый, публикуется нехешированное значение старого сида сервера. С этого момента игрок может убедиться, что хешированный сид сервера совпадает с нехешированным. Это можно сделать с помощью любого онлайн-сервиса, который позволяет сгенерировать хешированную версию сида из раскрытого нехешированного сида хешированием по алгоритму SHA256 (например тут - SHA256 Hash Generator).

Сид клиента (clientSeed)

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

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

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

Изменить пару сидов клиента и сервера можно через модальное окно контроля за игрой.

Одноразовый номер (Nonce)

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

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

Курсор (Cursor)

Мы используем 4 байта данных для генерации одного результата игры, а поскольку SHA256 ограничен 32 байтами, мы используем эту реализацию курсора, чтобы дать нам возможность создавать больше игровых событий без необходимости изменять наш алгоритм доказуемой честности.

Курсор увеличивается только тогда, когда игра требует генерации более 8 (32 байта / 4 байта) возможных результатов. Например, когда нам нужно определить траекторию падения шарика в Plinko через 16 рядов.

Курсор начинается с 0 и увеличивается на 1 каждый раз, когда функция HMAC_SHA256 возвращает 32 байта. Если мы не требуем, чтобы для игровых событий генерировалось более 8 случайных чисел, то курсор не увеличивается, так как нет необходимости генерировать какие-либо дополнительные возможные исходы игры.

Игры, где значение курсора увеличивается:

  • Plinko (до 2 приращений, чтобы охватить до 16 возможных движений шарика влево и вправо при падении)
  • Miner (до 3 приращений, чтобы охватить до 24 возможных положений мин на доске)
  • Nuts (5 приращений, чтобы охватить 36 возможных положений камней на доске - до 4 камней на каждый уровень)
  • Keno (2 приращения, чтобы охватить 10 возможных положений шаров с номерами на доске)
  • Coinflip (до 3 приращений, чтобы охватить до 20 возможных исходов выпадения монетки)

Игры, где значение курсора не увеличивается (значение по-умолчанию 0):

  • Cookies
Установка соединения...