博客 · 公平与反作弊知识库

Commit-Reveal 扑克洗牌是什么: 为什么发牌前承诺很重要

公平与验证 发布于 2026 年 9 月 20 日 · Fair Poker 研究团队

很多人搜 "commit-reveal poker shuffle", 其实是在问一个很具体的问题: 平台能不能证明, 它没有在看到结果以后偷偷改牌? Commit-reveal 可以翻成"先承诺, 后公开"。意思是: 先把一个秘密值用密码学方式锁住, 等牌局结束后再公开原值, 让任何人检查它和之前锁住的记录是否一致。

在线德州扑克里, 关键不是一句"我们很公平", 而是时间顺序。河牌以后才给承诺, 没有意义。真正有用的是发牌前就留下承诺, 发牌后再公开材料。这样玩家才能问: 这份随机性是不是在结果出现之前就已经固定?

基本原理

你可以把承诺想成一个透明编号的密封信封。牌局开始前, 平台或玩家把纸条放进去, 大家都看到信封编号。牌局结束后, 信封打开。如果编号和内容都对得上, 就说明这张纸条不是事后重写的。

密码学里常用哈希来做这种检查。NIST 的 Secure Hash Standard 说明, SHA-256 等哈希算法可以生成消息摘要, 用来帮助发现数据有没有被改动: NIST FIPS 180-4。简单说, 哈希不是"公平认证章", 更像一个短指纹。原始内容变了, 指纹也应该变。

在扑克里, 被承诺的内容可能是服务器种子、玩家种子、加密后的牌堆, 或者某一步牌局记录。公开阶段给出原始材料, 验证器重新计算哈希, 再和牌局开始前的承诺比对。

它能证明什么

Commit-reveal 有价值, 因为它把三个时间点分开了:

它能证明一件窄但重要的事: 已承诺的值没有在事后被悄悄替换。也就是说, 它能帮助回答"平台是不是看到牌以后改了种子?" 但它不能单独证明整个系统完全公平。更完整的解释可以看 什么是可验证公平扑克

为什么只有服务器种子还不够

有些游戏会在开始前公布服务器种子的哈希, 结束后公开种子。这比完全没有记录好, 但扑克比简单掷骰子更复杂。扑克有多人同局, 有隐藏手牌, 如果一个中心服务器能控制或知道整副牌, 风险就很大。

所以更强的扑克公平设计, 不只问"有没有一个种子承诺", 还要问:

玩家种子和服务器种子的区别, 可以看 client seed vs server seed。一句话: 承诺机制最好是多人协议的一部分, 而不是给中心化发牌贴一个"公平"标签。

Commit-reveal 不是完整的公平系统。它只是给一份证据加上"事前锁定"。真正的扑克公平还需要隐藏底牌、签名动作、完整牌局记录和可重放验证。

玩家应该看什么

有用的公平页面, 应该让你看到"公开前已经存在的承诺", 而不是只说平台内部保存过。它应该解释承诺了什么、什么时候承诺、怎样重新计算。更好的做法是提供独立验证工具, 而不是只给一个游戏里的绿色通过标记。

Fair Poker 的验证流程就是围绕这点设计: 牌局记录可以重放, 玩家不必把服务器的话当成最终答案。不懂技术也可以先看 自己验证一次洗牌。如果想知道为什么服务器不应该当发牌员, 可以看 为什么无发牌服务器很重要

诚实的边界

Commit-reveal 能帮助防止已承诺随机性的事后篡改。它不能阻止玩家合谋、机器人、共享账号, 也不能替代平台治理。这些问题还需要反作弊系统、举报机制和透明处理。

所以, 好问题不是"平台说不说公平", 而是"它在发牌前承诺了什么, 结束后公开了什么, 我能不能自己验证二者匹配?" 能回答这个问题, 才是真正有用的公平说明。

对可验证公平的实现方式感兴趣?

Fair Poker 是研究德州扑克可验证公平的非营利开源项目:牌堆由参与者浏览器共同加密洗牌,没有发牌服务器,每一手都可独立验证。项目不对公众提供游戏服务;全部源码公开,欢迎下载后在自己的电脑上搭建研究。

下载源码自行研究

本站为非营利开源研究项目,不对公众提供游戏服务;演示仅限研究测试且只用无价值测试筹码,非真钱赌博。本文为教育性内容,不构成任何投注建议。

← 返回文章列表