区块链中产生随机数的性质及特点介绍

区块链

580人已加入

描述

在本文中,我们将重点讨论在不可信环境中使用集体随机数生成方案的解决方案及其实际应用。简而言之,如何以及为什么在区块链中使用随机数,以及如何区分“好的”和“坏的”随机数。长期以来,密码学家一直在研究生成一个真正的随机数,但即使在一台单独的计算机上也很难达实现它。更不用说分散式网络了,其中随机数的生成更加复杂。

在参与者之间互不信任的网络中,产生无可争辩的随机数的可能性允许有效地解决许多重要问题并大大改进现有的方案。此外,游戏、赌博和彩票根本就不是首要目标,对一个没有经验的读者来说,这似乎是最重要的。

随机数生成

计算机本身无法产生随机数,它们需要外部帮助。计算机可以从称为熵源的不同来源接收一些随机值:例如,鼠标移动、内存使用量、处理器插脚上的寄生电流等等。这些值并不完全是随机的,因为它们具有一定的范围或可预测的变化机制。为了将这些数字转换为给定范围内的统计随机数字,需要对它们进行密码转换。因此,我们从熵源的非均匀分布值中得到均匀分布的伪随机值。

得到的值之所以称为伪随机值,是因为它们不是真正的随机值,而是由熵决定的。通过对数据进行加密,任何好的加密算法都会生成统计上与随机序列没有区别的密文。因此,为了生成随机数据,您可以使用熵源来确保即使在很小的范围内,值也具有良好的不可重复性和不可预测性,其余关于结果值中位的混淆和扩散的工作将由加密算法处理。

在这个简短的讲解结束时,我必须指出,即使在单独的设备上生成随机数也是数据安全支柱之一,因为生成的伪随机数用于在各种网络中建立安全连接、生成加密密钥、负载平衡、完整性监视以及许多其他方面。许多协议的安全性依赖于生成可靠的、外部不可预测的随机数的能力,并保存它,直到下一个协议步骤才公开它,否则安全性将受到危害。对伪随机生成数的攻击是极其危险的,并且威胁到大多数现代密码软件。

如果你上过密码学的基础课程,你一定知道这一点,所以让我们继续讨论分散式网络中的随机数。

区块链中的随机性

首先,我将讨论支持智能合约的区块链,因为它们可以充分受益于高质量、无可争议的随机性。这些算法称为“公开可验证的随机信标(Publicly Verifiable Random Beacons)”,为了简单起见,我将进一步将它们称为PVRB。由于区块链是任何参与者都可以检查数据的网络,因此名称的关键部分是“公开可验证的”,即通过计算任何人都可以获得证据,证明区块链中产生的随机数具有以下性质:

· 结果应该从一个可证明的均匀分布值中得出,即基于众所周知的强密码。

· 结果被控制是不可能的。因此,结果不能预测。

· 由于未参与协议或者网络中的攻击消息过多,很难破坏生成协议。

· 所有这些都应该能够抵抗一定数量的不诚实协议参与者的串通,例如1/3的参与者。

任何一群不诚实的参与者合谋提供受控的偶数/奇数随机数的机会都是安全漏洞。这种停止随机数生成的任何可能性都是一个安全缺陷。嗯,在这个领域还需要面对许多重要的问题,到目前为止,这只是一个简单的任务…

PVRB最重要的应用似乎是游戏、彩票和***。的确,这是一个重要的领域,但区块链随机数可以用于其他更重要的领域。我们来看看。

共识算法

PVRB在网络共识组织中起着重要的作用。区块链中的交易受发送方签名的保护,“攻击交易”的唯一方法是在不同时刻将其包含或排除在块(或多个块)之外。因此,共识性算法的主要功能是建立交易的顺序和包含交易的块。此外,区块链在现实中的一个基本特性是终结性。通常,为了确认一个块是有效的,最重要的是,也是最终的是需要收集大多数块生产者(以下简称BPs)的签名,这些签名至少涉及到向所有BPs交付一个区块链,并在所有BPs之间分发签名。随着BPs数量的增加,所需的网络消息量呈指数级增长; 因此, 需要最终结果的协商共识算法 (如超分类帐中使用的算法) 在几十个 BpS 的参与下已经不起作用, 因为需要大量的交互。

如果网络有一个不可否认的公平的PVRB,那么您可以选择一个BPs,并指定他为一个协议轮的“领导者”。如果我们有N个基点,M: M 》 1/2 N是诚实的: 那么使用共识的 PVRB 将允许您选择一个诚实的领导者。如果给每个领导分配一个时间段, 在这个插槽中, 他可以生成一个块并验证一个链, 并且这些插槽是相等的, 那么诚实 Bps的区块链将比恶意 Bps 形成的链长, 而依赖链长度的共识算法将更长。Graphene (EOS的前身)首次采用了为每个Bps分配相同时间间隔的原则,允许用单个签名批准大多数块,这大大降低了网络负载,并确保了高共识速度和稳定性。然而,在EOS中,需要使用特殊的块(最后一个不可逆块),它由BPs签名的2/3 + 1来确定。这些块用于确保最终结果(链叉不可能在最后一个不可逆块之前开始)。

此外,在实际用例中,协议方案更为复杂——对提议的块进行投票涉及多个阶段,以便在丢失块和网络问题时支持网络;但是,即使考虑到这一点,使用PVRB的共识算法需要的BPs消息明显更少,这使得它们比传统的PBFT修改更快。

这类算法中最突出的例子是Cardano团队开发的Ouroboros算法,该算法被宣布在数学上对BPs合谋具有可证明的抵抗能力。

在Ouroboros中,PVRB用于定义所谓的“BPs计划”,根据该计划,每个BPs都被分配了一个用于块发布的时间间隔。PVRB的最大优势是BPs“相等”(根据它们的平衡大小)。PVRB的公平性保证了恶意的BPs无法控制时隙的调度,因此无法操纵链。要选择叉,只需要依靠链长就足够了,而不需要对其块的BPs“效用”或“重量”进行复杂的计算。

一般来说,如果需要在分散式网络中随机选择参与者,PVRB通常比基于块哈希值的确定性变体要好。在没有PVRB的情况下,影响参与者选择的能力会导致攻击,当从几个可用选项中选择下一个腐败参与者时,攻击者会立即选择其中的一些,以确保在决策过程中获得更大的利益。而PVRB不相信这些类型的攻击。

扩展与负载平衡

PVRB可以在减少负载和扩展支付方面提供帮助。首先,我建议阅读Rivest的文章“用电子彩票用作小额支付”。在Emercoin网络中,可以很好地描述基于该方案的协议。

该方案有几个问题(例如,收件人可能在收到中奖彩票后立即停止为买方服务),但在特殊应用中可以忽略这些问题,如每分钟收费或服务的电子订阅。然而,彩票的公平性仍然是主要的要求,而PVRB是实现这一要求的关键。

选择一个随机参与者对于分片协议也非常重要,分片协议的目标是水平扩展区块链,允许不同的BPs只处理它们自己的交易范围。这是一项极其繁琐的任务,尤其是在分片组合安全性方面。这和在共识算法中一样,选择一个随机的BPs来指派他负责一个特定的分片也是PVRB任务。在集中式系统中,分片由平衡器分配:它只计算请求的哈希值并将其发送给必要的执行器。在区块链中,影响这一分配的能力可能导致共识攻击。例如,攻击者可以控制交易的内容,监视哪些交易属于分片。

分片是区块链中最具挑战性和最严肃的任务之一;它的解决方案将允许建立具有出色性能和容量的分散式网络。PVRB只是解决这一问题的重要模块之一。

游戏,经济协议,仲裁

怎样高估随机数在游戏行业中的作用都不为过。它们被显式地用于在线赌场,也被隐式地用于计算玩家行为中。对于分散式网络来说,这些问题非常复杂,因为它们不能依赖于随机数的中心来源。然而,随机选择可以解决许多经济问题,并帮助构建更简单、更有效的协议。假设我们的协议中存在一些关于低成本服务支付的争议,并且这些争议很少发生。在这种情况下,如果存在不可否认的PVRB,客户和销售者可以就随机解决争端达成一致,但具有给定的概率。例如,客户以60%的概率赢,卖家以40%的概率赢。乍一看,这种荒谬的方法允许自动解决争端,并在不需要第三方参与和浪费时间的情况下,以完全可预测的赢/输份额来解决争端。此外,概率比可以是动态的,并依赖于一些全局变量。

大量有趣的分散协议,如代币管理的注册中心、预测市场、键合曲线,以及许多其他协议,都存在经济博弈。它们往往存在安全漏洞,而且防御方法是相互矛盾的。用数十亿代币(“大赌注”)保护自己不受“鲸鱼”攻击的东西,可能很容易受到余额较小的数千个账户的攻击。针对单一攻击所采取的措施,例如为使一块大牛排不盈利而创建的非线性佣金,通常会因另一次攻击而失去信誉。由于这是一个经济博弈,可以事先计算出相应的统计权重,可以简单地用具有适当分布的随机佣金代替常规佣金。这种概率的实现非常简单:区块链有可靠的随机生成源,并且没有复杂的计算即可。

与此同时,请记住,对单个随机位的控制允许降低或增加概率率。因此,公平的PVRB是这些协议中最重要的组成部分。

哪里可以找到公平的随机性?

从理论上讲,分散式网络中的公平随机性允许任何协议都具有可证明的抗碰撞安全性。理由很简单——如果网络同意生成0或1位,并且少于一半的参与者不诚实,那么,如果有足够的迭代次数,网络就可以保证以固定的概率就这个“位”达成一致。这是因为公平随机机制在51%的情况下从100个参与者中选择了51个。但这只是一种理论上的方法,因为在真正的区块链中确保这种级别的安全性需要主机之间的大量消息和具有多种交互的复杂密码术。在实际网络中,任何协议增强都会立即增加潜在的攻击向量,因此,实际的实现需要更多的协议增强来保证真实世界中的安全性。

这就是为什么在区块链中仍然没有足够稳定的PVRB用于实际测试、多次审计、负载测试和真正的攻击,没有这些测试,就很难称一个产品是真正安全的。

尽管如此,一些有希望的方法在许多细节上存在差异,我们相信其中之一将解决实际问题。利用现代计算资源和将理论转化为实际的用例。将来,我们会很高兴地向您介绍PVRB实现:现在有几个实现,每个实现都有自己的一组重要属性、实现特性和一个好主意。由于研究随机数的团队很少,所以每项研究都非常重要。我们希望我们的信息能让其他团队在借鉴前辈经验的基础上更快地行动。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分