首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >证明彩票不知道抽奖结果

证明彩票不知道抽奖结果
EN

Cryptography用户
提问于 2012-09-02 20:02:32
回答 1查看 1.8K关注 0票数 8

一个可变参与者彩票系统能密码证明他们对抽奖结果一无所知吗?

参与者不会在此彩票中选择数字,中奖号码也不会抽奖。相反,他们只是在投注中登记。获奖者的选择是通过采取所有的赌注,并建立一系列的“门票”,其中每个参与者的门票条目的数目与他们的赌注成正比。从这个数组中选择一个随机索引,这是赢家。

我找到了类似的问题,但是答案假设参与者的数量是固定的。我也想让参与者不必像一些人所建议的那样履行比特承诺--对于信任参与者来说,这是一个皮塔。

EN

回答 1

Cryptography用户

发布于 2012-09-04 17:35:01

据我所知,您要求的是一个协议,其中每个玩家都为整个随机机制贡献了一些“熵”,这样他们就可以放心,没有其他人来玩这个系统了。但是在这样的系统中,你会假设每个球员都有机会选择一个价值,给他们最好的获胜机会。假设玩家知道正在使用的算法,优势总是落在最后一个参与者身上,他们将有能力选择一个能让他们选择获胜的数字。

首先,让我们简化讨论,忽略“赌注”、“参与者”、“票”和“索引”带来的复杂性。这是所有的噪音掩盖了这个问题的根源,这就是你正在寻找一个公平的1-零-N的选择彩票。不管你想出什么协议,你都可以弄清楚票是怎么卖的,或者谁以后才能拿到钱。为了便于讨论,我假设"player“指的是一张入场券,而”贡献号“意味着玩家选择的熵值。

我们需要的是一个密码安全的随机数,在彩票结束后,所有参与者都做出了选择。

从那里,你可以做任何事来混合所有玩家的熵贡献,得到一个数字。您可以简单地将每个贡献连接在一起,包括末尾的随机数,并接受结果的SHA散列。将散列摘要除以玩家数,其余部分给出您的获胜索引。使用Tor协议可能要复杂得多,在Tor协议中,每个玩家的贡献被用作密钥来加密或散列前一个玩家的贡献,而哈希用于确定下一个“随机”播放器,等等。但所有这些只是搅拌同一个锅的不同方式--没有一个能证明锅是公平的。

问题是这些方案不能“证明”安全随机数是公平生成的。如果我运行彩票,我可以操纵随机数发生器发出一个非随机值,然后给我的合作者-玩家所有的其他玩家的价值,并允许他作出最后的选择。当预先确定的非随机数出现时,我的合作者就会和我一起获奖并分得奖金.选择的算法并不重要,只要我让我的合作者坚持到底。

整个彩票和它中的每一个玩家都可能是一个骗局,目的是从一个毫无戒心的受害者那里取钱。作为一个扭曲的操作者,我的合作者可以包括每一个玩家,除了一个:标记。

如果是这样的话,那么让玩家贡献熵是没有价值的。它主要为合作者提供了一个选择的途径,这将影响彩票的发展方向。

最终,每一个彩票都归结为“彩票经营者能被信任吗?”这是社会问题,不是数学题。

与其向玩家询问熵,您最好的方法是使用商定的未来公共信息源作为安全随机数生成器的熵源。XKCD通过"geohashing“实现了这一点,它使用前一天NYSE收盘价的值作为哈希算法的输入,从而得到一个随机的纬度/经度。它是不确定的(没有人可以控制值到最后一分钱),每个人都可以自己做计算,以确保它是公平计算的。显然,您需要一个以上的数据源,它们必须非常公开才能避免篡改。也许你可以在前一天收盘时使用道琼斯100指数的合并散列值,使用DJIA作为随机变量来选择它们的散列顺序。

票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/3705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档