运作原理
每个结果由三个输入组成:我们的服务器种子、您的客户端种子和 nonce。游标让一笔投注可以使用超过 32 个字节,用于需要很多数字的游戏(扫雷、基诺、弹珠、纸牌)。
服务器种子
由我们生成。投注前您能看到它的 sha256 哈希,轮换后能看到种子本身。
客户端种子
由您或您的浏览器生成。可随时在公平设置中更改。
Nonce
每个种子对从 0 开始,每投注一次加 1。
游标
从 0 开始。一笔投注每多需要 32 个字节,游标加 1。
由种子得到字节
function* bytes({ serverSeed, clientSeed, nonce, cursor }) { let round = Math.floor(cursor / 32), i = cursor - round * 32; while (true) { const hash = hmacSha256(serverSeed, `${clientSeed}:${nonce}:${round}`); for (; i < 32; i++) yield hash[i]; round++; i = 0; }}字节转为浮点数
// 4 个字节组成一个 0 到 1 之间的浮点数float = b0 / 256 + b1 / 256^2 + b2 / 256^3 + b3 / 256^4