Цитата:
Сообщение от yoka
думаю после "реформы" на сайте с добавлением разных доп. плюшек
шанс получить высокие строчки учитывается как часто ты играешь\покупаешь билеты
|
Решил наконец-то проверить честность игры.
Если кому тоже интересно, но лень было вникать - welcome.
Итак, выброшенное число есть функция от 3 значений. Одно из них текущий номер игры, а два генерируются случайно - server seed и client seed.
Они известны заранее для следующей игры и хранятся на сервере.
То есть сервер заранее знает, что выпадет в следующей игре.
Клиенту передаётся client seed и хэш server seed'a.
После броска и выпадения значения сервер сообщает использованный server seed, а дальше мы можем проверить всё по указанным правилам.
Для начала мы берём хэш от server seed и сравниваем с тем, что у нас есть.
Это доказывает, что использовался именно тот server seed, который был сгенерирован изначально.
После этого проходим все этапы генерации выпавшего числа и получаем его, в итоге.
Я это проверил. Server seed даёт тот хэш, который выдаётся перед роллом - значит, именно он и используется и не меняется.
Но ведь сервер может обмануть следующим образом: сгенерировав server seed и client seed, он может проверить, что выпадет, и в случае большого выигрыша сгенерировать новые значения, которые дадут более скромный выигрыш. После этого представить игроку именно их. И хоть всё вроде честно, но "подкручено".
Поэтому здесь имеется возможность изменения client seed. Игрок может установить свой, и сервер, сгенерировав server seed, не сможет проверить, какой выигрыш выпадет, пока не получит client seed.
То есть, подкрутить ничего не выйдет - игрок может повлиять на один параметр независимо от сервера.
Проверка происходит так:
1. Записываем client seed, который дал сервер.
2. Устанавливаем свой (надо ставить именно перед самим роллом, перед тем как нажмёте на кнопку).
3. Делаем ролл и получаем server seed этой попытки.
4. Проверяем по алгоритму честность для нашего client seed и для сравнения - для сгенерированного сервером slient seed.
Эти шаги я проделал. Результат, который выпал с использованием моего личного client seed, отличается от того результата, который выпал бы с использованием автоматически сгенерированного client seed.
То есть, игрок может влиять на результат.
Это всё доказывает, что игра ведётся достаточно честно.
Что значит "достаточно"?
Лазейка для мошенничества со стороны админа есть.
Мало кто разбирается, как работает система, мало кто проверяет это всё.
И ещё меньше будут устанавливать свой client seed для каждого ролла.
99,9(9)% людей просто решают капчу и жмут "Roll".
А значит, на стороне сервера есть возможность подкручивать результат, выдавая именно такие пары server/client seed, чтобы была нужная статистика.
Для борьбы с этим нужно каждый раз ставить свой client seed, чтоб результат был действительно честен.
Но так как никто этого делать не будет - ибо лень - то и практически все игры можно подкручивать со стороны сервера для нужной статистики.
Вот такой вывод. Хочется действительно честной игры - ставьте каждый раз свой client seed перед каждой игрой
Но это траты времени.
Второе.
На самом деле, вероятность максимального выигрыша вовсе не 0,01%.
Поглядев, как происходит расчёт выпавшего числа, я увидел, что этот шанс вдвое ниже - всего 0,005%.
То есть 1 раз не на 10000 игр, а 1 раз на 20000 игр.
Шансы всех остальных строчек такие же, за исключением, конечно, самой нижней - её шанс больше на те же 0,005%
Итак, даже при самой честной игре, максимальный выигрыш выпадает ещё реже, чем кажется вначале.