VRF proof极简理解

VRF proof

术语说明

SK: 私钥

PK: 公钥

M:输入值

R:哈希输出

P:证明

函数

证明人根据输入M和私钥计算出唯一的哈希值R

R = VRF_Hash(SK, M)

证明人根据输入M和私钥计算出唯一的证明P

P = VRF_Proof(SK, M)

验证者将证明转换成哈希值

R = VRF_P2H ( P )

即 VRF_Hash(SK, M) == VRF_P2H(VRF_Proof(SK, M))

验证者校验

True/False = VRF_verify(PK, M, P)

特性

唯一性:对于特定的一对公私钥,任意一个输入都有并且只有一对 R和P

抗碰撞:即使知道私钥也无法构造2个不同输入获得同样的R和P输出

随机性:无私钥者无法通过输入值来判断输出R的值的范围

一种应用

简化的VRF Proof 抽签流程 – 一种POS共识。

权重值w作为节点的抽签次数。

输入值M是给定的,seed+上一轮的抽签信息等。

权重为1的节点,计算一次 VRF_Hash(SK, M) 和VRF_Proof(SK, M),得到R和P。

广播R和P,所有节点的的R值对比,校验各个节点的P R M,R最接近某个固定值的即为出块节点。

节点不能通过随意设定R值企图接近某个固定值,也不能尝试不同的M值去试图接近它。

对于权重节点为w的节点,输入值M’ = Next(M),得到w个M,计算出 w个R 和 P,再参与验证和对比。即权重越大,抽签次数越多,中签概率越大。

先公布R,选出区块,再发布区块的时候公布P,同时完成校验和出块,避免攻击。

小结

VRF证明,本质上是对R的证明。

证明我和R的生成关系,并不能证明我和随机数的生成关系。

参考

VRF 密码学抽签原理及其在 Algorand 中的应用

https://blog.iyouchain.com/2019/06/28/algo-vrf-cryto-sortition-analysis/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值