美文网首页
VRF-可验证随机函数

VRF-可验证随机函数

作者: 建怀 | 来源:发表于2018-09-10 12: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操作流程就非常简单清晰了:

    • 1.证明者生成一对秘钥,PK和SK;
    • 2.证明者计算result = VRF_HASH(SK,info);
    • 3.证明者计算proof = VRF_Proof(SK,info);
    • 4.证明者把result和proof递交给验证者;
    • 5.验证者计算result = VRF_P2H(proof)是否成立,若成立,继续,否则中止;
    • 6.证明者把PK,info递交给验证者;
    • 7.验证者计算True/False = VRF_Verify(PK,info,proof),True表示验证通过,False表示验证未通过。

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

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

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

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

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

    相关文章

      网友评论

          本文标题:VRF-可验证随机函数

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