一轮游戏中存在两名玩家
(不能是相同的地址),玩家可选的操作包括 在 0 和 1 两个数字选择一个作为自己的策略,并选择或生成一个随机种子来掩盖自己的策略。玩家首先提交自己的策略和随机种子拼接后的哈希值(在我们的实现中使用
MD5 算法)。在两名玩家的哈希值均提交之后,两名玩家再提交自己选择的策略以及随机种子的原始值。系统会验证该两者拼接后的哈希值是否与之前提交的值一致,从而确定玩家没有作弊,并根据两名玩家的原始策略确定两者的胜负。
玩家的胜负规则如下:如果两名玩家选择的策略相同,则开启游戏的玩家获胜,否则加入游戏的玩家获胜。 注意在游戏开始时我们需要两名玩家分别提交 0.01 NAS 作为押金,押金的作用仅仅为保证游戏的顺利及公平进行:1.
保证玩家在限定时限内进行下一步操作(通过超时机制) 2. 保证玩家在第二阶段提交的策略和随机种子没有经过修改(通过检验哈希值)。如果上面两点没有得到满足,则押金将会转入对方玩家账号。
在其他的所有情况下,押金将会完整退回,仅收取合约运行所必须的少量 gas 费用。