V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sen2
V2EX  ›  程序员

关于 random.org 的使用

  •  
  •   sen2 · 2019-05-06 00:40:02 +08:00 · 4064 次点击
    这是一个创建于 2061 天前的主题,其中的信息可能已经有所发展或是发生改变。

    希望通过第三方随机数提供网站 random.org 得到有公信力的随机数,而且可回查。比如某一时间请求 get 到一个随机数 x,其“序号”是 n,之后可以通过 n 查询到相对应的随机数是 x,以证明其公正性。

    不知道这种方式是否可行,请用过的大佬指点:

    1. random.org 提供 Random Calendar Date Generator,可以返回一个随机的日期 rd。
    2. 再在获取某种随机数时用 Advanced Mode,以 rd 为日期参数,这样就可以返回一个对应的随机数,以证明公正性。

    不知道这是不是正确的使用姿势,求教。

    18 条回复    2019-05-10 17:40:49 +08:00
    alvin666
        1
    alvin666  
       2019-05-06 00:42:03 +08:00 via Android
    第一个需求可以用一些库来实现,不知道你用的什么语言,python 的 random 库能指定随机数种子,生成相同的随机数
    alvin666
        2
    alvin666  
       2019-05-06 00:43:17 +08:00 via Android
    但是这个网站用的是“ atmospheric noise ”,显然不能做到你的需求
    mango88
        3
    mango88  
       2019-05-06 00:53:00 +08:00
    应该可行,
    用当前大气噪声得到随机时间,再用随机时间时的大气噪声用来生成随机数列是`真正的随机数`了,
    Kagari
        4
    Kagari  
       2019-05-06 00:58:14 +08:00
    geelaw
        5
    geelaw  
       2019-05-06 01:26:42 +08:00 via iPhone
    使用受信任第三方进行投硬币是从理论上令人不满意的,存在着一个高效的多方计算协议可以产生近乎公平的随机数。
    acehow
        6
    acehow  
       2019-05-06 06:57:58 +08:00 via Android
    证明公平性很简单,把随机调用部分代码公开为一个 web 服务,生成随机数时记录种子和结果同步记录到 web 上就可以了。只要算法保证了公平公开,真随机还是伪随机并不是关键,也没必要调 random.org
    sen2
        7
    sen2  
    OP
       2019-05-06 11:58:37 +08:00
    @alvin666 需要有公正性,所以才用第三方。
    sen2
        8
    sen2  
    OP
       2019-05-06 12:09:38 +08:00
    @mango88 可行是可行的,但是回头想想,无法证明第 1 步得到的随机日期就是第三方给的。
    cy97cool
        9
    cy97cool  
       2019-05-06 12:29:05 +08:00 via Android
    就算你公开调用 random.org 的序号 n
    如果想做手脚,你完全可以多调用几次直到输出符合你的要求 只公开这个 n
    sen2
        10
    sen2  
    OP
       2019-05-06 12:31:54 +08:00
    @Kagari 我只想要随机数,而且可根据时间回查的。
    sen2
        11
    sen2  
    OP
       2019-05-06 12:38:45 +08:00
    @cy97cool 对,所以需要一个固定的点,比如说时间点,每分钟的 00''的随机数。但是在这个网站没有找到可以 by time 查询的,最多就是按日期。
    sen2
        12
    sen2  
    OP
       2019-05-06 12:45:40 +08:00
    @acehow 要的是公正性,如果这样的话这个网站的作者就没有必要瞎忙活这么多年。
    GeruzoniAnsasu
        13
    GeruzoniAnsasu  
       2019-05-06 13:39:28 +08:00 via Android
    随机数可回查是想干啥。。。真随机数又不是用来做零知识证明的


    确保一个数是公认随机的数,只需参与各方各提供一个随机数即可
    Kagari
        14
    Kagari  
       2019-05-06 15:24:33 +08:00
    @sen2 #10 看起来你也不一定要真随机数,但是要求输入时间戳不可预知未来结果,这样就不能选择基于时间生成随机数的方法
    这样看来你写个 api 调用 random.org 的 api 咯,然后再把调用的结果和时间戳返回并公布在网站上,这样根据时间戳就能查询历史结果。公正性的话把轮子做大做广公正性就出来了
    sen2
        15
    sen2  
    OP
       2019-05-06 15:32:56 +08:00
    @Kagari 明白你意思,但是把返回的结果和时间戳公布在自己的网站上并没有可信度,而且时间戳与结果并不唯一绑定,这个网站也没有提供 by time 的 API。
    sen2
        16
    sen2  
    OP
       2019-05-06 15:36:50 +08:00
    @GeruzoniAnsasu 理论上是对的。
    zhaishunqi
        17
    zhaishunqi  
       2019-05-10 16:56:49 +08:00
    股指很随机,哈哈
    sen2
        18
    sen2  
    OP
       2019-05-10 17:40:49 +08:00
    @zhaishunqi 哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5220 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 03:49 · PVG 11:49 · LAX 19:49 · JFK 22:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.