VRF(可验证随机函数)快速理解

2024-02-18 22:18

本文主要是介绍VRF(可验证随机函数)快速理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

理解VRF之前,需要先理解带秘钥的哈希函数,和传统的哈希函数不同,带秘钥的哈希函数在计算HASH数值的时候引入了一个不公开的秘钥,这样为从明文到HASH数值计算之间添加了一定的难度,这个难度就是由秘钥引入的。我们简单的定义一个带秘钥的HASH函数为如下的形式:

hash_value=HASH(pri_key, message)

那么当我们拥有了计算出来的hash_value和数据message,我们需要知道pri_key才可以验证hash_value是否由message通过HASH函数生成。一般我们知道秘钥pri_key对于我们信息安全的重要性。因此现在引出来如下的问题:

  • 对外只暴露pri_key对应的pub_key
  • 在不暴露pri_key的情况下,验证hash_value和message之间是匹配的

为了实现上面的目的,于是就有了可验证随机函数VRF,现在我们一步一步看其实如何工作的:

step 1 : 生成一对公私钥,分别为pri_key和pub_key
step 2 :计算hash_value=VRF_HASH(pri_key, message)
step 3 :计算proof_value=VRF_PROOF(pri_key, message)
step 4 : 现在将hash_value和proof_value提供给验证者
step 5 : 验证者拿到hash_value和proof_value计算hash_value=VRF_P2H(proof_value)
step 6 : 如果step5成功,则验证者计算VRF_VERIFY(pub_key, message, proof)
step 7 : 如果step6返回true则表示验证通过,否则验证失败

梳理一下我们可以这样理解,首先验证proof是否是由message生成的,然后验证proof是否可以就散出hash_value,这样我们就可以推理出hash_value是否由message生成,并且能找到过程中proof是否出现问题。过程中三个关键函数

  • VRF_HASH
  • VRF_PROOF
  • VRF_VERIFY

就会我们事先VRF的关键

这篇关于VRF(可验证随机函数)快速理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/722621

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI