有没有办法生成可公开观察的随机数?

Rex*_*exE 10 random web

我有一个网站,根据虚拟骰子滚动为用户提供不同的结果.我希望他们相信我的随机数字是诚实的,所以不是我在我自己的代码中确定它(我怀疑的用户是我可以操作的黑盒子),我想提出一些其他的机制.

一个想法是指向一些可信的网站(例如政府),其具有随时间变化的公开可观察的随机数.然后我可以说,"我们将结果基于0到9之间的数字,这将是10秒内[url]的数字."

有什么建议?

Nie*_*jes 4

我自己会去这个网站。它有一个针对多种数字的公共匿名 URL,以及用于观察它们的实时页面:

十六进制数字

二进制数

它还包括对随机性来源的科学解释的参考,以及它的实际演示,甚至是专门针对骰子的演示。

从您的代码中,您可以检索上面提到的数字 URL。

如果可验证性很重要,则可以选择

一种完全替代的方法:当截止日期到来时,检索外部控制的高流量交互式网站的主页,例如Stack Overflow 的问题页面。存储页面,获取其 MD5 或 SHA1 哈希值,并从中导出您的卷。

然后您可以:

  • 显示快照时的页面,以验证其是否正常工作 HTML
  • 它的 HTML 源代码充满了时间戳来验证真实性,并且检索时间接近秒
  • 让人们据此自己验证哈希值
  • 保证值的随机性,因为从数学角度来说,不可能预测在像 SO 这样的网站上需要更改什么来触发给定的新哈希值

任何篡改该系统的尝试,例如 Jeff 故意重复旧页面,因为他知道该页面生成的 MD5 哈希值,很容易被该网站的实时性质所揭穿 - 每个人都可以看到问题所在。 t 最近到快照时间。