Skip to main content
Баннер «Доказуемая честность»
Каждый результат игры в My Crypto Casino получается с помощью схемы commit-reveal в сочетании с энтропией блокчейна Solana, которую исполняет программа в блокчейне. Для вас как игрока это означает две вещи:
  1. Результат нельзя изменить задним числом. Оператор фиксирует свой вклад (секретное значение) до начала игры, публикуя в блокчейне его криптографический отпечаток. Позже программа отказывается проводить расчёт, если раскрытый секрет не совпадает с этим отпечатком в точности.
  2. Всё можно проверить самостоятельно. Все входные данные и точная формула публичны. После любого раунда или ставки вы можете пересчитать результат по данным из блокчейна и сравнить его с тем, что выплатила игра.
На этой странице схема объясняется простыми словами. На страницах отдельных игр приведены точные формулы, а статья Проверка раунда шаг за шагом показывает, как проверить реальный раунд. Коммит, игра, раскрытие, проверка: секрет запечатывается в блокчейне до начала игры, программа проверяет его при раскрытии, а любой результат потом может пересчитать кто угодно

Из чего состоит доказуемая честность?

Зафиксированный секрет. Там, где результат должен оставаться скрытым во время игры (Crash, Mines), бэкенд генерирует случайный 32-байтовый секрет и до начала игры публикует в блокчейне его хеш SHA-256 (коммит). Хеш работает как запечатанный конверт: он ничего не говорит о секрете, но после публикации ему может соответствовать только этот самый секрет. Когда секрет раскрывается в конце, программа сама хеширует его и отклоняет транзакцию, если он не совпадает с коммитом. Энтропия блокчейна Solana. Результат никогда не зависит только от секрета. К нему подмешивается хеш слота — хеш недавнего слота Solana, который программа считывает из sysvar SlotHashes в строго определённый момент. Это значение создаёт сеть Solana, а не казино, и в момент публикации коммита оно ещё не существует. Публичная детерминированная формула. Результат — это фиксированная математическая функция от этих входных данных. Та же функция выполняется внутри программы в блокчейне (бэкенд не может подменить результат: его вычисляет программа) и опубликована на этих страницах, чтобы вы могли выполнить её сами.

Как проходит раунд, шаг за шагом?

В Dice весь этот процесс умещается в одну транзакцию: скрытого состояния, которое нужно защищать, нет, поэтому нет и секрета оператора. Бросок выводится из хеша слота, вашего аккаунта и счётчика ваших ставок и рассчитывается той же инструкцией, которая его генерирует.

Что фиксирует каждая игра и когда

Что это гарантирует и что предполагает

Здесь честность важнее маркетинга, поэтому будем точны. Эта схема — commit-reveal с публичной энтропией блокчейна, а не VRF (проверяемая случайная функция). Вот точная граница между тем, что обеспечивается кодом, и тем, что зависит от добросовестности оператора.

Обеспечивается программой в блокчейне

  • Никакой подмены исхода после коммита. Программа хеширует раскрытый секрет и отклоняет любой расчёт, в котором он не совпадает с опубликованным коммитом. Оператор не может выбрать другой секрет, увидев, как идёт раунд.
  • Энтропию создаёт не оператор. Хеш слота поступает из сети Solana. В момент публикации коммита он неизвестен, и казино его не создаёт.
  • Результаты вычисляются в блокчейне. Точку краша, бросок в Dice и поле в Mines вычисляет (или заново выводит и проверяет) сама программа. Бэкенд не может сообщить результат, который не даёт формула.
  • Полная публичная проверяемость. Каждый раунд и каждая ставка порождают события в блокчейне со всеми входными данными и исходом. Любой — не только участвующий игрок — может пересчитать каждый исторический результат.

Предполагается: честные оговорки

  • Влияние на тайминг. Бэкенд оператора выбирает, когда отправлять некоторые транзакции, и это даёт ему частичное влияние на то, какой именно хеш слота будет зафиксирован. На странице каждой игры точно описано, чего этим можно и нельзя добиться в этой игре.
  • Отмены возможны, но только с возвратом. Оператор может аннулировать раунд Crash или игру в Mines. Аннулирование всегда возвращает каждую ставку полностью (у программы нет способа что-то конфисковать через отмену), и каждое аннулирование публично фиксируется, так что частоту отмен может проверить любой. Частые отмены были бы видимым в блокчейне признаком недобросовестного оператора.
  • Во время игры оператор знает поле Mines. Это заложено в устройство игры: клетки открываются мгновенно вне блокчейна, и тот, кто их открывает, должен знать поле. Коммит гарантирует, что поле было зафиксировано до вашего первого хода и не может быть переписано позже. Как именно это обеспечивается — на странице Честность Mines.

Зачем идти на эти компромиссы?

Потому что это цена мгновенной игры без задержек, а не упрощения ради удобства. Каждая игра находится ровно там, где должна:
  • Mines: чтобы открыть клетку за миллисекунды, по самой своей сути нужен участник, который уже знает поле. Альтернативы (транзакция в блокчейне на каждый клик или запрос к оракулу на каждое открытие) превратили бы каждую клетку в комиссию и ожидание. Оператор, знающий поле, необходим для Mines, которая ощущается мгновенной и при этом рассчитывается в блокчейне; схема с коммитом нужна, чтобы ограничить то, что можно сделать с этим знанием.
  • Crash: общему живому раунду нужен кто-то, кто ведёт его сразу для всех игроков. Это прагматичный выбор, а не структурная необходимость, поэтому в программе заложен путь перехода на случайность от оракула (VRF) — будущий этап, который снимет оговорки о тайминге там, где это оправдано экономически.
  • Dice: другой конец спектра. Во время игры скрывать нечего, поэтому секрета оператора нет вовсе. Там, где отказ от доверия к оператору ничего не стоит, архитектура от него отказывается.
Коротко: игры ведёт оператор, а блокчейн делает жульничество либо невозможным (всё, что после коммита), либо публично обнаружимым (закономерности тайминга, частота отмен, статистика выигрышей).
Честность результата и хранение средствЭтот раздел о том, как генерируются исходы. Как пополнения, балансы и выводы хранятся в блокчейне — отдельная тема; см. Ончейн-архитектура.

Проверьте сами

  • В приложении у каждого завершённого раунда Crash в деталях раунда есть данные для проверки честности (раскрытый секрет, хеш блока и ссылки на транзакции в блокчейне), а также инструмент проверки честности в один клик.
  • Dice и Mines публикуют все входные данные в событии расчёта в собственной транзакции ставки.
Статья Проверка раунда проводит через весь процесс: от данных в приложении до пересчёта результата в несколько строк кода.