当前位置:首页 > 区块链新闻 > 正文

分布式网络上的多方随机数生成器(RNG)

来源: 互联网时间:2019-03-03 09:03:21

自古以来,人们就被随机性的概念所吸引。我们一直在摸索事物运行的规则。在我们的天性中,我们想要拒绝假设任何事情都是随机发生的。我们观察事物,寻找规律,做出预测。渐渐地,人们开始意识到随机性在日常生活中扮演着重要的角色。因此,随机性在游戏、艺术、仿真、统计和密码学等各个领域都有大量的应用。虽然随机性看起来非常明显,但创建随机性实际上具有惊人的挑战性。所需的随机性程度取决于所使用的应用程序。较弱形式的随机性可用于简单的应用程序(如从列表中随机选择音乐曲目),而许多加密应用程序需要更高程度的表示性。于是这就提出并实现了大量的算法和物理方法。

传统上,随机数生成器(Random Number Generation)是一种计算算法或物理设备,它产生不可预知的序列。大多数传统的随机数生成器使用本地随机源,并且是为客户端单独设计的。虽然我们中的一些人可以选择相信这些来源,但事实证明,本地可用的随机性可以被颠覆。由于当今的许多应用程序都需要各方之间的公共随机性,因此这些随机数生成器似乎不是一个好的选择。此外,由于缺乏一种简单的、成本效益高的方法来验证其结果,它们远离了在分布式网络上运行的许多应用程序。

自2009年引进以来,区块链技术越来越受欢迎,越来越受到研究者的关注。在此技术基础上开发了更多的应用程序。因此,所谓的分布式随机数生成不可避免地成为一个重要的研究领域。最常见的类型是多方随机数生成器。本文将阐明什么是多方随机数生成器,以及它与传统随机数生成器的区别。由于大多数传统的MG是集中的,如果没有指定,我们将交替使用术语常规和集中。

什么是多方随机数生成器?

多方随机数生成器生成是一种从多方贡献中构建单一价值的机制。每一方的贡献都改变了最终价值,在知道自己的贡献将如何塑造最终价值方面,没有人比其他人有任何优势。与从单个源生成随机数的集中式方法不同,这种方法收集来自网络各处的随机源,并将它们组合成最终的随机数。

为了更好地理解这个术语,让我们来看看“在线游戏”的例子,这个在线游戏是两个或更多的人对游戏结果的下注。在这种情况下,如果任何一方在数据披露前就知道了结果,那么游戏就不再被认为是公平的。因此,由一个公平的随机数生成器生成游戏结果至关重要。集中式随机数生成器在某种程度上可以应用于这款游戏,但它缺少一种审计结果。此外,当事人必须信任第三方,如果第三方是恶意的,结果就不再公平。一种简单的方法是让每一方都贡献一些自己选择的数字,然后通过使用这些数字来获得最终结果。这种天真的方法显然有一些缺点,但是它支持删除第三方元素。所有各方都可以直接影响随机数,从而增加了问责性,所有各方都可以直接影响随机数,从而增加结果中的问责性。

一般来说,如果设计得当,多方随机数生成器不仅能够满足随机数生成器的严格要求,而且还能够实现一些有趣的特性,从而可以用于许多应用程序。以下是将它们与集中式随机数生成器区别开来的一些属性。

不受信任的第三方

使用集中式随机数生成器的主要缺点是,提供者不能滥用其权力并忠实地提供其服务。此外,还有一种风险是攻击者获得对提供者的控制,从而使攻击者能够危害服务。因此,我们不知道随机数生成器是否被操纵。在这种情况下,生成的数字很可能不是随机的。多方随机数生成器提供了一种机制,可以在存在恶意方的情况下,在许多方之间就随机值达成协议。因此,多方随机数生成器不依赖某一特定政党,而是将信任分配给每一个政党。从对以下问题的回答中,我们可以很容易地知道分布式随机数生成器通常如何消除信任任何第三方的需要。

· 更有可能发生的是:一方是恶意的,还是100人中有51人同时是恶意的?

· 以下哪一个你最信任:一个政党,还是一个由100个政党组成的网络?

公平

在彩票或老虎机等应用程序中,需要许多方面就随机数达成一致,任何人都不应该比其他人更有优势来预测随机数。如果我们在这些应用程序中使用集中式随机数生成器,我们不仅必须信任第三方,而且还可能有人贿赂第三方以获得他可以从中受益的号码。因此,我们非常需要构建一个不需要可信方的随机数生成器。这时就需要多方随机数生成器。多方随机数生成器允许每一方通过提交自己的编号来贡献公共值的生成。而且,在随机数确定之前,网络中的任何一方都无法看到其他人的贡献价值。因此,在生成过程完成之前,没有人能够确定结果。公平是有保证的,因为每个人都有相同的概率根据公共信息猜测正确生成的数字。

可用性

可用性(也称为活性)意味着随机数生成器在恶意节点的情况下成功生成随机数。显然,拥有多台计算机的系统比只有一台计算机的系统意外失败的可能性更小。分布式网络有助于解决单点故障问题(SPOF——网络中用于描述单个节点在自身故障时导致整个网络瘫痪的术语)。由于节点众多,只要将恶意节点的部分(相对于所使用的算法)保持在合理的值,就可以保证网络仍然在运行并产生结果。由于如果一个或多个参与方是恶意的(恶意参与方的数量取决于每个随机数生成器中使用的算法),多方随机数生成器使得可用性成为可能,因此随机数生成器仍然保证未被操纵。

通用可验证性

通用可验证性是指允许任何第三方检查结果正确性的能力。此属性不属于多方随机数生成器的性质。但是,由于一个多方随机数生成器需要许多来源的贡献,因此需要可核查性以确保没有规避产生过程。传统的只能证明他们使用了一种随机方法,但不能提供任何技术来审计产生后的结果——这意味着最终的结果有可能被操纵了。因此,这些随机数生成器可能容易受到内部欺诈的影响。这将极大地信任服务提供者。分布式解决方案通常使用分布式分类器记录生成随机数的每个步骤的所有数据。因此,它们给每个人带来了生产过程的透明度。有了这些信息,每个人都可以轻松地检查在生成过程中是否被人恶意操作了。

操作阻力

有必要确保每个人都信任随机数生成器的结果。显然,由一个节点组成的系统比由一千个节点组成的系统更容易被操纵。分布式网络不太可能意外失败,因为它们依赖于许多组件。如前所述,在多方随机数生成器中生成随机数的过程是透明且可验证的,任何操纵结果的尝试都会被检测到。此外,要进行篡改,还需要特定多数方之间的勾结。因此,几乎所有随机数生成器都实现了防篡改特性。

结论

分布式系统给随机数的生成带来了许多挑战。具有挑战性的任务是找到一种方法,在一组相互不信任的各方之间生成可信的随机值。在本文中,我们简要介绍了所谓的多方随机数生成器。我们还分析了它在公平性、可用性、防篡改性等方面与传统方法的不同之处。由于集中式随机数生成器有许多缺点,多方随机数生成器是一个突出的选择。然而,对这一课题的研究很少。现在已经提出了一些协议,但是它们只实现了前面提到的一些特性。

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。