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

扑克洗牌里的密码学熵是什么?用简单话讲清楚

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

很多人问在线扑克公不公平时,会问:“洗牌是不是随机?”更准确的问题其实是:这个随机性从哪里来?别人能不能提前猜到?洗完以后还能不能验证平台没有动手脚?

这里的第一个关键词就是“熵”。你可以把熵理解成新鲜的不确定性。扑克系统在把数字变成一副牌的顺序之前,需要先拿到足够难猜的输入。否则,就算 52 张牌的排列数量巨大,实际结果也可能被缩小到一个容易猜的范围。

熵就是没人能猜到起点

电脑不会凭空变魔术。它通常从设备、操作系统等地方收集不可预测的信号,再用密码学工具把这些不确定性扩展成可用的随机字节。浏览器安全文档把 Web Crypto API 描述为可提供密码学强度的随机数能力,crypto.getRandomValues() 就是常见接口:MDN Web Crypto。

这和普通的 Math.random 不是一回事。普通随机函数可以用来做动画、颜色、小玩具,但不适合承担安全决定。扑克洗牌就是安全决定,因为哪怕只是娱乐筹码,牌桌公平、玩家信任、账号声誉都和它有关。

如果你想先理解“牌序空间到底有多大”,可以看 一副牌到底有多随机。但重点不是“可能的牌序很多”这么简单,而是攻击者能不能通过猜种子,把可能性缩小很多。

弱熵也可能看起来很随机

差的洗牌不一定肉眼能看出来。牌面可能看着很乱,大牌会出现,坏牌也会出现。这些都不能证明起点足够安全。

真正的问题是可预测性。如果种子来自时钟、很短的数字、固定浏览器值,或者其他容易猜的东西,攻击者就不需要枚举所有牌序。他只要试那些“最可能的种子”。这也是为什么 NIST 这类安全资料会分别讨论随机比特生成、熵来源、确定性随机比特生成器:NIST 随机比特生成资料。

换成扑克语言就是:看起来随机不够。公平系统需要的是发牌前别人很难预测的随机性。

有熵还不等于有证明

好的熵只能回答一个问题:别人能不能提前猜到随机输入?它不能回答所有公平问题。

传统平台就算用了很好的随机数,玩家仍然只能相信服务器真的照做了。可验证公平要更进一步:先承诺,后公开,并让玩家能重新计算结果。你可以看 客户端种子和服务器种子:多个来源共同决定结果,而且先承诺后公开,可以防止一方看到对方输入后再改自己的输入。

熵像一把锁,验证像门口的摄像头。你最好两个都有:洗牌前要不可预测,洗牌后要能留下证据。

所以 RNG 和可验证公平的区别 不只是宣传词不同。RNG 关心的是数字够不够难猜;可验证公平关心的是玩家能不能检查这些数字确实被按规则使用。

玩家应该看什么

你不需要会审代码,也可以问几个更聪明的问题:

Fair Poker 关注的是可验证的娱乐筹码扑克。更重要的承诺不是“相信我们很随机”,而是“洗牌过程应该留下足够证据,让玩家或研究者能自己检查”。

结尾

密码学熵是扑克洗牌里最原始的不确定性,它让牌序难以预测。它很重要,但不是全部。可信的在线扑克系统,需要强熵、承诺机制、可复算记录,也需要诚实说明密码学解决不了玩家合谋和账号安全这类问题。

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

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

下载源码自行研究

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

← 返回文章列表