@lexxleon

Как реализовать возможность проверки результата игры с помощью криптографии?

Здарова! Есть условный сайт азартной игры. Игрок делает ставку, генератор выдает числа от 1 до 100, если число меньше числа оговоренного в правилах - засчитывается выигрыш. Все бы хорошо, но система не гарантирует игрокам честность со стороны организатора. Нужен способ проверки честности.
Еще 3 момента: действия игрока не влияют ни на что, ставки делаются анонимно перечислением биткоинов - игрок может однозначно идентифицировать свою транзакцию по txid, в одну транзакцию может быть включено несколько игр.
У меня есть следующая идея:
1. Генерируем большой массив чисел от 1 до 100.
2. Находим хэш от массива.
3. Пишем некую f(txid, n, h), где txid - идентификатор транзакции, n - номер игры, h - хэш массива. Функция однозначно возвращает нам позицию в массиве, а значит и число на этой позиции.
4. Сравниваем число с условиями и т.д...
Если игрок захочет проверить честность, он самостоятельно может взять массив, найти хэш, подставить свои txid, n и убедиться в правдивости результата игры.

Так вот, как можно реализовать эту f()? Может уже есть готовые решения под эту задачу?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 3
sim3x
@sim3x
Игрок делает ставку и шлет ее на сервер
Сервер решает, что он выиграл
Ответ написан
mindtester
@mindtester
http://iczin.su/hexagram_48
вам надо сгенерировать и ключ шифрования, и число, число зашифровать и сообщить игрокам ДО ставок.
зашифровать криптостойким шифром.. при чем не обязательно криптостойкости на миллионы лет брутфорса, можно ограничить игрока минутой на ставку (или меньше).. в тупом варианте пойдет даже RAR архив с жутким паролем.
после ставок - раздаете пароль и выигрыш

ps rar не плох, по тому что является готовым решением (в архив можно досыпать сопроводительного текста, который тоже меняется довольно рандомно)..
так же можно использовать любой архиватор, с более менее надежной парольной защитой, или широко известные пакеты шифрования. но это уже явно сложнее для игроков (а вам вряд ли надо нагружать их мозги)

в противном случае - свое решение, в части шифрования, вам придется сделать опенсорцным и опубликовать. иначе ни кто доверять не будет.. но и это будет нагрузка для мозга игроков..

pps .. суть то та же - сначала сдай карту, но пока не сделана ставка - не даешь ее перевернуть, но и игрок уже держит руку на карте, знает что подменить ее уже невозможно
Ответ написан
Комментировать
@nvdfxx
Senior Pomidor developer
Можно random.org юзать. Там вроде рандомные числа генерируются на основании радиочастотных помех
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы