VRF的应用加密抽取

简单来说,加密抽签用密码学的方法来产生一个随机数生成器,用来决定下一个区块的提议者或验证委员会成员,这一随机数生成的概念是Algorand的核心技术亮点之一。这其中将使用可验证随机函数(Verifiable Random Function,简称VRF)来实现随机数的产生,而这个随机函数正是由Algorand创始人Micali于1999年的一篇论文中提出。值得一提的是,Dfinity项目中随机数的生成也采用了VRF。VRF作为一种基于密码学的函数,在区块链领域内能带来快速共识、抗攻击性、极低算力需求这几点优势。

VRF的主要运行机制如下:

每一轮的选举都将会将一个种子(seed)作为VRF的输入,随后VRF将输出一段随机哈希值(作为下一轮的种子输入)以及π(π是此轮次内被抽签选中的用户证明)。这里的种子也就是哈希输入值,创世区块的种子将使用分布式随机数生成器(Distributed Random Number Generation)来产生。VRF里的随机在这里定义为:一个理想的哈希函数,其值域应该是离散的、均匀分布的,给定不同的输入值,其输出应该没有规律,随机的洒落、分布在值域区间内。因此,可以达到完全的随机性。

当然,在进行加密抽签前,Algorand将预先决定需要抽取的人数τ。

第r轮的种子将会被r-1轮的VRF所决定,并且每一轮的种子以及π都会被记录到此轮次内的区块中。这里每一个轮次的种子都与上一轮的种子信息一一相关并且绑定,VRF的存在也使得恶意者对于VRF的输出无法进行预测,使他们无法预知谁将成为下一个轮次的中奖者,很大程度提高了Algorand的安全性。

同时,一旦Algorand在第r-1轮的区块达成一致后,全网都将知道第r轮开始时的种子。如果第r轮的区块提议过程中有恶意者的参与并且打包了一些无效交易信息,那么大部分诚实用户都会将此区块认定为空(无效)区块,在第r轮的种子(seedr = H(seedr−1 ||r ))将重新通过加密哈希函数H(可假定为随机预言机)来决定。

Algorand的加密抽签机制使得每一个轮次的中奖者都具备不可预测的随机性,并且拥有加密哈希函数H作为备选的随机函数方案来保障Algorand系统内的安全性以及公平性。因为在每一个轮次内仅有一个区块将会被大家所公证并且达到最终性,如在第一时间内发现此区块存在被攻击的可能性或有恶意者进行了区块提议,则此区块还未进入到验证阶段即被否定,并且重新进行区块的提议过程。这也将Algorand主链分叉的可能性大大降低,同时缩短了区块确认的时间,使得类似小额支付等应用场景在区块链上变得不再遥不可及。

猜你喜欢

转载自blog.csdn.net/liudashuang2017/article/details/90268739
vrf