TASchain公开课:VRF是什么?与公链有何关系?

1 年多前 · 原创文章

请输入文章内容....

2019年1月14日,TASchain受巴比特加速器邀请,与Algorand、Dfinity等VRF公链进行了为期4天的技术公开课分享。

随着越来越多的区块链采用PoS共识机制,作为一种低能耗、高效率的随机数算法,VRF(可验证随机函数)算法近年来得到了越来越多人的关注。可以帮助区块链扩容,还可以提高安全性,很多人认为,基于VRF的共识机制或许可以改善“不可能三角”问题。


为了让大家更清晰和深入地了解TASchain的技术内核,本次分享由创始人吴轶群(班德)及共识组负责人吕晟珉共同解析。




本次分享分为三个部分

一、由TASchain创始人兼CEO班德主讲,内容是VRF技术及其与公链可结合的方向 二、由TASchain创始合伙人吕博主讲,内容是VRF技术机理及其优缺点 三、现场问答

 

班德:VRF技术及其与公链可结合的方向

 


大家好,我是TASchain的CEO班德,很高兴与大家对VRF做一些分享。

VRF技术是什么?VRF,全称为可验证随机函数(Verifiable Random Function)。在区块链选出块节点的过程中,为了保证安全,随机是一个基本要求。VRF 的目的就是要生成一个真正随机且无法被预测的值。

这对人来说很简单,例如五个人随机掷骰子,投掷出3、3、4、1、5,这就是一个随机数。但是,让计算机产生随机数至今仍是一个难题




我们来看一下公链。我们知道,最早的公链是比特币,其优点在于安全性高,然而也有两大问题:性能差,能耗大。


后面出现的公链有以太坊和EOS,以太坊虽然比比特币的TPS高,但同样存在性能差、能耗大的问题。2017年出现的EOS,TPS一下子提升了上去,达到1000以上。虽然EOS解决了性能问题,但它有21个超级节点,很难被撼动,把重要的位置霸占了,一般人要加入非常困难。


比较EOS和比特币可见,EOS更像雅典式民主,通过二层的投票机制选出决策层,但决策层一旦作恶 ,底层节点无法改变。21个节点满足了拜占庭,他们就可以制定规则。而比特币则是全网节点计算,全网所有矿工只要有一台电脑都可以参与挖矿。EOS更像分布式协作场景,而比特币则是去中心化的场景。

那么,如何保证比特币去中心、安全的优势,又能解决其性能差的问题呢?我们认为,VRF是一个解决方法。




这个思路非常简单直接。我们先回到比特币来看,比如,比特币是1000个矿工挖矿,但效率低且高能耗。但我们可以将这1000个矿工分成10组,每组100个人。

第一步:1000个矿工计算hash,随机选择选一组矿工。当到达某个高度,比如500后,让一组矿工去做,其他矿工就闲置了; 第二步:闲置矿工协助出块的矿工验证。这样就按照随机选择的方式进行了分布式协作。

但这样做会出现一个问题,即为什么选择这一组,而不是另一组?这个时候VRF就发挥作用了。VRF是可验证随机函数,选择哪一组是通过数学的方式被验证,这就跟比特币验证hash的过程一样,出来后就可以很快的验证。


所以,我们可以看到Algorand和Difinity一样都是通过VRF随机分组的方式解决比特币高能耗、低性能的问题。layer2 的方式也能解决性能低的问题,但很难解决能耗高的问题,难以解决大规模应用的问题。可参见文章《基于VRF的下一代共识机制比较——TASchain、Algorand、Dfinity》。

VRF对矿工进行分组,在比特币中是没有分组的,这个矿被挖出来后就快速在全网,经过全网认证就可以上链,但这需要解决组内的通讯问题,而我们的TASchain在这方面做了很多事情。

 


吕博:VRF技术机理及其优缺点

 

大家好,由我来跟大家讲VRF的机理以及优缺点。VRF算法是在1999年由莫卡利教授提出,近几年因其随机性优点和安全性,被区块链的研究者所重视。




PoS之所以代替PoW,是因为其更好地解决了记账权的公证性问题。而VRF更好地提出了真随机数,从PPT中可以看到VRF的特性以及产生方法。对真随机数算法的比较,从最优解方面来说,是BLS,但狭义VRF是更安全的随机数计算方法。


接着我们来看看VRF的工作流程,它由三个部分组成:

1.证明者先产生随机数Proof,再将随机数发送给验证者;


2.验证者收到Proof,可以将Proof2Hash,把Proof转化成随机数result;

3.result如果满足条件,则通过Verify函数,这个函数要给出证明者的PK、msg、proof,如果为True的话,则通过验证。

然后我们来看VRF的优点

首先,VRF的算力要求低,以基于ed25519椭圆曲线的VRF测试,Prove和Verify的性能均在0.3 ms;


其次,VRF极具POW算法的形,它能产生随机数,并且随机数具有个体属性,且可验证;

然后,VRF适合高度去中心化的场景,节点需要主动竞争胜出,非被动指定;

最后,VRF最大的优点是安全性,具备后验属性。

举个例子说,它更像一个角色扮演类的游戏--狼人杀,每个参与者通过分发的底牌看自己所扮演的角色,执行自己的功能,到游戏结束,翻出自己的底牌让别人知道自己所承担的角色,在这种情况下有很强的安全性。


在出块的过程中,最大的问题是被其他恶节点腐化,而VRF具有后验属性的运算,能抵抗其他节点的腐化。

我们再来看VRF的缺点,从我们对VRF公链的比较来看,后验特性虽然很安全,但也带来了不少麻烦:

首先,全网通讯。比如我是一个提案者,通过抽签知道自己进入提案组,但我不知道这一轮多少人是提案者,我也不知道提案者给谁,我只能把自己的出酷爱对全网广播,所以在VRF上都是全网通讯。


其次,等待消息的时间窗口。像刚才所说的,作为验证节点,我不知道上一轮的提案提案节点是谁,也不知道到底有多少个,在众多提案者中,如何选出满足条件的提案者,在这个中间的解决方法,我们采取的是等待消息的时间窗口,而Algorand算法中就保留了很长的窗口等待期,从数据上来看,就算很小的出块,也会等待十秒钟左右的时间窗口,等待所有提案者的VRFproof时间。

然后,验证步骤轮数较多。因为VRF算法有后验的特性,每一轮选组出来的组员个数是不固定的,是随机的。对于这个问题,Algorand 拜占庭容错机制确实能给每一轮不同的组员工作,但验证步骤数比其他的拜占庭算法多很多,从他们的论文来看,会达到十二轮、十三轮。

最后,签名数据量大。签名数据量大的问题不仅是网络通讯量多,数据存储开销也大,因为签名的结果都需要上链,受其他节点验证。另外,验证的时耗也高,大概每个签名需要0.38毫秒左右,如果有3000个数据需要验签,则整个验证需要花费几秒来操作。还有,随机数分布均匀性还待验证。

VRF的缺点是为追求安全性而带来的麻烦,而现有的公链采用的都是拜占庭算法。TASchain改进了拜占庭算法,其设计的Chiron共识算法融合了VRF和门限签名的方法。


 

三、现场问答

 


Q:数据再精简也不行,会积累的吧?

A:我们曾经做了一个关于比特币的试验,我们知道比特币以6.5出块作为数据的确认,作为控方可以始终从最新的30-50块开始,这不影响矿工作为矿工来挖坑。但对于比特币来说,是没有保证的。这一类矿工一旦碰到稍长的链分叉,它也可以采取同步的方式来继续。


TAS也存在分叉,全网都OK的情况下,会出现3-4个分叉。分叉解决的方式是软分叉的机制。TAS采取的是各类权重最大的链。BLS作为单条链来说,从TAS试验的结果来看,TPS是达到的,当然单链肯定存在天花板。

Q:TASchain的VRF还结合了BLS门限签名和分片技术,这主要是为了解决VRF在公链运用上的哪些不足?

A:现有的VRF的方案,如Algorand和本体,他们后端的验证比较长,步骤的轮数比较长,节点比较多,签名比较多,会验证耗时长,存储通讯量大。这些问题我们通过BLS门限签名的方式就可以解决。我们可以做到最后的验证更简短,性能更可靠。

Q:如果只选一个答案,您认为公链最重要的特性是什么?你们又是怎样打造这个特性的?

A:公链最重要的特性是去中心化,去中心化程度越高,安全性、可信性越大。我们如何打造去中心化呢?我们选择的是VRF+BLS的方式,这样可以保证高度的去中心化。


班德补充:我看到有个同学问Dfinity测试的时间可能有推迟。很难说哪方就跑得更快些,我觉得需要大家一起参与。为了让大家都参与进来,我们用Python作为我们智能合约的语言,因为python是全球排名前五的语言,也是语言中最简单的,很多小学生都在学这门语言。我们希望通过公测让大家帮我们一起推进。


taschain

致力于构建国际领先的区块链公链,成为可编程社会的信任基石。