АльтернативаПерейти
Открыть SpyDotaSpyDota

Provably Fair на SpyDota

Проверка Provably Fair: хеш серверного сида виден до игры, тикет считается по HMAC-SHA256, пересчёт идёт в браузере.

Из чего складывается результат

Серверный сидХеш виден до игры
Ваш сидЗадаёте сами
Номер игрыНомер игры в паре сидов
1 – 100 000 000Определяет предмет или итог апгрейда

HMAC-SHA256(serverSeed, kind:game:clientSeed:nonce)

Зачем SpyDota показывает хеш до игры

Provably Fair — система проверки, которую SpyDota применяет к кейсам и апгрейду. Проверка работает и для Dota 2, и для CS2. Смысл в том, что результат каждой игры можно пересчитать самому и сравнить с тем, что показал сайт.

До начала игры SpyDota показывает хеш SHA-256 серверного сида, из которого потом считается тикет. Хеш виден заранее, а раскрытый сид должен давать ровно тот же хеш. Подменённый сид дал бы другое значение, и подмена вскрылась бы при проверке.

Из чего считается тикет

Тикет — число от 1 до 100 000 000, которое определяет итог игры. Для расчёта нужны серверный сид, сид игрока, вид игры и номер игры в паре сидов.

Хеш игры считается по алгоритму HMAC-SHA256. Ключом служит серверный сид, 64-символьная hex-строка, которая берётся как есть, целиком. Сообщение собирается через двоеточие из вида игры, самой игры, сида игрока и номера игры в паре сидов.

Из полученного хеша берутся первые 8 hex-символов. Символы переводятся в число от 0 до 4 294 967 295, из него получается тикет от 1 до 100 000 000. Если проверяете игру сторонним калькулятором, берите ключ строкой, а не байтами. Перевод hex-строки в байты до расчёта меняет результат и даёт другой тикет. Такая ошибка частая при самостоятельной проверке.

Сид игрока вы задаёте сами, и он участвует в расчёте наравне с серверным. Итог не формирует один сервер, без вашего сида тикет не воспроизвести.

Как тикет превращается в предмет

У кейса есть таблица шансов, и у каждого предмета в ней свой диапазон тикетов — непрерывный участок шкалы от 1 до 100 000 000. Выпадает тот предмет, в чей диапазон попал тикет.

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

Как проверить свою игру

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

Пересчёт делают в разделе «Честная игра» на spydota.com. Расчёт идёт в браузере, на сервер ничего не отправляется. В истории кейсов и апгрейдов есть кнопка «Проверить»: она показывает все величины конкретной игры и её результат.

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

Вопросы

Можно проверить игру, пока сид не раскрыт?

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

Нужно что-то устанавливать для проверки?

Нет. Расчёт тикета идёт в браузере в проверке на spydota.com, скачивать программы не нужно.

Что такое nonce?

Nonce — номер игры в паре сидов. Этот номер участвует в расчёте тикета вместе с сидами.