ГСЧ 随机实验室

抽奖

抽奖公平性验证

根据公布的秘密和参与者名单重新计算结果。

即时 本地计算 SHA-256 无服务器
验证结果 尚未开始验证
粘贴秘密和参与者名单,然后点击“验证”
验证方法 SHA-256 · 按升序排序
  1. 1
    秘密的哈希

    先计算 SHA-256(秘密) 并与抽奖前公布的哈希比较。值不同意味着秘密被替换了。

  2. 2
    每一行的哈希

    对编号为 i 的参与者计算 h = SHA-256(秘密 + “:” + i + “:” + 姓名)。编号是行在列表中的位置,从 1 开始。

  3. 3
    排序与获奖者

    所有 h 按升序排序(相同时按行号)。前 N 位参与者即为获奖者。

公式 h = SHA-256(secret + ":" + (index + 1) + ":" + name)
另一面同样公开:页面 抽奖 创建秘密和哈希,计算获奖者并生成记录。

如何验证抽奖

验证只需一分钟,也无需信任主办方:只需要秘密、按原顺序排列的参与者名单和获奖人数。

  1. 从抽奖记录中取出秘密——它是“REVEAL”一词旁的 32 个 hex 字符。
  2. 按行粘贴参与者名单,顺序与抽奖时相同。
  3. 指定获奖人数 N 并点击“验证”。
  4. 将秘密哈希与公布的 commit 比对,将获奖者名单与公布的比对。

哈希意味着什么

哈希是固定长度的数据指纹。同一字符串总是得到相同的 SHA-256,而哪怕改动一个字符都会完全改变结果。因此主办方无法“改写”秘密:新秘密会得到不同的哈希。

Commit 在抽奖前公布,并以承诺约束主办方, reveal 之后公开秘密。如果公开秘密的 SHA-256 与公布的哈希一致——承诺就已履行。

结果可以伪造吗

无法在不改变结果的情况替换获奖者:姓名或行序的任何改动都会改变所有哈希。找出具有相同 SHA-256 的另一个秘密在计算上是不可能的——这是加密哈希函数的性质,而不是网站的承诺。

唯一需要单独验证的是,哈希确实在 转动 开始前公布过。为此请保存公布链接:频道帖子、截图或存档副本。没有这个证据,方案就只是口头承诺。

为什么参与者的顺序很重要

行号参与公式,因此同一个人在不同位置会得到不同的哈希。验证时必须按相同顺序、相同成员粘贴名单:否则结果自然会不一致——这不是错误,而是另一个题目条件。

常见问题
从哪里获取秘密?
在抽奖记录中——“reveal”那一行。它也会出现在抽奖页面生成的链接中:那样字段会自动填充。
秘密的哈希与公布的不一致。这意味着什么?
公开的秘密与当初用于 commit 的不同。这样的抽奖不能视为已验证:结果可能在哈希公布后被重算。
为什么我算出的获奖者不同?
请检查三点:名单的成员与顺序、获奖人数 N,以及抽奖时是否未删除重复项。任何差异都会改变行号,从而改变所有哈希。
如果名单中有重复姓名怎么办?
默认情况下抽奖页面会删除重复项:一人一个机会。验证时请粘贴当初公布的同一份名单,不要手动清理。
可以验证他人的抽奖吗?
可以。页面是公开的,无需注册:只需要秘密、参与者名单和获奖人数。
数据会发送到哪里?
不会发送到任何地方。秘密和名单在浏览器中处理,SHA-256 由 WebCrypto 计算。网站不保存也不记录输入的数据。
谁对抽奖的合法性负责?
主办方。网站提供随机选择工具,但不举办彩票、不接受投注、不派发奖品。请针对您的活动核查第 138-ФЗ 号《彩票法》和第 38-ФЗ 号《广告法》的要求。
本页面验证的是算术,而不是诚信:您需要对它的信任程度,恰好等于您对 SHA-256 算法的信任。
↑↓ 导航 Enter 打开 Esc 关闭