Riverline

Как фиксируется тасовка

Каждая тасовка фиксируется обязательством до раздачи карт, а обязательство для следующей раздачи публикуется до окончания текущей — поэтому колоду нельзя выбрать после начала игры и нельзя подобрать в ответ на чьи-либо действия.

Что происходит в каждой раздаче

  1. Перед раздачей стол берёт 32-байтное число из источника случайности операционной системы и публикует его хеш SHA-256. Этот хеш и есть обязательство; он приходит на ваш стол в начале раздачи.
  2. После публикации обязательства игроки за столом отправляют собственный новый вклад для этой раздачи. Колода выводится из числа стола вместе с вкладами игроков, поэтому ни одна сторона не выбрала её в одиночку.
  3. Обязательство для следующей раздачи публикуется до окончания текущей. Стол привязан к числу ещё до того, как узнает, против чего будет тасовать.
  4. Код, превращающий эти данные в колоду, — один и тот же открытый код на сервере и в браузерной сборке, и он детерминирован: одни и те же данные всегда дают одну и ту же колоду.

Чего это пока не даёт

В Riverline нет проверки отдельной раздачи, и дело не в технической неполадке. Чтобы пересчитать завершённую раздачу, нужно число, из которого была перетасована колода, а это число раскрыло бы и все карты, которые ваши соперники сбросили не показывая за этим столом. Карты, которые вы не показали, принадлежат вам, поэтому мы публикуем обязательство и на этом останавливаемся.

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

Тем временем записи раздач — включая обязательство и стоящее за ним число — хранятся как доказательства, а раздачу, которую вы хотите проверить, можно передать через страницу помощи, указав её ID.