Provably Fair
Алгоритм COSMODROP позволяет повторно вычислить случайный результат апгрейда после раскрытия серверного seed. Это проверка соответствия результата зафиксированным данным, а не гарантия выигрыша, прибыли или независимый аудит всего сервиса.
Что фиксируется перед игрой
Для аккаунта создаются секретный server seed, публичный хеш SHA-256 этого seed, client seed и счётчик nonce. Активный server seed не раскрывается: зная его, можно было бы предсказать следующие результаты. Сохраните публичный хеш до раунда для дальнейшего сравнения.
Server seed раскрывается после ротации пары seed, а не автоматически после каждого раунда. Ротация создаёт новую пару для следующих игр; предыдущая становится доступной для проверки.
Вычисление результата
Шкала COSMODROP — 1 000 000 ppm. Roll находится в диапазоне 0–999 999. Сервер вычисляет HMAC-SHA256 с текстовым server seed в качестве ключа и строкой clientSeed:nonce в UTF-8 в качестве сообщения. Первые 8 шестнадцатеричных символов результата преобразуются в 32-битное целое число.
digest = HMAC_SHA256(serverSeed, clientSeed + ":" + nonce)
raw = integer(digest[0:8], base=16)
rollPpm = floor(raw * 1_000_000 / 4_294_967_296)
chancePpm = floor(stakeUnits * (1_000_000 - edgePpm) / targetUnits)
WIN = rollPpm < chancePpmСуммы и edge используются в целых единицах, как в серверной записи раунда. Процент равен chancePpm / 10 000. Равенство rollPpm и chancePpm означает LOSE. Для точного воспроизведения умножение выполняется в целочисленной арифметике достаточной разрядности, без округления промежуточных значений.
Как проверить раунд
- Перед ставкой откройте панель Provably Fair и сохраните активный публичный хеш, client seed и nonce.
- Из истории игр в профиле возьмите nonce, фактический chancePpm, rollPpm и результат нужного раунда. Используйте его параметры, а не текущие настройки режима.
- В истории выберите проверку нужного раунда. Если соответствующий server seed ещё активен, статус проверки будет ожидать его раскрытия. Незавершённую проверку не следует считать успешной.
- Убедитесь, что SHA-256 раскрытого server seed совпадает с хешем, сохранённым до раунда. Seed хешируется как текст UTF-8, а не как декодированные hex-байты.
- Повторите вычисление по формуле выше с client seed соответствующей пары и nonce раунда. Сравните roll и результат с записью.
Шанс, анимация и границы проверки
Желаемый процент подбирает цель из доступного каталога, поэтому шанс конкретного предмета может немного отличаться. Движение стрелки лишь показывает уже определённый сервером результат и не влияет на него.
Проверка не подтверждает справедливость рыночной цены, платёжеспособность поставщика или будущую доставку предмета. Хеш, который вы получили только после игры, сам по себе не доказывает, что его опубликовали до неё. Правила баланса и вывода приведены в пользовательском соглашении.