解决在线博弈的信任问题
可证明公平性的基本概念是,玩家能够证明并验证他们的结果是公平且未被操纵的。这是通过使用 承诺方案 以及加密哈希来实现的。
承诺方案旨在确保玩家对所有结果都有影响力。加密哈希技术则用于确保平台也遵守该承诺方案。这两个概念的结合,为在线博彩创造了可审计、可复算的环境。
可以用以下简化表示法来说明:
fair result = operators input (hashed) + players input
随机数生成
对于每个可验证的投注,客户端种子、服务器种子、随机数和游标被用作输入参数。 随机数生成 该函数利用了加密哈希函数。 HMAC_SHA256 生成字节,然后将其用作我们在平台上生成可证明公平的随机结果的基础。
// Random number generation based on following inputs: serverSeed, clientSeed, nonce and cursor
function byteGenerator({ serverSeed, clientSeed, nonce, cursor }) {
// Setup cursor variables
let currentRound = Math.floor(cursor / 32);
let currentRoundCursor = cursor;
currentRoundCursor -= currentRound * 32;
// Generate outputs until cursor requirement fullfilled
while (true) {
// HMAC function used to output provided inputs into bytes
const hmac = createHmac('sha256', serverSeed);
hmac.update(`${clientSeed}:${nonce}:${currentRound}`);
const buffer = hmac.digest();
// Update cursor for next iteration of loop
while (currentRoundCursor < 32) {
yield Number(buffer[currentRoundCursor]);
currentRoundCursor += 1;
}
currentRoundCursor = 0;
currentRound += 1;
}
}服务器种子
服务器种子由我们的系统生成,是一个随机的 64 位十六进制字符串。在您下注之前,我们会向您提供该服务器种子的加密哈希值。我们之所以提供加密形式的服务器种子,是为了确保赌场运营商无法更改未哈希的服务器种子,并防止玩家提前计算结果。
要从哈希版本中揭示服务器种子,玩家必须轮换种子,这将触发用新生成的种子替换旧种子。
轮换并披露后,您可打开侧栏 取消服务器种子散列 ,输入当时的 64 位十六进制散列,查询已披露的对应服务器种子明文(未轮换披露前无法通过散列反查);也可在游戏内公平性弹窗的「种子」页查看当前配对与轮换。
客户端种子
客户端种子属于玩家所有,用于确保玩家能够影响生成结果的随机性。如果没有算法的这一部分,服务器种子将完全掌控每次投注的结果。
所有玩家都可以自由地定期编辑和更改客户端种子,以生成一系列新的随机结果。这确保玩家对结果的生成拥有完全的控制权,类似于在实体赌场切牌。
注册时,您的浏览器会为您生成一个客户端种子,以确保您首次访问网站时获得流畅的体验。虽然这个随机生成的客户端种子通常比较合适,但我们强烈建议您选择自己的种子,以便将您自己的影响融入到随机性中;可在游戏内公平性弹窗中修改。
随机数
Nonce 只是一个每次下注都会递增的数字。由于 SHA256 加密函数的特性,每次都会产生一个全新的结果,而无需生成新的客户端种子和服务器种子。
Nonce 的实施确保我们始终遵循您的客户端种子和服务器种子对,同时为每次下注生成新的结果。
第三方验证
所有在 QKG 平台上进行的 QKG Originals 游戏都可以在 计算 页自行验算,也可通过第三方网站验证;部分站点开源了验证流程。您可自行搜索,或参考: