可证明的公平
随机数生成
对于每一次可验证的投注,将使用客户端种子(Client Seed)、服务器种子(Server Seed)、随机数增量(Nonce)和游标(Cursor)作为随机数生成函数的输入参数。此函数利用加密哈希函数 HMAC_SHA256 来生成字节,这些字节将作为我们平台生成可验证公平随机结果的基础。
// Random number generation based on following inputs: serverSeed, clientSeed, nonce and cursor
function byteGenerator({ serverSeed, clientSeed, nonce, cursor }) {
let currentRound = Math.floor(cursor / 32);
let currentRoundCursor = cursor % 32;
while (true) {
const hmac = createHmac('sha256', serverSeed);
hmac.update(`${clientSeed}:${nonce}:${currentRound}`);
const buffer = hmac.digest();
while (currentRoundCursor < 32) {
yield Number(buffer[currentRoundCursor]);
currentRoundCursor += 1;
}
currentRoundCursor = 0;
currentRound += 1;
}
}服务器种子
服务器种子由系统生成,为一个随机的 64 位十六进制字符串。在您下注之前,我们会提供该服务器种子的加密哈希值。提供加密形式的服务器种子,是为了保证赌场运营方无法更改未哈希的服务器种子,同时玩家也无法提前计算结果。
要从哈希版本中揭示服务器种子,玩家必须进行旋转(rotate),触发其被替换为新生成的种子。
从此,您可以验证哈希服务器种子是否与未哈希服务器种子一致。此过程可通过上方菜单中的“未哈希服务器种子”功能进行验证。
客户端种子
客户端种子属于玩家,用于确保玩家对生成结果的随机性有影响。如果没有此算法组件,仅凭服务器种子,系统将完全控制每次投注的结果。
所有玩家均可自由编辑和更改客户端种子,以生成新的随机结果链。这保证玩家对结果生成拥有完全控制权,类似于实体赌场中的洗牌操作。
在注册时,浏览器会为您生成一个客户端种子,以确保您初次体验网站时不中断。虽然此随机生成的客户端种子已可使用,但我们强烈建议您自行设置种子,以便您的影响力被包含在随机性中。
您可以通过“公平性”弹窗来设置客户端种子。
随机数增量(Nonce)
Nonce 是一个随着每次新投注而递增的数字。由于 SHA256 加密函数的特性,每次生成的结果都是全新的,无需生成新的客户端种子和服务器种子。
Nonce 的实现确保了我们对您客户端种子和服务器种子的承诺,同时为每次投注生成新的结果。
游标(递增数)
我们使用 4 个字节生成单个游戏结果,而 SHA256 限制为 32 字节,因此我们使用游标的实现来生成更多游戏事件,而无需修改可验证公平算法。
只有当游戏需要生成超过 8 个可能结果(32 字节 / 4 字节)时,游标才会迭代。例如:在二十一点(Blackjack)中需要使用超过 8 张牌时。
游标初始值为 0,每次 HMAC_SHA256 返回 32 个字节后增加 1。如果游戏事件不需要生成超过 8 个随机数,则游标不递增,因为无需生成额外的可能结果。
使用多个增量数的游戏:
- Plinko (每局 2 次增量以覆盖 16 种可能决策)
使用多个增量数的游戏(默认值 0 表示):
- Dice
- Limbo




