验证牌局
每张处理的手牌。 SPN 是可被证明公平的。 我们承诺对我们的随机数生成器种子进行加密哈希。 之前 出完牌后,在手牌后揭示种子。 你可以独立验证这笔交易是否被操纵——无需信任。
工作原理
在发牌之前
我们的服务器生成一个随机的 256 位种子,并计算其 SHA-256 哈希值(即“承诺值”)。 承诺会立即保存在你的手牌记录中——在发到第一张卡之前。
发牌。
牌组使用一个以相同随机种子作为种子的确定性 Fisher-Yates 算法进行洗牌。 每个牌位都由那个种子决定——在记录下承诺之后,无法更改牌组顺序。
手牌完成后
原始种子会在你的手牌历史中显示。 你现在可以验证了: SHA-256(已揭示的种子)必须等于存储的承诺。如果它匹配,交易就是公平的。
逐步验证
步骤1 — 导出你的手牌历史记录
登录你的账户,进入个人资料 → 手牌历史 → 导出。 下载 JSON 文件。 找到你想验证的手牌,并定位到 rngSeed 和 rngCommitment 字段。
步骤 2 — 对种子进行哈希处理
使用以下任意方法对已揭示的种子运行 SHA-256。 输出必须与 rngCommitment 的值完全一致。
macOS / Linux(终端)
echo -n "YOUR_RNG_SEED_HERE" | sha256sum Windows(PowerShell)
$seed = "YOUR_RNG_SEED_HERE"
$bytes = [System.Text.Encoding]::UTF8.GetBytes($seed)
$hash = [System.Security.Cryptography.SHA256]::Create().ComputeHash($bytes)
($hash | ForEach-Object { $_.ToString("x2") }) -join "" 使用我们的开源验证器(Node.js)
npx spn-rng-verify --seed YOUR_RNG_SEED_HERE --commitment YOUR_RNG_COMMITMENT_HERE spn-rng-verify 包已发布在 npm 上,且不依赖任何 SPN 依赖——它是一个独立的 SHA-256 检查器,你可以在运行前检查它。
步骤 3 — 比较
哈希结果必须与手牌记录中的 rngCommitment 字段完全一致。 如果结果一致,交易就是公平的,且在承诺之后种子没有被修改。 如果不匹配,请立即联系支持。
为什么这很重要
传统的在线扑克房间会要求你信任他们的随机数生成器。我们不会——因为你不应该被要求这么做。 承诺会在发牌前记录在案。 服务器无法通过某种机制在发现你即将诈唬,或对手有强手牌后改变洗牌顺序。
SPN上的每笔手牌都可以被验证。 我们不会对某个子集进行采样或审计——每次交易、每次交易时,完整的密码学证明都可用。
想查看所有手牌的统计分布吗? 我们每天发布随机生成图像的统计数据,显示观察到的手牌频率与预期频率的对比。
查看 RNG 统计信息