> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mycryptocasino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Честность Crash

> Что фиксируется коммитом, когда определяется исход, формула и пределы схемы.

Множитель раунда Crash определяется до закрытия ставок и не может быть изменён позже. Бэкенд публикует в блокчейне хеш SHA-256 случайного секрета до открытия ставок, программа подмешивает хеш слота Solana при старте раунда, а секрет раскрывается при расчёте, чтобы любой мог пересчитать точку краша и проверить её.

На этой странице описан точный механизм каждого раунда [Crash](/ru/docs/games/crash): что фиксируется коммитом, когда исход становится определённым, точная формула и честные пределы схемы. Если вы ещё не читали [обзор доказуемой честности](/ru/docs/provably-fair/overview), начните с него: там схема commit-reveal объяснена простыми словами.

<h2 id="the-life-of-a-round">
  Что происходит в блокчейне во время раунда Crash?
</h2>

Каждый раунд Crash складывается из трёх транзакций в блокчейне, в таком порядке:

1. **Коммит**: до открытия ставок бэкенд генерирует случайный 32-байтовый секрет и публикует в блокчейне его хеш SHA-256 (инструкция `start_new_round`). Это и есть коммит: с этого момента рассчитать раунд может только этот самый секрет. Коммит публично виден в событии `CrashRoundPrepared` этой транзакции.
2. **Ставки**: игроки делают ставки. Секрет остаётся скрытым; коммит гарантирует, что его нельзя подменить.
3. **Старт раунда / фиксация энтропии**: когда раунд начинается (инструкция `start_game`), программа считывает **самый свежий хеш слота** из sysvar `SlotHashes` Solana и сохраняет его в раунде. В приложении это значение называется *хешем блока* раунда. **Теперь точка краша полностью определена** (это чистая функция от сохранённого хеша слота и зафиксированного секрета), но вычислить её пока не может никто, кто не знает секрета. Значение публично в событии `CrashGameStarted`.
4. **Раунд идёт**: множитель растёт, игроки забирают выигрыш.
5. **Раскрытие**: бэкенд передаёт секрет (инструкция `crash`). Программа **проверяет в блокчейне**, что `sha256(secret)` равен коммиту (при несовпадении транзакция не проходит), затем сама вычисляет точку краша и завершает раунд. Событие `CrashRoundFinalized` публикует секрет, хеш слота и итоговую точку краша.

<h2 id="the-exact-formula">
  Какова точная формула точки краша?
</h2>

Точка краша вычисляется ровно так (это та самая арифметика, которую выполняет программа в блокчейне: целочисленные вычисления, без сюрпризов с округлением):

```text theme={null}
входные данные
  blockhash   32 байта   хеш слота Solana, сохранённый при старте раунда
  secret      32 байта   секрет оператора, раскрытый в конце (коммит — sha256(secret))
  edge_bps    целое      преимущество казино в базисных пунктах (см. «Комиссии и лимиты»; 150 = 1.5%)

вывод
  hash  = sha256( blockhash ‖ secret )        // 64 байта на входе: сначала blockhash, затем secret
  X     = u32_be( hash[0..4] )                // первые 4 байта хеша, big-endian, беззнаковое 32-битное
  X'    = min( X, 2^32 − 1000 )               // защитный предел: знаменатель ниже никогда не меньше 1000

  crash_bps = max( 10000, floor( (10000 − edge_bps) × 2^32 / (2^32 − X') ) )

результат
  множитель краша = crash_bps / 10000         // например, 29948 → 2.9948x
```

На что обратить внимание при пересчёте:

* Порядок конкатенации: **сначала blockhash, затем secret**.
* `X` читается в порядке **big-endian** из **первых 4 байт** результата SHA-256.
* Все деления — **целочисленные** (с округлением вниз).
* Нижняя граница `max(10000, …)` означает, что множитель никогда не бывает ниже 1.00x, а ограничение `X` не даёт знаменателю стать астрономически малым.

### Пример расчёта

При `X = 0xABCD1234` (2,882,343,476) и текущем преимуществе 1.5% (`edge_bps = 150`):

```text theme={null}
знаменатель = 2^32 − 2882343476 = 1412623820
crash_bps   = floor( 9850 × 2^32 / 1412623820 ) = 29948
краш        = 2.9948x
```

### Как выглядит распределение

Формула превращает равномерно распределённый `X` в классическую кривую краша. Вероятность того, что раунд достигнет множителя не меньше `m`, примерно равна:

```text theme={null}
P(crash ≥ m) ≈ (1 − edge) / m
```

При текущем преимуществе 1.5%: около 49.25% раундов доходят до 2.00x, около 9.85% — до 10x, а около 1.5% раундов крашатся сразу на 1.00x (именно здесь и заложено преимущество казино). Для каждого раунда применяется значение, настроенное в блокчейне на момент раскрытия; текущее значение указано в разделе [Комиссии и лимиты](/ru/docs/fees-and-limits).

## Что гарантируется, а что нет

**Обеспечивается программой:**

* После того как коммит попал в блокчейн, оператор не может изменить секрет раунда: транзакция раскрытия отклоняется для любого секрета, хеш которого не совпадает.
* Как только раунд стартовал (хеш слота сохранён), **точка краша зафиксирована**. Ранний кешаут, поздний или массовый ничего не меняют: исход был определён до того, как множитель начал расти.
* Точку краша вычисляет программа, а не сообщает бэкенд. Неверное значение невозможно записать в блокчейн.
* Всё необходимое для проверки (коммит, хеш слота, секрет, итоговая точка краша) навсегда публикуется в событиях блокчейна.

**Честные оговорки** (это commit-reveal, а не VRF):

* **Момент старта.** Оператор знает секрет до старта раунда, и его бэкенд решает, когда отправить транзакцию старта. Поскольку недавние хеши слотов публичны, он теоретически мог бы заранее вычислить будущий множитель для слотов-кандидатов и подгадать старт, чтобы повлиять на то, какой хеш слота будет зафиксирован. Схема этому не препятствует, но делает это заметным: время старта раунда публично, и любой систематический перекос проявился бы в статистике опубликованных точек краша, которые любой может массово пересчитать.
* **Отмены.** После старта раунда оператор знает исход раньше игроков и мог бы отменить невыгодный раунд вместо раскрытия. Здесь действуют два жёстких ограничения: отмена **полностью возвращает каждую ставку** (у программы нет способа конфискации), и каждая отмена порождает публичное событие; частота отмен — это и есть видимый в блокчейне признак. Отмена существует как способ восстановления при потере секрета (например, если бэкенд упал между коммитом и раскрытием) и, как ожидается, практически никогда не используется.

<h2 id="verify-a-round">
  Как проверить раунд Crash?
</h2>

В деталях каждого завершённого раунда в приложении показаны раскрытый секрет и хеш блока, а также ссылки на все три транзакции и инструмент проверки честности, который пересчитает множитель за вас. Полная пошаговая инструкция, включая небольшой скрипт для самостоятельного пересчёта точки краша, — в статье [Проверка раунда](/ru/docs/provably-fair/verify-a-round).

Как играть в саму игру (кешаут, окна ставок, лимиты) — в [руководстве по Crash](/ru/docs/games/crash).
