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

时间:2013-05-15 13:18:51

标签: random web

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

我自己去this site。它有几种数字的公共匿名URL,以及观察它们的实时页面:

十六进制数

二进制数

它还包括对scientific explanation of the source of randomness的引用及其实际演示,甚至包括specifically for dice

您可以从代码中检索上述数字网址。

如果可验证性很重要

一种完全替代的方法:当截止日期落下时,检索外部控制的高流量交互式网站的主页,例如Stack Overflow的questions page。存储页面,获取其MD5或SHA1哈希值,并从中派生出滚动。

然后你可以:

  • 在快照时显示页面,以验证其是否正常工作
  • 它的HTML源代码充满了时间戳,以验证真实性和检索时间到接近第二个
  • 让人们根据
  • 验证自己的哈希值
  • 保证值的随机性,因为在数学上无法预测在SO等网站上需要更改的内容以触发给定的新哈希值

任何篡改此系统的企图,例如Jeff故意重复旧页面,因为他知道它产生的MD5哈希,很容易被网站的实时性质揭穿 - 每个人都可以看到快照时问题不是最近的问题。