关于雀魂公平性与“牌山声明”的思考
最近开始玩雀魂了。我也就自然而然地开始考虑:对于这种运气成分很重的游戏,怎样保证运营方公平对待玩家、不因为猫粮购买量控制胜率?现在CRT这样的高水平赛事也在雀魂上举办了,运营能否干预比赛结果就更为重要。
我们先看看雀魂现在是怎么做的。
雀魂保证游戏生成完全随机,在游戏开始之时牌山序列已经固定,不会根据场面情况针对性地发牌。为证明此声明,游戏引入了MD5码验证系统。MD5码被广泛的应用于加密解密技术,它通过一个固定的算法把输入的字节(牌山序列)转化成一个字符串码。MD5码具有单向性、唯一性和混沌性的。
对局中,玩家可以点击左上角的宝牌位置查看本次对局牌山生成MD5码并记录下来。MD5码是每一次配牌生成一次的。对局结束后,玩家可以在牌谱中对照每一个小局的MD5码是否相同。以此验证游戏中给的MD5码没有给错。
本文引自萌娘百科(https://zh.moegirl.org),文字内容默认使用《知识共享?署名-非商业性使用-相同方式共享?3.0》协议。
的确,MD5验证牌山代码可以保证发牌姬不会在对局中针对性地发牌,但是它忽略了另一个问题:
如果运营想给玩家发个天和四暗刻单骑怎么办?
换言之,这个系统还是不能保证运营没有控制玩家手牌好坏、从而操作一局甚至一场比赛的结果。个人来说,我愿意相信猫粮没有这么做。但当你考虑密码学问题(都上MD5了),信任就只能基于“技术上不可行(一般指算力不足)”了。
于是我们希望解决的问题是:怎样让玩家相信运营没有控制牌山?我第一时间想到的是这样的一个协议:
1.?公开由随机数种子生成牌山的代码,公开一段长字符串(app)。
2.?在每局的开始时,生成一个随机数`X`。向玩家公开?`SHA256(X)`,并把?`SHA256(X||app)`?作为种子生成牌山。
3.?在对局结束时公开?`X`。玩家可以验证两个哈希值和牌山生成过程。
这样做保证了运营不能刻意构造一个牌山,因为即使可以从牌山倒退回需要的种子(这已经很难了,尤其是代码需要被公开审查的情况下),也无法从种子推出?`X`。但是,运营可以用一台小霸王不停生成牌山并保存符合某些条件(比如天和)的?`X`?日后使用。因此这个协议也并不完美。
这里的问题是,运营仍然可以选择?`X`。于是我们可以稍微修改一下“生成一个随机数`X`”这一步:由每一个玩家(客户端)生成一个随机数,最终?`X`?为这些随机数拼接后的`SHA256`哈希值。游戏后,玩家们(尤其是比赛场)可以线下验证各自的随机数。
当然这个协议也只是一时兴起的产物,可能有其他问题,不知各位看官有什么想法。
另外,在密码学中有一个有趣的问题:怎样让两个人通过电话打扑克,同时保证公平性?利用这个问题的解法,应该可以设计一个由客户端负责合作洗牌的协议。这就留给读者作为练习了(?)
最后,B站专栏什么时候支持Markdown?
上一篇:炎帝是国内《球球大作战》第一人!其女友却是重度JK患者?
下一篇:4299元!全球首款原神限定机如期发布,哪个亮点最让你心动?
最近更新游戏资讯
- 秋瓷炫老公什么星座(秋瓷炫血型星座)
- 法国电影中的女性符号和觉醒
- 惊人的秘密:颜色政治背后的渗透与分化
- 让BB接受家庭伦理教育洗礼
- 语言礼仪十篇
- 美军欲打造AI战机部队 面临严重伦理问题
- 医学伦理学:医学伦理学的主要观点和基本理论
- 豆瓣9.0分以上|50本好书推荐
- 达尔文的故事赏析八篇
- 港台国学类学术会议信息(四十)
- 东野圭吾本格推理极致之作《回廊亭杀人事件》开票5折抢
- 辩论赛包含哪些技巧?
- 【铸牢中华民族共同体意识
- 徽州醉春丨水墨画里的徽州-婺源篁岭-江岭- 新安江- 西递- 呈坎丨六天五夜
- 心理治疗总论 【医学心理学与精神医学版】
- 苏德超教授的新论文:道德绑架为何难以避免
- 企业社会责任综述十篇
- 政务礼仪的作用(五篇)
- 韩素希出道最大尺度 泄朴海俊指导秘诀 咬牙拍完《夫妇》只有2感想
- 《封神三部曲》:为什么要重述这个神话?
- 输血和喝血真的能帮助女性和老人保持年轻吗?
- 集齐九部《星球大战》,教你如何把家庭伦理拍成太空歌剧
- 这十部顶级英美剧,是当之无愧的业界巅峰,每一部都值得通宵去看
- 邪王宠妻之金牌医妃
- 【博览】《科奖在线》:“破四唯、立新标”典型案例官宣,项目/人才/成果未来可能这