Лента
Здесь появятся выигрыши
Главная

Как работает проверка честности

3 мин чтения

Любой сайт со случайным исходом просит ему доверять. Provably fair (доказуемая честность) — способ заменить большую часть этого доверия проверкой, которую вы можете сделать сами. Здесь мы объясняем идею простыми словами — знание криптографии не понадобится.

1.Какую проблему это решает

Если результат просто генерируется на сервере и показывается вам, у вас нет способа узнать, был ли он действительно случайным или выбран уже после того, как сервер увидел вашу ставку. Provably fair фиксирует результат до игры — так, что сайт не может незаметно изменить его потом.

2.Три составляющие

  • Сид сервера — длинная случайная строка, которую создаёт DOTAGRADE. Пока вы с ним играете, он хранится в секрете.
  • Сид клиента — строка, которая принадлежит вам. Вы её видите и можете в любой момент заменить на любую другую.
  • Номер игры — счётчик, который растёт на единицу с каждым апгрейдом на текущей паре сидов.

Результат игры вычисляется из этих трёх значений: HMAC-SHA256, где ключ — сид сервера, а сообщение — «сид клиента:номер игры». Первые 8 шестнадцатеричных символов результата превращаются в число от 0 до 100 — это выпавшее число. Апгрейд выигрывает, если оно меньше вашего шанса.

3.Почему сайт не может изменить результат

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

Поэтому хеш — это обязательство. Как только вы его увидели, сид сервера зафиксирован. Если бы сайт потом подменил сид на более удобный, новый сид не совпал бы с показанным хешем — и это заметил бы любой.

Сид клиента закрывает вторую сторону. Раз его выбираете вы, сервер не может заранее подготовить сид, который даст вам проигрышные числа: он не знает, с чем этот сид будет объединён. А номер игры делает каждое выпавшее число новым, даже на одной и той же паре сидов.

4.Почему сид сервера какое-то время скрыт

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

5.Как проверить игру самому

  • Откройте Профиль → «История игр» и найдите нужный апгрейд.
  • Нажмите на значок щита на его карточке. Откроется страница проверки честности, где уже заполнены сид клиента, номер игры, шанс и хеш сида сервера.
  • Если игра сыграна на текущей паре, её сид сервера ещё скрыт. В блоке «Ваши сиды» на той же странице смените сиды — старый сид сервера раскроется.
  • Проверьте игру ещё раз. Страница вычислит хеш сида сервера и сравнит его с тем, что вам показывали, затем пересчитает выпавшее число и покажет, был это выигрыш или проигрыш.

Проверка идёт в вашем браузере, а не на нашем сервере. Если не хотите полагаться даже на нашу страницу, формула открыта: любой калькулятор HMAC-SHA256 и SHA-256 даст тот же результат.

6.Что это доказывает, а что нет

Provably fair доказывает, что результат был зафиксирован до игры и не менялся после. На вероятность он не влияет: шанс 30% всё так же проигрывает примерно семь раз из десяти, и никакой сид не делает выигрыш вероятнее. О самом шансе и заложенном в него преимуществе сайта мы открыто рассказываем в статье про RTP.