Нажмите здесь, чтобы просмотреть исходный сертификат iTech Labs.
Обзор системы
Генератор случайных чисел создает доказуемые и абсолютно честные случайные числа, которые используются для определения результата каждой игры, сыгранной на сайте.
Каждый пользователь может проверить исход любой игры полностью детерминированным способом. Предоставляя один параметр - клиентский сид, на входы генератора случайных чисел, Play2x не может манипулировать результатами в свою пользу.
Генератор случайных чисел Play2x позволяет каждой игре запрашивать любое количество случайных чисел из заданного начального числа клиента, начального числа сервера и одноразового номера.
Каждая игра использует этот список случайных чисел, чтобы определить его результат, преобразовав их в необходимый результат:
- в карты или камни (hilo, stairs, triple)
- Перемешивание списка возможных результатов (keno, mines, tower )
- в номера (crash, dice)
- в путь (plinko)
Входные данные:
У каждого пользователя есть один активный клиентский сид, серверный сид и одноразовый номер (nonce), увеличивающийся каждый раз после игры.
Клиентский сид:
Случайная строка, которая генерируется пользователем. По умолчанию случайная строка от сервера.
Серверный сид:
Начальное число сервера генерируется сервером и представляет собой произвольно сгенерированную шестнадцатеричную (0-9, a-f) строку из 64 символов. Play2X хэширует начальное число сервера алгоритмом sha256 (википедия).
Пользователь может сменить свой текущий серверный сид. При смене сида автоматически генерируется новый активный сид и сбрасывается одноразовый номер (nonce) на 0.
Затем предыдущий сид, который теперь неактивный, разворачивается и может быть проверен с помощью sha256.
Одноразовый номер (nonce):
Одноразовый номер - это число, которое увеличивается на единицу каждый раз, когда игра окончена. Это позволяет генерировать уникальный вход для игры, и это единственный параметр, который изменяется каждый раз после игры.
Конвертация входных данных в байты:
Клиентский сид, серверный сид и одноразовый номер используются в качестве входных параметров для генератора случайных чисел.
Байты генерируются с использованием функции HMAC_SHA512 (K, m) (википедия). Эта функция создает 64 случайных байта (0-255) из заданного начального серверного сида (K) и сообщения (m).
Сообщение создается с использованием начального числа клиента(клиентского сида), одноразового номера (nonce) и инкрементного числа.
Это число, начинающееся с 0, увеличивается на единицу каждый раз, когда используются 64 байта, возвращаемые функцией HMAC_SHA512 (K, m). Затем сообщение создается путем объединения начального числа клиента, двоеточия, одноразового номера, другого двоеточия и добавочного числа.HMAC_SHA512(server_seed, client_seed:nonce:round):
Начните прямо сейчас, и получите бонус при регистрации