Вики ZooBC
Приложения и разработка на ZooBC

Одиночные ставки

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

Как сделать ставку

Игрок отправляет CreateApp с типом игры (от 16 до 21), ставкой и её суммой в ZBC или в токене. Сумма ставки переходит в пул приложений, когда ставка исполняется. Ставить может любой аккаунт, включая аккаунты с ключами в стиле Ethereum или Bitcoin, которые не могут занять место в многопользовательской игре (многопользовательские приложения).

Завершающий байт N, от 1 до 100, разыгрывает ту же ставку N раз по одному сиду, разделив сумму поровну между розыгрышами.

Когда и как разыгрывается результат

Ставка, включённая в блок N, разрешается в блоке N + 2 по сиду этого блока, примерно через 30 секунд. Сид каждого блока вычисляет его производитель из предыдущего сида с помощью проверяемой случайной функции (сид блока (VRF)), поэтому, пока ставка попадает в блок N, сида блока N + 2 ещё не существует. Никто не может предсказать результат, и производитель, включивший ставку, не может увидеть его первым. Если блок на высоте N + 2 создан собственным узлом игрока (сравниваются аккаунты владельцев), ставка ждёт более позднего блока, созданного кем-то другим.

Розыгрыш — это хеш этого сида и идентификатора приложения с собственной меткой:

r = LE64(first 8 bytes of SHA3-256("zbc-apps" ‖ seed ‖ LE64(app id) ‖ LE64(0)))

Первый розыгрыш многократной ставки использует r; последующие используют выходы генератора splitmix64, инициализированного r. Любой может пересчитать результат по публичным данным и проверить выплату. Нет ни секрета, который нужно раскрыть, ни ежедневного пакета: каждая ставка рассчитывается сама по себе.

Ставка попадает в блок N, а решает её сид блока N + 2, которого никто не мог видеть в момент ставки.
Ставка попадает в блок N, а решает её сид блока N + 2, которого никто не мог видеть в момент ставки.

Таблицы выплат

ИграСтавкаВыигрыш платитПреимущество заведения
Подбрасывание монеты (17)орёл или решка1,98×1 %
Две кости (16)меньше 7 или больше 72,28×5 %
счастливая 75,70×5 %
точная сумма34,20 ÷ число способов (2 или 12: 34,2×)5 %
Рулетка (18)одно число36×1/37, около 2,7 %
красное или чёрное2×около 2,7 %
Слоты (19)три семёрки, другая тройка, любая пара50×, 15×, 1,8×около 10,7 %
Лотерея (20)одно число от 0 до 9990×10 %
Краш (21)цель T от 1,01× до 10,00×T, когда точка краша достигает Tоколо 1 %

Для точной суммы на костях число способов — это число способов, которыми две кости могут её дать: 6 − |7 − сумма|. В рулетке 37 ячеек, 0 — зелёная, а цвета следуют настоящему европейскому колесу. В слотах три барабана по восемь символов, ожидаемый возврат — 457,4/512. В краше цель фиксируется при ставке; хода, позволяющего забрать выигрыш раньше, нет.

Преимущество заведения заложено в каждую таблицу. При подбрасывании монеты вы выигрываете в половине случаев, а выигрыш возвращает 1,98 ставки, поэтому в среднем каждый поставленный ZBC возвращается как 0,5 × 1,98 = 0,99 ZBC, а оставшийся 1 % остаётся в пуле приложений. Проигрыш ничего не перемещает, поскольку ставка уже в пуле.

Преимущество заведения в каждой одиночной игре — от 1 % для подбрасывания монеты до около 10,7 % для слотов.
Преимущество заведения в каждой одиночной игре — от 1 % для подбрасывания монеты до около 10,7 % для слотов.

Предел ставки

Прежде чем принять ставку, узел вычисляет наибольшую выплату, которую она вообще может дать, а не среднюю, и сравнивает её с пределом в 5 % баланса пула в активе ставки:

largest payout ≤ floor(pool balance × 500 ÷ 10,000)

Наибольшая выплата — собственный множитель ставки для костей, 1,98× для монеты, 36× для рулетки, 50× для слотов, 90× для лотереи и T для краша. Ставка сверх предела отклоняется при отправке («bet too large for the apps pool»), а если она всё же попадает в блок, становится оплаченной пустой операцией.

Благодаря пределу ни один удачный результат не может опустошить пул. Второе ограничение, лимит на блок, может растянуть очень крупный выигрыш на несколько блоков (пул приложений).

См. также