公共随机信标能让在线扑克洗牌更公平吗?
公共随机信标是一种按固定时间发布随机值的公共服务。它的吸引力很直观:如果一手牌的洗牌过程用到了大家都能查到、事前又无法知道的外部随机数,平台就更难偷偷挑一个对自己有利的牌序。
但它不是魔法。公共随机信标只能回答“有没有一个公开的外部随机输入”,不能单独证明整副牌怎样被洗、谁在什么时候承诺了输入、服务器有没有看过不该看的信息。对在线扑克来说,它可以是好材料,但不是完整答案。
什么是公共随机信标
NIST 的随机信标项目把随机输出称为 pulse,并提供按时间查询的接口。官方说明里还提到,信标随机性可用于抽样、审计、数字抽签等需要公开随机性的场景:NIST Interoperable Randomness Beacons。
另一个常被讨论的项目是 drand。它把多个节点连接起来,定期产生公开可验证、难以预测、抗偏置的随机值:drand。
放到扑克里,公共信标可以像“公开天气记录”一样被所有人查到。它不属于某一个扑克平台,也不只给某一个玩家看。这样的外部输入,可以降低平台单独控制全部随机来源的空间。
它怎样帮助扑克洗牌
一个合理的做法不是“信标一出来就直接当牌序”,而是把它和其他输入一起放进洗牌流程。例如,牌局开始前平台先提交承诺,玩家也可以提供客户端随机种子;到约定时间后,再加入某个公开信标值,最后用清楚的算法生成牌序。
这样做有几个好处:
- 平台不能在看到最终信标前就完全知道牌序;
- 玩家可以事后查到同一个信标值;
- 审计者可以把承诺、玩家种子、信标值和洗牌算法重新算一遍;
- 如果记录设计得好,结果会和公平收据一起形成可复查证据。
这和扑克洗牌里的密码学熵是一件事:随机性不只要“足够乱”,还要来自不容易被单方控制的来源。
它不能解决什么
公共信标最大的局限是:它是公开的。公开随机数适合用于“大家同时看到的外部输入”,但不适合当作任何秘密密钥。信标值一旦发布,所有人都知道它。
所以扑克系统还需要承诺机制。平台或玩家必须在信标发布前锁定自己的输入,否则有人可能等信标出来以后再挑输入,造成结果偏向自己。这个问题不能靠信标本身解决。
它也不能解决玩家合谋、机器人、实时辅助、账号被盗或聊天诱导。公平洗牌只保证牌是按承诺流程生成的,不保证每个玩家都诚实。为什么可证明公平仍然需要反作弊,可以看可证明公平为什么还需要反作弊。
公共随机信标像一枚公开盖章的时间戳。它能证明某个外部随机值在某时出现过,但不能替你证明整份合同的每一页都没有被换。
玩家应该看哪些证据
普通玩家不需要自己写代码,也能问几个关键问题。平台是否说明使用哪个信标、哪个时间点或轮次?是否在信标发布前给出承诺?是否公开从输入到牌序的算法?是否允许玩家按步骤重算?是否解释信标失效、延迟或网络不可用时怎么办?
如果平台只说“我们用了公共随机数”,但不给承诺、不公开算法、不给牌局后的输入记录,那仍然只是口号。真正有用的是一整条证据链:承诺在前,随机输入在中间,牌局结束后能重放验证。具体过程可以参考一步步验证洗牌。
最后一句
公共随机信标可以让在线扑克洗牌更透明,特别是在它被用作外部熵来源时。但它不是公平系统的全部。可信的扑克洗牌还需要承诺、可重放算法、清楚日志和诚实的安全边界说明。玩家真正要找的,不是一个听起来高级的随机来源,而是一套能被复查的完整流程。