GAME MATH LIBRARY

Provably Fair 是什麼?Commit / Reveal、HMAC 與 Server RNG 的差別

Provably Fair 最重要的不是一個標籤,而是玩家能否在結果揭露後重算同一個 deterministic outcome,驗證 server 沒有事後換答案。

Wavelet Intelligence · 2026-09-25

直接答案

Provably Fair 最重要的不是一個標籤,而是玩家能否在結果揭露後重算同一個 deterministic outcome,驗證 server 沒有事後換答案。

快速重點

核心
先承諾、後揭露
常見工具
HMAC / hash
可驗證
seed + nonce → outcome
不等於
所有公平性問題都已解決

01

Commit / Reveal 在解決什麼問題

若 server 在 round 前先公開 server seed 的 hash,就等於先對一個秘密值做承諾。Round 結束後再 reveal 原始 seed,玩家可以驗證它確實對應先前的 hash。

這能降低 server 在看到玩家操作後才偷偷更換 seed 的空間。

02

HMAC 如何把 seed 變成結果

常見做法是把 server seed、client seed、nonce 或 round id 組合成 deterministic 輸入,再用 HMAC-SHA256 等演算法產生不可預測但可重算的 digest。

Digest 接著依公開 mapping 轉成 dice roll、Plinko path 或牌序。只要演算法與輸入都公開,玩家就能重播計算。

03

Server CSPRNG 不一定等於 Provably Fair

Server 使用 cryptographically secure RNG 可以提供高品質隨機性,但如果玩家拿不到可重播的 seed / commitment,就不能事後自行驗證某一 round。

因此『使用安全 RNG』與『player-verifiable Provably Fair』是兩個不同聲明。

04

Provably Fair 也不是全部

它主要驗證 outcome generation 是否符合承諾,不能單獨證明 payout table 是否合理、RTP 文案是否正確、Wallet 是否正確記帳,或平台是否符合監管要求。

完整的公平性還要把遊戲數學、結果 authority、前端呈現與帳務證據分開檢查。

EXAMPLE

驗證流程概念

  • 1. Round 前:公開 hash(serverSeed)
  • 2. Round:HMAC(serverSeed, clientSeed + nonce) 產生 deterministic digest
  • 3. Round 後:公開 serverSeed
  • 4. 玩家重新 hash 與 HMAC,確認 commitment 與 outcome 都一致

常見問題

知道 hash 能反推出 server seed 嗎?

設計正確的 cryptographic hash 應具有 preimage resistance,公開 hash 不應讓玩家實際反推出原始 seed。

Provably Fair 可以防止前端動畫造假嗎?

只有在前端最終展示與 server-authoritative outcome 對得上時才完整。可驗證 RNG 不能替代結果呈現與 settlement 對帳。

Slot 用 server CSPRNG 就能標 Provably Fair 嗎?

不一定。如果沒有 player-replayable commitment/reveal protocol,較準確的說法是 server CSPRNG,而不是可由玩家重播驗證的 Provably Fair。