技术分享 | VRF抽签与投票的思考

2023-10-09 16:50

本文主要是介绍技术分享 | VRF抽签与投票的思考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VRF(可验证随机函数)在Algorand提出后,被越来越多的公链项目应用。VRF的特点在于其能够产生一个能够被验证的随机结果,通过该随机结果,在区块链中可以实现随机“选举”或“抽签”。与POS结合后能够减轻POS的“富者恒富”的现象。

然而我们知道,鱼和熊掌不可兼得,提高公平性(去中心化)的代价是牺牲性能或安全性。Algorand选择了牺牲一定的共识效率来换取公平性(去中心化)。以下是在分析Algorand、Ont等使用VRF的共识算法中,对VRF抽签的一些思考。

 

一. Algorand概括

Algorand作为第一个使用了VRF的共识算法,其共识流程可以大致总结为三个步骤:

1. 随机选举多个提案者,提案新区块。(提案者由VRF抽签)

2. 收集多个提案区块并选出权重最高者。

3. BA* 对多个区块提案中的一个提案达成共识。(每一步的投票者均需要VRF抽签)

二. POS+Random

VRF本质是随机函数,而在区块链系统的共识流程中不能用完全公平的随机,因为出块者需要有激励,同时每个节点的贡献值也并非一致。 所以通常都会在VRF抽签之前加一层POS,将“更优”的一批节点先选出来作为候选人。

对于POS+Random 的共识算法,一般有如下三种情况:

Case 1. 随机抽签出一个提案者,其他节点验证并接受该节点提案。

Case 2. 随机抽签出一个提案者与多个投票者,需要投票者对区块达成共识。(代表:Tendermint)

Case 3. 随机抽签出多个提案者与多个投票者,需要投票者从多个提案区块中选出一个并达成共识。(代表:Algorand)

下面我们来一一解析以上case:

Case 1即为很纯粹的POS,希望通过随机抽签抑制“富者恒富”的现象。但纯粹的POS有Nothing at stake的问题,提案者可以基于多个分叉链提出不同的区块,使得分叉进一步加剧。(以太坊Casper FFG依靠惩罚金来解决,但这无疑也增加了系统的复杂度)

Case 2很类似于自带viewchange的PBFT,一般容错率也为1/3。投票者的目的在于给于deterministic confirmation,且部分解决了Nothing at stake问题。为何说是“部分解决”,因为为了最大化提高区块通过的概率,提案者仍会给多个分叉链投票。但由于有投票者这一角色,可保证在网络不分区的情况下理论上不会产生分叉。同时,由于随机抽签采用公开的信息,提案者也能够被预测。

Case 3其实是Algorand的高度简化版,Case 2也可作为Case 3的一个特例。一方面,多个提案者之间相互竞争,促使提案者本身提出正确的区块;另一方面,对于抽取多个提案者的场景,可采用VRF作为随机函数:节点使用公开的信息和自己的密钥直接在本地运行选举函数判断自己是否被选中,其他节点能够验证但无法预测提案者。

这里值得注意的是,在分布式网络中,VRF无法完成固定数量的抽签任务,原因是VRF的一个Input是节点私钥,这使得每个节点产生的随机值均不相同,全网只能验证结果是否合法,但无法设计统一的标准使得某个随机结果唯一性地符合某个条件。

三. VRF抽签的优势

在VRF出现之前,为了满足选举信息的可验证,通常采用公开的信息作为Input,通过公开的随机函数得出随机结果,以随机结果作为依据进行抽签。 由于所有信息均为公开,故所有节点都可以在本地计算出抽签结果。但上述抽签方案有一个很大的问题:攻击者有一定的时间窗口能够预测出抽签结果,及时对被选举人实施攻击。

VRF很好地解决了这个问题:

1. 由于使用节点私钥作为Input,VRF的结果无法被预测。其他节点只有通过网络接收到随机结果后才能对其合法性进行验证,即攻击者在得知选举结果时,选举人已经做出行动了。

2. VRF的输出值除了随机值外,还包含一个proof,提供了随机值验证的零知识证明,即不必知道某人私钥即可证明该随机值是由某人产生的。

四. VRF抽签的弊端

VRF为随机抽签提供了隐私性和可验证,但也带来了一个很棘手的问题:丢失全局的抽签信息,降低投票共识的成功率

由于VRF需要私钥作为Input,其他节点只能通过网络通信获得相应proof后才能验证随机结果是否合法,所以任何节点都无法得知全网的真实选举情况的。这对投票类共识算法带来了巨大的挑战。投票类共识算法必须设置一个通过阈值(如2/3以上),只有通过该阈值才视为投票通过。而基于VRF的共识算法丢失了全局的选举信息后,只能以期望值的形式设置阈值,使得投票退化为概率型投票。

如何理解概率型投票?首先,我们需要明确确定型投票的定义——投票结果应遵循大部分提案者的意见(通过或不通过)。当投票结果不一定会遵循大部分提案者的意见,那么就属于概率型投票。对于由VRF选出的投票者的投票阶段,由于阈值的设置与实际选举情况是割裂的,则即使大部分投票者同意提案,提案仍有可能达不到阈值,从而显示“不同意”的结果,与大多数投票者的意志相背。我认为,之所以Algorand在BinaryBA*中要设计多轮投票,并且每一步均重新选举投票者,其目的是通过不断重选提高实际投票达到阈值的概率,通过多轮投票提高达成共识的概率。

640?wx_fmt=png


五. 总结

VRF算法最早由Silvio Micali(图灵奖得主,Algorand的创始人)在1999年提出,也是由他首次将其引入到区块链中,为区块链的共识算法提供了崭新的研究思路和解决方案。但我们在分析并使用VRF的时候,不仅需要分析VRF本身,也应该关注先驱者是如何思考和设计基于VRF的共识算法过程。一味地将VRF迁移至其他的共识算法,可能并不能达到预期的效果,甚至反而会有带来其他的不确定性风险。

推荐阅读

640?wx_fmt=png

这篇关于技术分享 | VRF抽签与投票的思考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

分享5款免费录屏的工具,搞定网课不怕错过!

虽然现在学生们不怎么上网课, 但是对于上班族或者是没有办法到学校参加课程的人来说,网课还是很重要的,今天,我就来跟大家分享一下我用过的几款录屏软件=,看看它们在录制网课时的表现如何。 福昕录屏大师 网址:https://www.foxitsoftware.cn/REC/ 这款软件给我的第一印象就是界面简洁,操作起来很直观。它支持全屏录制,也支持区域录制,这对于我这种需要同时录制PPT和老师讲