VRF可验证随机函数(1)概念

1. 问题

result = SHA256(secret, data),要验证result,光有data是不够的,必须要有secret才能计算出result。有没有可能在不出示密钥secret的情况下,验证result和data是对应匹配的?

2. 3个特性

  • 可验证性
    提供一个非交互的零知识证明,用来验证该随机数输出的确是某个人生成的。eg. 强盗站在很远的地 方,能看见阿里巴巴把山门打开了,但是不知道阿里巴巴念的是什么咒语

  • 唯一性
    对于相同的 Input,它得到的 Output 一定是相同的。

  • 随机性
    任意的一个输入,获得一个随机数输出,并且均匀分布在值域范围内。

3. 实现方式

Schnorrkle库实现,Ed25519椭圆曲线
基点:G
私钥:k
公钥:K =k *G
随机数r

Alice和Bob都知道G、K、r
Alice计算K’ = k* r’ = k* (G* r)
Bob计算K’ = K* r = (k* G)* r
(阿贝尔群:满足交换律)
VRF可验证随机函数(1)概念

上一篇:PHP中str_replace函数使用数组


下一篇:Promise.all 和 Promise.race