美文网首页区块链技术研究
(Karl@嘉楠)对可验证随机函数VRF的简明解释

(Karl@嘉楠)对可验证随机函数VRF的简明解释

作者: 大圣2017 | 来源:发表于2018-08-17 17:06 被阅读19次

    2018-08-16 嘉楠区块链 Karl 对可验证随机函数VRF的简明解释
    作者:Karl 嘉楠区块链研究院高级研究员
    嘉楠区块链:嘉楠耘智(Canaan Inc.)旗下区块链板块。

    因为可验证随机函VRF对设计区块链共识算法有很大帮助,最近就研究了一下VRF,接下来分享我对VRF和共识算法的最新理解。

    要理解VRF的工作原理,首先要理解哈希函数,这是基础知识,比如SHA256,SHA3等等,不必详细讨论。先理解一下这里说的“随机”是什么意思:

    一个理想的哈希函数,其值域应该是离散的、均匀分布的,给定不同的输入值,其输出值应该没有规律,随机的洒落、分布在值域区间内。

    再看一个简单的哈希函数变种,即 结合了密钥secret的哈希函数,比如result = SHA256(secret,info),那么要得到结果result,仅仅拥有info是不够的,必须要知道secret才能计算出来,或者说我们已经拥有了结果result和info,但是必须知道secret才能验证info和result是否是对应匹配的,这就是带密钥的哈希函数。

    然而这里引申出了一个问题:有没有可能在不出示密钥secret的情况下,验证result和info是对应匹配的?于是就有了 可验证随机函数(Verifiable Random Function,VRF)

    简单来说,也就是结合了非对称密钥技术的哈希函数,比如result = VRF_Hash(SK,info),SK是私钥,不公开,秘密保存,和SK配对的PK是公钥,需公开给验证者。

    具体的操作流程如下:

    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,verified by PK)--> result
    

    (END)

    相关文章

      网友评论

        本文标题:(Karl@嘉楠)对可验证随机函数VRF的简明解释

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