QQPK забанил 724 аккаунта, но не объяснил странное отклонение фактического профита от EV на графике.
Пользователь Yegor с форума 2+2 попробовал найти ответ. И обнаружил кое-что интересное.
💬 Расхождение профита от EV — это не вопрос ботов. По-видимому, некоторые аккаунты знали результаты раздачи.
Я обнаружил два технических момента, которые остаются открытыми.
1️⃣ Клиенту отправляются в зашифрованном виде карты раздачи от префлопа до ривера
Это фишка QQPK. До начала раздачи сервер отправляет клиенту зашифрованную перетасованную колоду целиком — все 52 карты — с информацией о картах флопа, тёрна и ривера. После завершения раздачи сервер раскрывает ключи, позволяющие проверить, что «колода не была изменена».
Но вот в чём загвоздка.
В большинстве покерных приложений в начале раздачи вообще не существует объекта «перетасованная колода». Вместо этого сохраняется начальное значение (seed), а флоп, тёрн и ривер генерируются непосредственно в момент раздачи каждой из этих улиц. Утекать попросту нечему: будущие карты ещё не существуют в виде готового объекта.
QQPK же заранее формирует такой объект и отправляет его зашифрованную копию каждому клиенту. Ключи для расшифровки сервер выдаёт по запросу. Следовательно, между «зашифрованным набором данных» и «я могу прямо сейчас прочитать весь будущий борд» стоит только один барьер — преждевременное получение ключей. А контроль над моментом их выдачи находится у сервера.
2️⃣ В рабочем клиенте есть меню «Ручная раздача»
Этот интерфейс доступен в стандартном клиенте, но только при условиях, которые не возникают во время обычной игры.
В комментариях к исходному коду на китайском языке описан принцип его работы:
• В режиме 公 можно задавать борд. Выбираещь пять карт — они становятся флопом, тёрном и ривером. Остальные карты раздаются игрокам.
• В режиме 手 можно задавать карты игроков. По две карты для Холдема и по четыре для Омахи.
Иными словами, этот интерфейс позволяет задать раздачу.
Я протестировал рабочую точку доступа, подключенную к этому интерфейсу. Мне вернулось сообщение «не авторизован» (unauthorized). То есть функция включена и доступна при авторизации.
Самая безобидная версия происходящего — это функционал для разработчиков/тестировщиков, который случайно попал в продакшен.
Но даже в таком случае подобного не должно быть в сборке, сертифицированной Gaming Lans International (GLI). Объяснить наличие этой функции гораздо сложнее, чем первую описанную механику.
Если эту функцию можно вызвать в продакшене с какой-либо ролью доступа, то перемешивание карт в таких раздачах не будет результатом работы сертифицированного ГСЧ. А это уже однозначно выходит за рамки того, что покрывает сертификат.
Я никого ни в чём не обвиняю. Я указываю на две вещи:
1. Существует механизм, при котором зашифрованный результат раздачи отправляется клиентам, а раскрытие ключа контролируется сервером;
2. Работает интерфейс ручной раздачи, доступ к которому ограничивается авторизацией.
При этом есть график EV, который выглядит так, будто некоторые аккаунты могут видеть результаты раздач заранее, и существует механизм, который потенциально позволяет именно это делать.
Связаны ли эти две вещи между собой — решать вам. А разобраться с этим, судя по всему, должен также отчёт QQPK от 17 октября.
«Если это выглядит как утка и крякает как утка…» — дальше вы и сами можете закончить эту фразу.
Готов подробно разобрать криптографическую часть со всеми, кому интересна техническая сторона вопроса.
Присоединяйтесь к обсуждению этого поста в чате Покерофф в Телеграм.
На скриншоте — функционал меню «Ручная раздача»
💥Подписывайтесь на Покерофф💥
