Как проверить, что кости в онлайн-нардах честные
Проверить честность костей можно, только если сайт заранее обязуется результатом и даёт его пересчитать. На PlayChat сервер до партии публикует «печать», хеш своего секретного числа, игроки добавляют свои числа, а после партии браузер сам пересчитывает каждый бросок и сверяет с печатью.
Почему игроки не верят онлайн-костям?
Обычный генератор случайных чисел на сервере невозможно проверить снаружи. Даже если он честный, игрок видит только результат и не может отличить невезение от подкрутки. Отсюда вечные споры «опять шесть-шесть у соперника».
Как устроены проверяемые кости?
- Печать сервера. До первого броска сервер выбирает секретное число и сразу отправляет игрокам его хеш. Хеш нельзя развернуть назад, но по нему потом легко проверить, что число не меняли.
- Числа игроков. Каждый браузер добавляет своё случайное число. Сервер не знает их заранее, поэтому не может подобрать своё под нужный исход.
- Расчёт бросков. Каждый бросок однозначно вычисляется из всех трёх чисел и номера броска.
- Проверка. После партии сервер раскрывает своё число. Браузер проверяет, что его хеш совпадает с печатью, и пересчитывает все броски партии.
Что это даёт игроку?
Ни сервер, ни соперник не могут повлиять на кости, не будучи пойманными. Если хоть один бросок не сойдётся с расчётом, проверка это покажет. Тот же принцип используется для колоды в дураке и базара в домино.
А видят ли соперники мои карты?
Нет. В картах и домино сервер никогда не отправляет игроку чужую руку и порядок колоды. Браузер получает только свои карты и то, что лежит на столе открыто, поэтому «подсмотреть» через код страницы нечего.