VRF-可验证随机函数

2018-09-10  本文已影响0人  建怀

VRF-可验证随机函数

  VRF(Verifiable Random Function):可验证随机函数用于区块链中的意义很好理解——用以完成出块节点的随机选择。

  VRF算法作为一种基于密码学的新型共识模型,最大的优势是快速共识、抗攻击能力、极低算力需求,已有的解决方案有Algorand算法和Dfinity中基于BLS的算法等。

  VRF的简单理解是非常容易的,首先讲一个简单的哈希函数,比如结合了secret的哈希函数:

result = SHA256(secret,info)

上面的函数,要想得到结果result,需要secret和info,要验证result,也需要secret和info,也就是说需要知道secret才能验证info和result是否对应匹配。

  有没有可能在不出示secret的情况下,验证result和info是否对应匹配。这就是可验证随机函数VRF可以做到的。

result = VRF_HASH(SK,info)

其中SK表示secret key,是私钥,不对外公开的,自己秘密保存即可。与SK配对的PK表示public key,是公钥,需要公开给验证着的。有了上面这些基本的元素,具体的VRF操作流程就非常简单清晰了:

验证通过,指proof是否是通过info生成的,通过proof是否可以计算出result,从而推导出info和result是对应匹配的。从上面可以看出,验证者并没有获得证明者的私钥SK,验证者同样可以推导出info和result是否对应匹配,这就是VRF的妙用。

对哈希函数的不断演化,可以简单用如下的路径来表示:

原始的哈希函数: info -> result

带秘钥的哈希函数: info,secret -> result

公钥版本的VRF: info,SK -> proof,PK -> result

上一篇下一篇

猜你喜欢

热点阅读