Безопасная система пруфов при открытии лут-боксов?
Всем привет! Есть сайт с лут-боксами, которые юзеры открывают и рандомно получают призы. Сейчас в MVP версии рандом реализован через random.org, соответственно пользователи никак не могут проверить честно ли был получен приз или нет. Хотелось бы иметь примерно подобную механику:
1. Пользователь получает лут-бокс с каким-то хешем
2. По этому хешу пользователь не может узнать, что находится внутри
3. После открытия лут-бокса пользователю становится доступным соль/ключ, с помощью которого он может убедиться, что для этого хеша с этим ключом/солью призом является именно то, что он получил
То есть до открытия бокса юзер не знает что в нем лежит, а после открытия он может узнать и убедиться, что получил именно то, что было заложено.
Возможнен ли такой механизм? Если да, то направьте в нужную сторону пж
upd: возможен сценарий с "торговой площадкой", где юзеры видят лут-боксы и их хеши и могут сами выбрать лут-бокс с нужным хешем
- да, через односторонние алгоритмы хэширования например md5, тут чутка подумать надо ( твоему кодеру ), я хоть и знаю как это реализовать, но вот лень всё расписывать
Чтобы вызывать доверие, "какой-то хэш" должен получаться из проверяемых исходных данных - таймстамп, id пользователя и т. д. Эти данные должны обрабатываться понятным пользователю образом, то есть хорошо, если вы раскроете принцип вычисления результата - тогда любой сможет, подставив данные в формулу, проверить свой результат.
Условно, берём остаток по какому-нибудь модулю от sha256(timestamp + user_id) и используем его в качестве броска n-гранного куба.
Таким образом вы сможете только доказать юзеру что приз был выбран заранее, а не в момент открытия кейса. Но какой в этом смысл если вы можете заранее в 9 из 10 кейсов положить плохой приз. А юзер то пока не откроет все эти кейсы не сможет узнать что вы нечестно работаете. Если вам этого достаточно, то пожалуйста. Расписал подробнее ответ Vindicar’а)