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 digest3. Round 後:公開 serverSeed4. 玩家重新 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。