CS2 可验证公平
每一局结果都能加密验证。玩家和平台都改不了结果——你可以自己核对证明。
工作原理
承诺
开局前,我们生成随机 server seed,并把其 SHA-256 hash 展示给你。承诺就此锁定——之后无法再改。
SHA256(server_seed) → a3f8c1d…游玩
你的 client seed、递增的 nonce 与 server seed 一起,通过 HMAC-SHA256 算出本局结果。
HMAC(server, client:nonce:0) → result验证
轮换种子时,上一个 server seed 会被公开。核对哈希是否等于原始承诺,再自行复现结果。
✓ Hash matches → outcome is authentic游戏验证
每次开箱,系统用 HMAC-SHA256,以 server seed(密钥)和消息 算出一个随机浮点数。
浮点数会映射成 1 到 100,000 的 票号。箱子里每个物品占一段连续票号——各段之和正好是 100,000。票号落在谁的区间,谁就是结果。
1const crypto = require('crypto');
2
3function verifyCaseRoll(serverSeed, clientSeed, nonce) {
4 const hmac = crypto.createHmac('sha256', serverSeed);
5 hmac.update(`${clientSeed}:${nonce}:0`);
6 const buf = hmac.digest();
7
8 const float =
9 buf[0] / 256 +
10 buf[1] / 65536 +
11 buf[2] / 16777216 +
12 buf[3] / 4294967296;
13
14 const ticket = Math.floor(float * 100000) + 1;
15 return { ticket, float };
16}
17
18// Verify the server seed commitment
19function verifyHash(serverSeed, expectedHash) {
20 const hash = crypto.createHash('sha256')
21 .update(serverSeed).digest('hex');
22 return hash === expectedHash;
23}
24
25// Each case item owns a ticket range.
26// All ranges sum to 100,000.
27// The item whose range contains your ticket wins.
验证开箱结果
你的种子
查看当前种子对、修改 client seed,或轮换以公开当前 server seed。
种子历史
已公开 server seed 的历史种子对,用来验证过往任意一局。
About this page
庄家能否操纵结果?
不能。任意回合前我们公布活跃服务器种子的 SHA-256 哈希。实际种子游玩时保密,但哈希固定——若我们更换种子以人为操纵不同结果,新种子将产生不同哈希,轮换瞬间即可发现。结合你自己的客户端种子与每局 nonce,每掷点提前提交且事后可复现,服务器无法「重跑」不喜欢的结果。
什么是服务器种子、客户端种子与 nonce?
服务器种子是后端选取的长随机值,使用时保密;仅其 SHA-256 哈希公开显示。客户端种子是你的随机值——默认为你生成,或在设置中自选。nonce 是活跃种子对上每局游戏递增一的计数器。三者一起输入 HMAC-SHA256:相同输入恒产生相同结果,任意旋转可逐字节复现。
为何需要轮换种子才能验证?
验证需要明文服务器种子,但游玩中公开将让任何人预测下一结果——违背设计初衷。轮换解决:轮换时当前服务器种子退役并向你公开,新种子(含新哈希)为后续游戏提交,nonce 重置。此后可验证退役种子上的每局游戏,下一局在新种子下提交。
能否设置自己的客户端种子,应该吗?
可以。打开设置 → Provably Fair(或滚动至本页「你的种子」),输入任意客户端种子——词、数字均可——点击轮换。此后每结果与你的种子混合,庄家无法提前预测。留空则我们生成强随机值。两者均 Provably Fair;自定义种子主要提供额外安心与向好友解释结果时的清晰审计故事。
如何轮换种子?
前往设置 → Provably Fair(或本页「你的种子」面板)点击「轮换种子」。轮换立即公开当前服务器种子以便验证其上的所有过往游戏,生成新服务器种子并公布哈希,应用你选择的客户端种子(留空则全新随机),nonce 重置为零供下一回合。无冷却——可随时轮换,包括在要完整审计的对局前。
nonce 是什么,为何重要?
nonce 是当前服务器种子/客户端种子对上每回合递增一的 per-game 计数器。即使种子对相同,每个 nonce 产生不同 HMAC 输出因此不同结果。验证回合需提供使用的精确 nonce,否则验证器将复现不同(错误)结果。
箱子对战的公平性有何不同?
箱子对战在大厅各席位间共享单一已提交服务器种子,但各席位需在相同共享箱上获得独立滚动。为实现此点而不用各席位个人客户端种子,HMAC 输入混合共享服务器种子、回合 nonce 与玩家用户 ID。各席位滚动唯一可验证,对战结束时公开共享服务器种子,任何人可重放对战中的任意旋转。
如何验证轮盘、扫雷、二十一点或开箱回合?
打开本页验证器并选择对应游戏。各验证器需要公开的服务器种子(如需要请先轮换)、回合时的客户端种子与回合 nonce——外加游戏特定输入如扫雷地雷数、开箱箱子 ID 或对战席位用户 ID。验证器复现服务器生成的精确结果。若与游戏屏幕不同,保存种子并立即联系客服。
丢失客户端种子或未保存 nonce 怎么办?
活跃种子对与每已结算回合的 nonce 存储于账户,稍后可在设置 → Provably Fair 与游戏内历史(开箱、手牌、扫雷等)检索。未写下值就轮换种子无妨——上一种子对归档仍对你可见,可随时验证其上任一回合。
Provably Fair 与监管审计是一回事吗?
不是,这很重要。Provably Fair 保证每单独回合由服务器提前提交的输入生成,庄家无法事后挑选结果。它本身不认证每游戏长期庄家优势、赔付完整性或特定司法管辖区合规。CSRAGE 将 Provably Fair 与内部控制及(如需要)第三方审查结合——但应视为互补而非可互换。
能否编写自己的验证器而非使用我们的?
可以。每游戏的精确算法以纯 JavaScript 记录于本页。加密原语(SHA-256 用于提交哈希、HMAC-SHA256 用于每回合抽取)是任何主流语言的标准库函数,可移植至 Python、Go、Rust 等。独立验证器帮助整个社区:若你的脚本与屏幕结果不一致,保存输入并联系我们比较参考实现。
玩得越多会改变对我有利或不利的概率吗?
不会。每回合结果仅取决于种子对与该回合 nonce;你的历史、等级、连胜或余额不影响 RNG。长时间对局感受不同是因为方差在多回合间平滑,而非底层概率变化。验证器可证明:可孤立重放单回合,结果不依赖该回合输入之外的任何因素。
