
- Результат нельзя изменить задним числом. Оператор фиксирует свой вклад (секретное значение) до начала игры, публикуя в блокчейне его криптографический отпечаток. Позже программа отказывается проводить расчёт, если раскрытый секрет не совпадает с этим отпечатком в точности.
- Всё можно проверить самостоятельно. Все входные данные и точная формула публичны. После любого раунда или ставки вы можете пересчитать результат по данным из блокчейна и сравнить его с тем, что выплатила игра.
Из чего состоит доказуемая честность?
Зафиксированный секрет. Там, где результат должен оставаться скрытым во время игры (Crash, Mines), бэкенд генерирует случайный 32-байтовый секрет и до начала игры публикует в блокчейне его хеш SHA-256 (коммит). Хеш работает как запечатанный конверт: он ничего не говорит о секрете, но после публикации ему может соответствовать только этот самый секрет. Когда секрет раскрывается в конце, программа сама хеширует его и отклоняет транзакцию, если он не совпадает с коммитом. Энтропия блокчейна Solana. Результат никогда не зависит только от секрета. К нему подмешивается хеш слота — хеш недавнего слота Solana, который программа считывает из sysvarSlotHashes в строго определённый момент. Это значение создаёт сеть Solana, а не казино, и в момент публикации коммита оно ещё не существует.
Публичная детерминированная формула. Результат — это фиксированная математическая функция от этих входных данных. Та же функция выполняется внутри программы в блокчейне (бэкенд не может подменить результат: его вычисляет программа) и опубликована на этих страницах, чтобы вы могли выполнить её сами.
Как проходит раунд, шаг за шагом?
В Dice весь этот процесс умещается в одну транзакцию: скрытого состояния, которое нужно защищать, нет, поэтому нет и секрета оператора. Бросок выводится из хеша слота, вашего аккаунта и счётчика ваших ставок и рассчитывается той же инструкцией, которая его генерирует.Что фиксирует каждая игра и когда
Что это гарантирует и что предполагает
Здесь честность важнее маркетинга, поэтому будем точны. Эта схема — commit-reveal с публичной энтропией блокчейна, а не VRF (проверяемая случайная функция). Вот точная граница между тем, что обеспечивается кодом, и тем, что зависит от добросовестности оператора.Обеспечивается программой в блокчейне
- Никакой подмены исхода после коммита. Программа хеширует раскрытый секрет и отклоняет любой расчёт, в котором он не совпадает с опубликованным коммитом. Оператор не может выбрать другой секрет, увидев, как идёт раунд.
- Энтропию создаёт не оператор. Хеш слота поступает из сети Solana. В момент публикации коммита он неизвестен, и казино его не создаёт.
- Результаты вычисляются в блокчейне. Точку краша, бросок в Dice и поле в Mines вычисляет (или заново выводит и проверяет) сама программа. Бэкенд не может сообщить результат, который не даёт формула.
- Полная публичная проверяемость. Каждый раунд и каждая ставка порождают события в блокчейне со всеми входными данными и исходом. Любой — не только участвующий игрок — может пересчитать каждый исторический результат.
Предполагается: честные оговорки
- Влияние на тайминг. Бэкенд оператора выбирает, когда отправлять некоторые транзакции, и это даёт ему частичное влияние на то, какой именно хеш слота будет зафиксирован. На странице каждой игры точно описано, чего этим можно и нельзя добиться в этой игре.
- Отмены возможны, но только с возвратом. Оператор может аннулировать раунд Crash или игру в Mines. Аннулирование всегда возвращает каждую ставку полностью (у программы нет способа что-то конфисковать через отмену), и каждое аннулирование публично фиксируется, так что частоту отмен может проверить любой. Частые отмены были бы видимым в блокчейне признаком недобросовестного оператора.
- Во время игры оператор знает поле Mines. Это заложено в устройство игры: клетки открываются мгновенно вне блокчейна, и тот, кто их открывает, должен знать поле. Коммит гарантирует, что поле было зафиксировано до вашего первого хода и не может быть переписано позже. Как именно это обеспечивается — на странице Честность Mines.
Зачем идти на эти компромиссы?
Потому что это цена мгновенной игры без задержек, а не упрощения ради удобства. Каждая игра находится ровно там, где должна:- Mines: чтобы открыть клетку за миллисекунды, по самой своей сути нужен участник, который уже знает поле. Альтернативы (транзакция в блокчейне на каждый клик или запрос к оракулу на каждое открытие) превратили бы каждую клетку в комиссию и ожидание. Оператор, знающий поле, необходим для Mines, которая ощущается мгновенной и при этом рассчитывается в блокчейне; схема с коммитом нужна, чтобы ограничить то, что можно сделать с этим знанием.
- Crash: общему живому раунду нужен кто-то, кто ведёт его сразу для всех игроков. Это прагматичный выбор, а не структурная необходимость, поэтому в программе заложен путь перехода на случайность от оракула (VRF) — будущий этап, который снимет оговорки о тайминге там, где это оправдано экономически.
- Dice: другой конец спектра. Во время игры скрывать нечего, поэтому секрета оператора нет вовсе. Там, где отказ от доверия к оператору ничего не стоит, архитектура от него отказывается.
Честность результата и хранение средствЭтот раздел о том, как генерируются исходы. Как пополнения, балансы и выводы хранятся в блокчейне — отдельная тема; см. Ончейн-архитектура.
Проверьте сами
- В приложении у каждого завершённого раунда Crash в деталях раунда есть данные для проверки честности (раскрытый секрет, хеш блока и ссылки на транзакции в блокчейне), а также инструмент проверки честности в один клик.
- Dice и Mines публикуют все входные данные в событии расчёта в собственной транзакции ставки.