#card-game #player #game-client #message #trusted #reveal

nightly mental-poker

用于编写无需信任第三方洗牌或执行规则的牌类游戏的库

1个不稳定版本

0.1.0 2022年2月25日

#1337 in 密码学

MIT/Apache

63KB
1.5K SLoC

mental-poker

这是一个用于创建无需依赖信任第三方洗牌或执行规则的牌类游戏实现的库。目标是提供一组易于使用的原语,为希望确保公平性的客户端提供加密保证。

核心操作

在核心,此库为客户端提供两种操作:揭示未知卡牌价值的能力和发布消息的能力。所有操作都是完全公开的,尽管其中一些部分只能由其他玩家的子集解码。

揭示卡牌

在牌局开始时,所有牌都隐藏并洗牌。洗牌由每个游戏客户端合作完成。此库为游戏客户端代码提供的基本抽象是能够选择性地将洗牌牌堆中的特定牌牌揭示给特定玩家,而不向任何其他玩家揭示。只有当所有其他玩家都允许时,某个玩家才能了解洗牌牌堆中的特定牌。

发送消息。

游戏客户端通过消息通知彼此采取的行动。消息由公共部分和私有部分组成。消息的存在以及每个公共部分的内容对所有客户端都是可见的。私有部分的内容对单个玩家可见。当消息玩家创建消息时,它指示消息的哪些部分是公共的,以及每个私有部分将可见于哪个玩家。

依赖项

~1–1.7MB
~35K SLoC