Каждый игрок, который становился хоть раз жертвой бэд-бита, играя в покер онлайн, задумывался о ГСЧ (генераторе случайных чисел), его принципах работы, надёжности его работы и можно ли подкрутить ГСЧ.
На примере статьи «Как работает ГСЧ на PokerStars?» можно получить представление о том, как работает ГСЧ и как проверяется справедливость ГСЧ на конкретном руме.
Если в двух словах, то в детали игрока никто не посвящает и игрок просто должен доверять репутации рума, репутации фирмы-производителя ГСЧ и репутации контролирующего органа. Вроде бы и руму нет смысла обманывать игроков, так как игроки играют друг с другом, и рейк при любом раскладе достанется руму. Но всё-равно постоянно на покерных форумах появляются параноидальные посты о том, что покер-румы специально сталкивают обладателей больших стеков в кулерах, помогают переездами фишам и целенаправленно “убивают” бэд-битами после большого вывода дeнeг (так называемое «проклятие кeшaута»).
Главные проблемы современного ГСЧ:
- Невозможно проследить как генерировалась раздача
- Приходится верить репутации рума и лицензии
- Невозможно заказать аудит, который докажет случайность исхода раздачи
Интересное решение, которое возможно вскоре поможет перевести генератор случайных чисел (ГСЧ) в покере на блокчейн предложили создатели платформы DICEGAME на примере игры в кости.
Принцип работы альтернативного ГСЧ на блокчейне
Для работы ГСЧ требуются два параметра, на который не может повлиять рум и который зависит только от игроков, например:
- Т — максимально точное время совершения броска в миллисекундах (обращение к смарт-контракту)
- P — значение акселерометра вашего гаджета, который игрок будет трясти при броске
Параметром может быть всё что угодно, например, температура экрана гаджета с точностью до двух или трёх знаков после запятой.
Комбинация двух параметров дает четыре возможных варианта значений кубиков:
- Первый кубик: Т1 Р1 Т2
- Второй кубик: Т1 Р1 Р2
- Третий кубик: Т1 Т2 Р2
- Четвертый кубик: Р1 Т2 Р2
Алгоритм очень прост для проверки: берем сумму трех параметров, делим на 6 и к неделимому остатку прибавляем 1 (чтобы значения попали в диапазон от 1 до 6).
Допустим для наглядности, что четыре значения получились такими:
- Т1=101
- Т2=303
- Р1=202
- Р2=404
В реальности значения не будут выглядеть так красиво, это будут числа разного порядка с совершенно рандомным набором цифр, что-то вроде:
- Т1=1.789.943
- Т2=546.913
- Р1=3.120
- Р2=545
Первый кубик:
- сумма параметров: 101+202+303=606
- сумму делим на 6: 606:6=101
- неделимого остатка нет, другими словами он равняется 0
- к неделимому остатку прибавляем 1: 0+1=1. Это и есть значение первого кубика
Второй кубик:
- сумма трех параметров:101+202+404=707
- сумму делим на 6, так как 707 не делится ровно на 6,то представляем данное значение в виде суммы:(702+5):6=702:6+5:6. 702 делится ровно на 6,а 5 — нет
- неделимый остаток — 5
- к неделимому остатку прибавляем 1: 5+1=6. Это значение второго кубика
Третий кубик:
- сумма трех параметров:101+303+404=808
- сумму делим на 6, так как 808 не делится ровно на 6,то представляем данное значение в виде суммы: (804+4):6=804:6+4:6. 804 делится ровно на 6,а 4 — нет
- неделимый остаток — 4
- к неделимому остатку прибавляем 1: 4+1=5. Это значение третьего кубика
Четвертый кубик:
- сумма трех параметров: 202+303+404=909
- сумму делим на 6, так как 909 не делится ровно на 6,то представляем данное значение в виде суммы: (906+3):6=906:6+3:6. 906 делится ровно на 6, а 3 — нет
- неделимый остаток — 3
- к неделимому остатку прибавляем 1: 3+1=4. Это значение четвертого кубика.
Итак, победу в нашем воображаемом поединке одержал игрок №2, он набрал 9 очков против 7.
Кубики №3 и №4 принадлежали второму игроку, так как для получения выпадающего на кубике числа использовались два параметра от его гаджета и только один от гаджета его соперника
Абсолютно все значения любого поединка навечно останутся в блокчейне. Переписать, удалить, каким-то образом схитрить не получится ни организаторам, ни игрокам.
Что получат игроки, если внедрить такой ГСЧ в покер-рум?
Если предыдущие абзацы были слишком сложны для понимания, переведу их в ещё более простой вид:
Теперь никаких фотонов на острове Мэн, никаких нулей и единичек, которые непонятным образом контактируют друг с другом, а в результате рекреационному игроку из Бразилии закрывается гатшот. Теперь любой исход раздачи зависит от вас и вашего соперника (соперников). Чуть сильнее потряс телефон или зарегистрировался в турнире чуть раньше или чуть позже — выиграл или проиграл, причём сильнее нужно трясти гаджет или слабее неизвестно.
В любой момент времени вы, ваш соперник или совершенно случайный любопытный человек может убедится в справедливости и абсолютной случайности исхода любого поединка
В планах проекта DICEGAME внедрить 5 игр на криптовалюту в своём приложении:
- FM DICE. Обычная игра в кости. Играть можно как Heads Up, так и в турнирах c олимпийской системой на выбывание. Локальная цель DICEGAME — проведение турнира на 1 048 576 человек с бай-ином $1 с призом $150к за первое место.
- FM 1000. В игре используется 5 игральных костей. До 5 игроков.
- FM Monopoly. Известная игра, главная цель которой обанкротить соперников.
- FM RSP. Вариация игры камень-ножницы-бумага.
- FM Poker in DICE. В игре используется 5 игральных костей. До 4 игроков. Цель — набрать наибольшую сумму очков.
Узнать больше об этих продуктах и их преимуществах вы можете на сайте Dicegame. Их проект сейчас на стадии ICO.
Главная фишка проекта — новаторская идея с механизмом определения победителя в игре на блокчейне, который потенциально способен стать альтернативой обычному ГСЧ. При помощи описанного продукта любой из игроков может всегда убедиться в том, что он проиграл или выиграл абсолютно честно.
Конечно же до воплощения идеи в онлайн-покере ещё далеко, так как задачи перед разработчиками будут на порядок сложнее, количество переменных вырастает на порядок уже при игре в Холдем (масти карт, номинал карт, четыре улицы торгов и так далее), не говоря уже про Омаху или Split Holdem. Но будем держать руку на пульсе, и если проект выстрелит, то вполне возможно, что спустя пару лет покерный ГСЧ на блокчейне будет абсолютно рядовым явлением.