- 在区块链系统中,共识算法很重要的一个职责,就是确定哪个节点拥有记账权。
- 在基于 POW 共识的区块链系统中,矿工通过不断的尝试来计算得出一个随机数,若能使得这个随机数小于指定的难度值便可获得记账权。
- 有没有可能在没有挖矿的前提下,生成一个全网可验证的随机数呢?VRF 就是干这个事儿的。
- VRF 全称可验证的随机函数,可以说是哈希函数与非对称加密结合的产物。
- 通过哈希函数,我们可以生成一段信息的数字指纹,防止信息被攥改。但如果还要对信息来源进行验证,我们需要信息验证码 MAC。也就是在进行哈希计算时除了本来的信息,在加上一个密码,但要在通信双方共享这个密码,才能对消息进行验证。
- VRF 比 MAC 厉害的地方在于,通过与非对称加密结合,通信双方可以不知道对方私钥的情况下,也可以对消息完整性和消息来源进行验证。
- 具体流程是下面这样的:
1、证明者生成一对密钥,PK、SK;// 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表示验证未通过。
什么是 VRF
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 摘要 前文介绍的PBFT算法,是一种经典的联盟链BFT共识算法,在节点较少的情况下,性能比较高,安全性也比较好,但...
- 感赏自己,早起做早饭,虽然小区里清晨没电没水,但幸好家里有备用水,足够用来做早饭和洗菜用的,看来储蓄1桶备...