可验证的随机函数(VRF)
可验证的随机函数(VRF)
可验证的随机函数,汉语是一个可验证的随机函数。简单地说,VRF可以生成一组可验证的伪随机随机数Y和来自私钥(SK)和信息(X)的证明。任何人都可以使用Verify()函数来检查随机字符串是否实际上是公钥的私钥持有者,并使用Evaluate()函数而不是混乱:
·评估(SK,X)→(Y,⍴)。生成随机数:输入私钥SK,信息X,输出伪随机输出字符串Y和校样。
·验证(VK,X,Y,⍴)→0/1.验证随机数:输入公钥VK,信息X,随机数Y和校样⍴。如果随机数确实是与公钥对应的私钥,则使用Evaluate函数生成密钥,则返回1(true)
为什么我们需要这个VRF?让我们一起看
密码分类
无论BFT共识机制如何,领导和委员会都会完成议案的发布和协商一致的决议。例如,EOS的dPoS BFT是固定的PBFT一致性算法,其中21个BP依次作为领导者和选民,Zilliqa通过PoW加入Commit。这些更直观的拜占庭共识算法的一个共同特点是,每个人都可以看到下一个区块的领导者是谁以及谁负责协议。这可能会使这些区块生产者和委员会成员容易成为攻击者的目标,无论是DDOS还是贿赂,这为攻击者提供了明确的目标。这也使得成为领导者或委员会成员的安全门槛更高。
为了解决这一潜在风险,Algorand使用VRF来掩盖领导者选择的步骤。可以想象,一般的BFT将在每轮开始时公开选择领导者和委员会。 Algorand将在每轮开始时公布获胜号码。每个用户都可以自己购买奖品并赢得奖品。这个人可以成为下一轮领导者(或委员会审核员),但没有人知道谁在获奖者自己之前获奖,也就是说,没有人能够预测下一轮的领导者和委员会。当然,获胜者不是口号。获胜者需要出示获奖证书,并且每个人都可以验证此证明。这正是我们刚刚提到的VRF。
在每轮的每一步之前,每个用户都可以使用Sortition()函数来验证他们是否有资格通过自己的私钥成为领导者或委员会成员(参见VRF)。 evaluate()函数指示输出是否满足某些规则,并且概率与所持货币成比例。如果你发现自己是领导者,那么用户将准备好发布该块,并用Proof进行广播,他真的赢了。同样,在每个需要委员会决议投票的后续步骤中,每个用户首先检查他或她是否成功进入委员会,如果是,则进行自己的投票(或其他价值待定)。证明一起广播。
参与者更换
上述设计对安全性非常有帮助。由于没有人能预测参与下一轮共识的成员,恶意节点无法预先锁定要攻击的对象。当恶意节点知道有人是本轮的领导者时,该信息已经分发到网络。领导者想要广播的块已经被网络上的其他节点所知,因此它被认为是“身体已退休”。现在,攻击它为时已晚。同样,在随后的所有共识过程中,每个成员都广播自己的决议,在投票的同时,他们已经履行了在这一步中成为委员会成员的义务,然后在下一步。将有新的委员会继续完成每一轮共识。
这称为参与者替换。每个共识步骤的解决方案成员是不同的,彼此独立,使恶意用户无法有效地攻击网络。
小心,你可能会注意到这种自我奖励模式让很多人同时成为领导者?答案是肯定的,可能有多个节点有资格成为Leader,但最后您可以指定一个简单的哈希进行排序,确定最高优先级的领导者,并且只帮助广播其块。
总而言之,Algorand并未在每个区块领导者的共识的每个决议步骤中预先选择,而是找到他有权参与的节点,并在参与共识时将证明附加到广播。这与在节点广播块之后等待一些已知用户回复签名的一些BFT模型不同。相反,本地收集网络上的各种签名投票并运行他们自己的一致性算法,同时帮助闲聊。
总结
Algorand算法的出现引起了很多轰动(并且BA *也是焦点),并且通过VRF在分散世界中随机数生成的概念也被应用于区块链。这里只是对VRF的简要介绍以及他可以在共识协议中带来的变化。
可验证的随机函数(VRF)相关推荐
- 对可验证随机函数VRF的简明解释
因为可验证随机函VRF对设计区块链共识算法有很大帮助,最近就研究了一下VRF,本文随时更新,以分享我对VRF和共识算法的最新理解. 要理解VRF的工作原理,首先要理解哈希函数,这是基础知识,比如SHA ...
- 可验证随机函数(VRF)原理和应用浅析
本文首发公众号 VenusBlockChain,关注公众号后可免费阅读!VenusBlockChain 致力于区块链技术研究,传播区块链技术和解决方案.区块链应用落地.区块链行业动态等. 1.VRF是 ...
- 可验证随机函数VRF之Algorand算法
原文链接:https://zhuanlan.zhihu.com/p/29429006 DFINITY的阈值接力结构与可验证随机函数(VRF)密切相关,VRF算法作为一种基于密码学的新型共识模型被提出, ...
- 可验证随机函数 VRF
可验证随机函数 [30](Verifiable Random Functions,VRF) <基于分片技术的区块链可扩展性研究>
- 大盘点 | 十分钟,看尽加密货币十年之现状
2009年,中本聪将比特币带到了世界,十年了,时光来到了2018年的夏天,加密货币如雨后春笋遍地开花.十年后,加密货币的生态现状是怎样的?除比特币.Ethereum和EOS之外,你对加密货币了 ...
- 技术干货 | Libra 技术解读,详解Libra共识协议!
01 Libra 区块链简介 Libra 区块链的目标是成为金融服务的基础,包括打造一种新的全球支付系统,满足数十 十亿人的日常金融需求.通过对现有区块链解决方案的评估, Libra 决定基于下列三 ...
- CoinEx研究院:PoX=PoW+PoS?一文详述Stacks项目
如果你身处加密领域,那么你应该了解工作量证明PoW(Proof of Work)--它是比特币区块链的共识算法:或许你也知道权益证明PoS(Proof of Stake).这二者为当今区块链世界的绝大 ...
- vrf名称_如何使用VRF(可验证随机函数)在以太坊上生成随机数
Chainlink 如何解决以太坊"随机数问题" 随机数和区块链一直很难达到"一致"(译者注:区块链要求确定性,而随机数正相反).到目前为止,区块链上还没有可验 ...
- Algorand 系列一:VRF 密码学抽签原理及其在 Algorand 中的应用
YOUChain Research YOUChain 研究团队,成员毕业于国内外顶级名校,有长期的工业界经验.我们持续跟踪的区块链学界和业界的前沿发展,致力于深入区块链本质,推动学术和技术发展.团队诚 ...
最新文章
- 纯JS导出excel(支持中文)
- C++知识点8——函数的返回值
- Mac下Git安装及配置
- 带有Spring Security的OAuth 2.0快速指南
- (pytorch-深度学习)双向循环神经网络
- 点这里,关注计算机视觉技术最前沿~
- [Axios] axios的请求合并以及参数配置
- (https)nginx - tomcat(http)
- 第12周Python学习周记
- ToString截取字符串的用法
- POJ 1947 Rebuilding Roads
- FaceBook 扎克伯格的创业史
- 金蝶服务器修改ip,金蝶客户端修改服务器ip地址
- 微信读书登陆界面java_(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好...
- 用ping ,mtr ,traceroute 进行网络丢包分析
- Thinkpad E431 蓝牙连接问题
- 解决tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[0,32] = -1 is not in [0, 50)
- 同步四进制可逆加减法计数器分析
- 关闭服务器windows server的IE浏览器的增强安全配置
- Python机器学习1-餐饮企业综合分析