← 返回博客

·

短牌德州也有安全悬赏那三个问题吗?逐项审查结果

短牌德州有自己的一套规则代码,德州的审计结论不能直接套用。我们沿短牌路径逐行审查了提前预测公共牌、取得他人底牌、修改手牌影响结算三项悬赏目标:都没有找到可利用的路径,也写清了仍需信任运营方的边界。

常有人问:安全悬赏的那三个问题,短牌德州有没有?悬赏页列的三项是:提前预测公共牌、取得他人未公开的底牌、修改自己的手牌并让服务端据此结算,每项经复现确认奖励人民币 10,000 元,活动截至 2026 年 12 月 31 日。我们 10 月底的那次审计看的是德州扑克。短牌德州有自己的一套规则代码(36 张牌、前注加庄位盲注、同花大于葫芦),只是接在各纸牌游戏共用的牌桌上,德州的结论不能直接套过来,所以这次专门沿短牌的代码路径做了一次源码审查。结论:三项都没有找到可利用的路径。

先说牌是怎么来的。每副牌都由服务器从操作系统随机数取得的一个 32 字节秘密生成:36 张牌被加密并秘密洗乱,开局前先公布这副锁定牌组的承诺值;然后在线的真人玩家的客户端各自提交一个随机数的承诺,再揭示随机数,最终发牌顺序由这些随机数在已锁定的牌组上重新排列。机器人不提供随机数;某位玩家没有在时限内提交或揭示时,他的随机数不计入,这一手照常发牌,事后核验会显示「无法完整核验」。那个秘密从不下发,牌局结束后也不公开。要说清楚的是,这不等于「服务器看不到牌」:发牌程序仍然知道牌面。它保证的是牌组在你交出随机数之前就已锁定,牌局结束后你可以从牌桌菜单的「发牌验证」核对自己看到的牌。

提前预测公共牌:没有路径。五张公共牌在开局时就定在服务端,但发给任何人的牌桌数据只带已经翻开的那几张,操作记录里每条发牌记录也只带当街的牌。玩家能看到的承诺值和各人的随机数,都推不出哪个位置是哪张牌,因为这层对应关系藏在只有服务端持有的秘密洗牌里。随机数在揭示前已经用承诺锁定,最后一个揭示的人只能选择揭示或不揭示,而且看不到任何一种选择会得到什么顺序,也就谈不上把某张牌「拨」到河牌上。

取得他人底牌:没有路径。每个连接收到的牌桌数据都按「你是谁」单独生成。局中只有座位主人能看到自己的两张底牌,校验的是这一手开局时坐在这个座位上的账号,中途换人坐进来,不会继承上一位的牌;牌局进行中,观战者看不到任何底牌。摊牌的牌所有人可见;弃掉的牌除非本人在牌局结束后主动亮出,否则一直不公开,房间战绩和个人牌局历史也按同样规则遮罩。牌局结束后的发牌证明只打开公共牌、已经亮出的牌和你自己的两张,不包含能还原他人弃牌的秘密。德州早期的承诺揭示发牌会在牌局后交出种子,参与者因此能还原别人没亮的弃牌,这一点在三项安全挑战一文里披露过;短牌现在用的方式没有这个缺口。

修改手牌影响结算:没有路径。客户端发给服务器、能作用于这手牌的消息只有弃牌、过牌、跟注、加注、全下、亮牌和发牌随机数,没有任何一个字段携带牌面。摊牌时,服务端用自己保存的底牌和公共牌评牌、分池;每个下注动作都会检查是否轮到你、金额是否合法。你在浏览器里把两张牌改成同花顺,只会改掉自己屏幕上的显示。

几条边界。这是源码审查,不是对线上环境的渗透测试,也没有单独核对线上程序与源码完全一致;结论只针对短牌德州的牌局,不推广到其他游戏和锦标赛。默认发牌仍然需要你信任运营方:秘密泄漏、服务器被控制或尚未发现的缺陷,都会改变上面的结论,所以我们不会说「绝对安全」。短牌只用练习筹码和金豆,没有真钱。悬赏活动仍在进行,规则和截止时间以悬赏页为准;如果你找到了反例,请按悬赏页的方式带上复现步骤和牌局编号联系管理员。