可验证随机函数VRF原理白话解析

作者: 達士通人 | 来源:发表于2019-03-23 16:34 被阅读22次

之前,我们探讨过各类共识算法的特点和问题。

那么,是否存在某种共识算法,即能保证效率与公平,又能实现去中心化的效果呢?

我们可以看到,无论是何种共识算法,他们所要解决的问题都是选出一部分或一个节点来参与共识或者进行记账工作,从上面的三个共识算法中可以看到,这个过程会因设备配置情况、持币情况、信用状况等不同因素所影响。

某些算法耗费的过度的资源,某些算法牺牲了一定的公平,某些算法容易滋生腐败。

经过本人的研究和发现,VRF(可验证随机函数)和区块链共识算法的结合能很好的解决部分问题。

VRF(可验证随机函数)

这里我不用过于专业和严谨的方式来表述,只希望大家能看懂和理解。

简单来说,VRF是一种帮助进行随机选择节点的工具,他是一个黑箱子,当你往黑箱子里仍进去一个东西,黑箱子会随机生成一个结果。

例如你往黑箱子里扔进去一个苹果和一个香蕉,他会生成一杯草莓牛奶。

当你往里扔进去不同的东西,结果一定是不同的。而扔进去相同的东西,结果一定是相同的。

当然,结果会均匀的分布在一定的范围内,也就说,输出的结果在一定的值域范围内。

那么,我们如何将VRF运用到共识验证当中去呢?

VRF的方式是,让各个节点轮流往这个函数(黑箱子)里填入输入值,输入值为自己的私钥和一个全网都知道的随机数。如果输出结果大于某个数(阙值)。那么就由该节点进行记账。

例如,参与竞争记账的节点有100个,并假设本轮为第5轮记账,那么每个节点轮流开始往VRF函数中输入自己的私钥和一个全网都知道的随机数,比如是5。并规定,谁先由VRF产生的随机数大于10,就是本轮的区块打包者。

假如前20个节点的输出值都小于10,而第21个节点的输出值是11,那么21号节点便获取了本轮的区块打包权利。

说到这里,便会出现一个新的问题,只有第21节点知道自己生成的随机数是大与10的,其他节点并不知道。那又该如何验证并让所有节点都认可这个随机结果呢?

这就是VRF区别于一般的随机预言机的地方,它多了一个非交互的零知识证明

当第21节点确认自己是区块打包者时,他除了需要将随机结果进行广播外,还需要广播一个零知识证明,以便表明这个随机数的确是由他生成的。

说到这里,可能大家又有点迷糊了。我们再来理清下思路。

正常情况下,如果我们需要验证结果是否是某个人生成的,是需要将他的私钥和公开的随机数填入VRF中,通过输出结果来判定的。

但是,显而易见,私钥是不可以告诉别人的。那么,我们来看看,零知识证明是如何帮助节点进行验证的?

零知识证明

零知识证明(Zero—Knowledge Proof),是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。

在上面的例子中,第21号节点即是证明者,而其他节点就是验证者,而零知识证明便可以使得第21号节点在不透露自己私钥的情况下,使得其他节点相信他就是指定随机数的生成者。

首先,我们举个简单的例子来说一下什么是零知识证明。

北京市的某区块链小学六年级一班的正在上体育课,可是足球被锁在了教室里,小明在锁教室门后,没有将钥匙带在身上,而是将钥匙放在了一个谁都不知道的地方。

同学们喊着说谁把钥匙拿出来,打开教室的门。

小明如何不拿出钥匙便能证明钥匙在他那呢?(假设钥匙有且只有一把)

很简单,小明只需要去将足球取出来就可以了。

而这个足球便是零知识证明。

由于在VRF(可验证随机函数)中,每个节点起初会根据要求生成一组包含公钥和私钥的密钥对,他们有着一一对应的关系,私钥是VRF输入值的一部分。

公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥能加密可以用相应的私钥解密的数据。

每个人都可以获取你的公钥,并对任何数据进行加密。但是加密后的数据只有私钥可以进行解密。

那么,我们可以试想一种零知识证明的场景,上文中的第21号节点,即区块打包者,将一组数据公布出来,让所有人可见,而自己不看。随后,通过自己的公钥对该数据进行加密,从而得到一个新的数据。

此时,第21号节点只需要用自己的私钥进行解密,并将加密内容再次公布,即可让所有验证者信服了。

当然,真实的场景或许并不是如此,这里只是为了让大家更清楚的理解。

总的来说,VRF(可验证随机函数)一共包含了四个部分:

1、节点首先生成一组包含公钥和私钥的秘钥对。

2、通过私钥生成随机数,并确定区块打包节点。

3、区块打包节点广播随机数和零知识证明。

4、其他节点进行验证。

VRF的目的是要生成一个真正随机而且无法被预测的值,从而尽可能的保证安全性。简单的随机抽取很容易受到女巫攻击,攻击者可以廉价找大量的傀儡机来增加自己抽中的概率。

这么看来,VRF对于共识算法的优化的确有很大的帮助,并在安全性、能耗、效率方面着实取得了一定的突破。

相关文章

网友评论

    本文标题:可验证随机函数VRF原理白话解析

    本文链接:https://www.haomeiwen.com/subject/skqamqtx.html