我最近一直在考虑建立一个c++扑克游戏,让玩家可以在点对点网络中玩套接字。然而,我不知道如何确保安全。我在想,每当一个特定的玩家有一个回合,他们改变游戏状态,然后他们广播这个游戏状态给网络(游戏中的其他玩家)。但是,如果游戏状态包含诸如每一名玩家的扑克牌和当一张新的牌被显示时在牌面上的剩余的牌,那么如何确保网络中的特定玩家不能访问该信息并根据该知识改变他们的游戏风格。
根据这个链接,甚至不可能确保对等网络基础设施中游戏的安全性,并且总是存在黑客攻击的风险?:https://cyrextech.net/security-explained-fear-the-peer-to-peer/。
我知道,在区块链中,它们确保具有公共/私钥签名的事务的有效性,但这并不一定确保安全性/机密性,只是因为事务不一定是私有的,这并不重要。
是否有一种方法可以在算法上确保玩家不能将游戏状态更改为他们的意愿,或者在p2p结构中不可能这样做。
发布于 2022-12-08 14:34:04
是否有一种方法可以在算法上确保玩家不能将游戏状态更改为他们的意愿,或者在p2p结构中不可能这样做。
事实上,这是密码学中研究得很好的一个问题,它被称为心理扑克。问题是“是否有一种方式,一组人可以玩扑克仅仅通过传递消息而不受信任的第三方”,答案是“是”(然而,这是相当重要的)。而且,虽然这听起来可能是一个相当模糊的问题,但事实证明,这项研究是安全多方计算(这一点一点也不模糊)的起点。
首先,您可能需要查看维基百科关于心理扑克的文章;它当然不足以实现它,但它将为您提供基础知识(并且有指向深入到更深入的论文的指针)。现在,很可能实现这一点比您现在想要做的要复杂,但这表明这是可能的。
另一方面,有一种可能的欺骗,密码学可能无法解决;一组玩家可能合作(通过私下交换信息互相展示他们的牌),并与另一位玩家串通。在最极端的情况下,如果有10位玩家(每人5张牌),那么9位串通玩家就可以推断出最后一位玩家的牌将是一组7人中的5张牌,即21张牌中的一张。我预计这会给他们带来很大的优势。在不太极端的情况下,类似的(如果较弱的)优势可能会出现。
https://crypto.stackexchange.com/questions/103175
复制相似问题