## 开奖算法 抢庄牛牛的开奖算法,是通过加密算法预先生成,庄家不可能对游戏开奖结果进行篡改,每一盘的开奖结果,可以通过`开奖工具`验证结果。 ### 算法流程 算法的设计理念:结果可证伪、防篡改、完全随机。 算法使用到两个种子来确保随机性: * 服务器种子: 服务器随机生成 * 客户端种子: 昨天由指定地址进行Trx转账,生成的块ID 每天的0点,会对每一间房间,生成10万期的开奖结果,用于当天的开奖。如果没有使用完,则丢弃,第二天0点重新生成。 服务器随机获取一个服务器种子A,对服务器种子A进行哈希运算得到H1: Hash(A) = H1, 然后再对H1进行哈希运算得到H2: Hash(H1) = H2,一直循环得到H100000。 生成了种子之后,当天第一期的开奖使用H100000和客户端种子,进行哈希运算,得到K1: Hash(H100000 + 客户端种子) = K1,通过K1,计算每张牌的值。 假设生成的K1是: 40 2a d5 82 e5 eb be 47 54 16 7a 82 9c dc 15 45 96 2c e0 5b 4f c8 d6 20 95 f3 1c c5 24 9f 34 14,一共有64位,对应的牌型: * 座位1: 0x40 0xeb 0x7a 0x45 0x4f 0xf3 ==> Q, 1, 2, 8, 10 * 座位2: 0x2a 0xbe 0x82 0x96 0xc8 0x1c ==> 3, 4, 4, 2, J * 座位3: 0xd5 0x47 0x9c 0x2c 0xd6 0xc5 ==> 4, 1, 9, 8, 5 * 座位4: 0x8x 0x54 0xdc 0xe0 0x20 0x24 ==> 7, 2, 3, 7, 1 * 座位5: 0xe5 0x16 0x15 0x5b 0x95 0x9f ==> K, 8, 6, 8, 3