Hash Lottery开奖验证 全部计算在你的浏览器里进行,不经过平台

这一局开得对不对,
你自己算一遍。

输入局号,这一页会在你的浏览器里把结果从头算一遍,告诉你平台有没有动过手脚。 用的是公开的数据和公开的算法,不需要相信我们。

正在加载验证程序…

高级选项
结论会写在这张纸上 每一局的结果由两半合成,这一页会逐一核对:
  1. 平台那一半(种子)开局前就锁死了,事后没有换过
  2. 另一半(drand 随机数)在封盘之后才产生,下注时谁都不知道
  3. 两半合起来按公开公式算,得出的结果和平台公布的一样
  4. 根据这个结果,中奖的是哪些选项
结果是怎么来的?

每一局的结果由两半合成,缺一不可:

平台的一半是一个秘密数字(种子)。开局之前,平台先公布它的「指纹」—— 用 SHA-256 算出的一串字符。指纹能由种子算出,却推不回种子;而换一个种子,指纹就完全不同。 所以指纹一公布,平台就不能再换种子了,但你也还看不到种子是什么。

另一半来自 drand。drand 是一个公开的随机数服务,由全球多家互不隶属的机构 (大学、公司、基金会)联合运营,每隔几秒共同签出一个随机数,只有多数机构合作才签得出来。 每一局开局时就指定用哪一轮,而那一轮在封盘之后才产生 —— 下注截止的时候,平台和你一样不知道它。

开奖时平台公开种子,把两半放进公开的公式算出结果。平台不能事后换种子(指纹对不上), 也不能事后挑随机数(轮次开局就定了),所以结果不由平台决定。

公式:结果 = uniform(HMAC-SHA256(种子, drand 签名 ‖ nonce), modulus)。 同一局里的每种玩法各用一个不同的 nonce,彼此的结果互不相关。

这一页凭什么可信?

核对的逻辑和平台结算用的是同一份开源代码,编译后在你的设备上运行,结论在本机得出。 页面只做两件联网的事:向平台取这一局的公开回执,以及直接向 drand 取那一轮的签名。

drand 的签名要用写死在验证程序里的公钥来验,平台伪造不出能通过的签名 —— 所以签名从哪里取来都不影响结论。

最稳妥的用法是:下注前在下注页点「复制本局回执」存一份,开奖后在这里选「用我存的回执验」。 这样你连「平台事后给的回执没被改过」都不必相信。你也可以不用这一页,用命令行工具 verify-cli 验,或者照着公式自己写一遍。

技术细节里的那些词是什么意思?
承诺 / commitment
开局前公布的种子指纹,即 SHA-256(种子)。
drand 轮次 / round
drand 每隔固定时间出一轮随机数,轮次是它的编号。每一局开局时就写定了用哪一轮。
签名 / signature
drand 那一轮签出的随机数本身。它是多家机构的联合签名,任何人都能用公钥检验真假。
nonce 与 modulus
nonce 区分同一局里的不同玩法;modulus 是结果有几种可能(骰子 6,号码球 10)。
result 与「显示为」
公式算出的是从 0 开始的数(号码球是 0–9),再按随回执公开的号码表换成你看到的号码(0 → 1,4 → 5)。 所以技术细节里写「复算得 4(显示为「5」)」,指的就是号码球开出 5。
划分 / partition
一个投注选项在开出哪些结果时算中,比如「大」= 4、5、6。每个玩法的选项必须恰好覆盖所有结果、互不重叠。