Provably Fair: реализация и криптографическая проверка

Provably Fair — криптографический механизм, позволяющий игроку убедиться, что оператор не подменял результат.

Базовая схема

1) Сервер генерирует seed_server, публикует hash(seed_server). 2) Игрок предоставляет seed_client. 3) Итоговый результат = f(seed_server, seed_client, nonce), где nonce = номер раунда. 4) После игры сервер раскрывает seed_server. 5) Игрок проверяет hash и вычисляет f самостоятельно.

Криптографические функции

SHA-256 для commitment (hash). HMAC-SHA512 для вычисления результата: HMAC(seed_server, seed_client:nonce). Далее байты HMAC интерпретируются как число и мапятся в игровой результат (например, число 0–36 для рулетки).

Свойства безопасности

Commitment: сервер не может изменить seed_server после публикации hash. Randomness: seed_client вносит непредсказуемость от игрока. Verifiability: игрок повторяет вычисление и убеждается. Non-repudiation: обе стороны согласны с результатом.

Реализация

Публичный verifier на сайте: игрок вводит seeds и nonce, получает результат. Публикация seed_server после каждого раунда или после ротации. Каждая ставка — отдельный nonce. Массовые криптовалютные казино (BitStarz, Stake) используют provably fair как маркетинговое преимущество.