К основному содержимому

Provably Fair — схемы обязательств

Что такое схема обязательства:

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

Эти значения можно раскрыть позже, чтобы третьи лица могли проверить соответствие обязательства раскрытому значению. Схема обязательства обеспечивает проверяемость казино.

Схема обязательства состоит из двух этапов: фиксации и раскрытия.

Этап фиксации:

Цель этапа фиксации — зафиксировать определённые значения, созданные игроком и оператором, для формирования результатов игры.

Если упростить, фиксируются 3 значения, которые используются для формирования результата игры. После фиксации значения нельзя изменить до этапа раскрытия. При фиксации выполняется хеширование, чтобы предотвратить подмену.

  1. Активный клиентский сид

  2. Активный серверный сид (нехешированный)

  3. Нонс

Output = Commit(Active_Client_Seed, Active_Server_Seed, Nonce)

Активный клиентский сид: не хешируется и представляет собой значение, определяемое игроком.

Активный серверный сид (нехешированный): хранится в секрете и создаётся сервером. Это секретное значение хешируется. Оператору и игроку отображается только хешированное значение.

Нонс изначально равен 0, поскольку игра ещё не была сыграна. Его значение увеличивается с каждой игрой.

Сочетание этих 3 переменных гарантирует, что результат фиксации всегда будет разным.

Этап раскрытия:

На этапе раскрытия цель заключается в раскрытии нехешированного серверного сида. Зная нехешированные сиды и нонс, пользователь может проверить свой результат.

Чтобы проверить свои результаты, игроку сначала необходимо сменить пару серверного и клиентского сидов.

После этого платформа раскроет и отобразит ранее активный серверный сид. Теперь игроки, оператор и любые третьи лица будут знать все 3 значения: клиентский сид, серверный сид и нонс.

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

Серверный сид

Серверный сид генерируется вашей системой как случайная 64-символьная шестнадцатеричная строка. Этот сид проходит процесс хеширования SHA-256. Отображается хешированное значение. Хеширование служит двум целям:

  1. Предотвращение мошенничества: пользователю вычислительно невозможно восстановить исходный нехешированный серверный сид по хешу (устойчивость к нахождению первого прообраза), что не позволяет игрокам мошенничать.

  2. Предотвращение манипуляций: благодаря устойчивости SHA-256 к коллизиям вычислительно невозможно найти два одинаковых нехешированных входных значения, которые дают одинаковый хешированный результат. Это не позволяет оператору обманывать игрока.

Только после завершения игры и смены пользователем клиентских сидов казино раскроет серверный сид для проверки.

Клиентский сид

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

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

Нонс

В криптографии нонс означает «число, используемое один раз». Это число увеличивается каждый раз, когда с одним и тем же набором серверного и клиентского сидов размещается новая ставка.

Это гарантирует, что комбинация серверного сида, клиентского сида и нонса различается в каждой игре, как и результат схемы обязательства.

Подробнее о реализации этих значений в коде.

Нашли ответ на свой вопрос?