巴比特加速器技术公开课是一款全球化的线上区块链技术栏目(Geekhub Global Online),我们会定期邀请行业大咖在线解构区块链技术,社区成员也可以参与直播互动,共同探讨区块链的技术发展与未来。随着越来越多的区块链采用PoS共识机制,作为一种低能耗、高效率的随机数算法,VRF(可验证随机函数)算法近年来得到了越来越多人的关注。可以帮助区块链扩容,还可以提高安全性,很多人认为,基于VRF的共识机制或许可以改善“不可能三角”问题。
本周,Geekhub Global Online第四期“VRF——安全的桥梁”特别邀请了DEXON创始人陈泰元在线上为大家分享VRF在DEXON链上的应用。
本次课程分为三个部分:
第一部分:DEXON链的简要介绍 第二部分:VRF在DEXON链上的应用 第三部分:问答环节
DEXON链的简要介绍
今天介绍VRF如何使DEXON链更加公平、安全、高效。
DEXON是一个偏向商业应用化的公链系统,设计是有一个单链,每一个单链上有blockchain的拜占庭算法。
扩容方面:
使用的是平行链架构,在blocklattice(区块网)里有四条平行链。平行链之间是等宽的,在每一个时间点是确定的,不会分叉。这四个链的交易被分散,这个交易的hash被平均打散在四条链上。另外,total-ordered chain保证了blocklattice的结构,最终可以把所有平行链上的区块决定出最终的顺序。安全方面:
使用的是拜占庭容错的保障。必须保障区块链系统在数学证明上是安全的,即使有三分之一的节点是坏的节点,也能保证安全运行。去中心化方面:
DEXON PoP的设计,是特殊的权益证明设计,每一个节点和出块大小的速度都是对称性网络。因为在非对称性网络里,会成为被攻击的目标,就会作恶。DEXON的节点量是有限的。挖矿模型是,越多人参与进来,挖矿第一个月去中心化挖到的币是一样的。但总节点的上限会控制在几千个。越多节点参与挖矿,挖出越多币,新的币会变成新的节点。我们是一个多链的结构,在越多节点上,太多的节点参与是线性增加。
VRF在DEXON链上的应用
这个时候就会涉及VRF,其用处是产生不可伪造的随机数,且可被验证。系统中的出块都需要抽签的动作,如果VRF产生一个随机数,每个节点是相同的,则是公平的。
VRF在这个系统中有两个作用:
1.VRF用在每一个单链的出块的选择,每一个节点产生新的随机数,来做新的随机数的总参数。
把epoch叫做第I个随机数,我们叫做Si,iA会减掉每个节点,每个节点会牵在每个讯息上面。这个“i”在每个区块里面被叫做链的IBV,把这些资讯加在一起,再签名。只有自己知道,而且我签名的东西,大家都可以去验证。
如果某人的public key结果知道,那其他人都可以来验证。把这个hash扣掉,算出绝对值的差。出块的优先级就越高,在一万个节点里,每一个都签出这个证明,就可以出块,这就解决了谁可以出块的问题,并且是随机的。
2.VRF是epoch(轮次)的转移,每一个epoch都必须重新产生Ri。
为什么每个小时要产生一个Ri,因为每个小时的节点是会进进出出,比如我在这个小时我有100个节点,到下一个小时,我有200个节点,再下一个小时我有300个节点。先加入的节点,如果新加入Ri,我就可以调整刚刚在函数里的私钥,因为我可以知道哪个私钥对我更有利。所以我们必须防止这件事情发生,所以每一个周期我们会充置这个Ri的CRS。
怎么做呢?在我们系统里,我们会跑DCG,这个DCG与DFINITY的DCG是一样的。简单来说,比如有一百个节点,把security分享给其他人,但分享后,除非有100以上的人可以一起合作。我们可以得到新的私钥,以验证它是一开始被分享给大家的。
一旦跑完DAG后,我就可以阈值签名。签在epoch就可以产生新的随机数,这个随机数就可以出现在下一个,我可以保证这个随机数是无法篡改的。这个I+1就可以保证是随机的。这个新加入的节点就没办法确定是什么,就很难攻击这是什么。这两个VRF都是在不同的情况下保证去中心的随机数。 总结来说,这两个VRF都是在保证去中心的随机数。
还是讲VRF的作用,刚才说每一个epoch会产生一个随机数,这个随机数会出现两个群,一个群是先选出下一个epoch的CRS的群主,比如有一万个人会去跑DCG,它的复杂度会是一万的三次方,这不可能实现。所以,必须从一万个节点里选出一个比较小的节点的集。从一万个集合里中选出一万个CRS群主,这个群主在集合里只有四百个人,这个DCG的复杂度是400的三次方,在实物上,400的三次方是可以跑。在我们实验里,大概1秒钟可以结束,就是非常快。
这样跑出来之后,还需要节点(note set),CRS是为了跑出下一个下一次epoch“i+1”的DCG,而且产生新的随机数。而note set是在跑每一个链的单链,它上面的拜占庭容错的出块群都可以出块。假设100条区块链,抽出第一条链出块,只有400个,400个人里共识的效果必须很高,400个节点成本很低,才可以做到每个节点出块。我们能做出网络有多快,系统就有多快。
问答环节
Q:如果只能选一个答案,你认为公链最重要的特性是什么?你们又是怎样打造这个特性的?
A:以公链的性质来说,去中心化、安全性、扩容性都很重要。我会选择去中心化和安全性,只有真去中心化系统才可以用,否则我就用阿里云就好了。VRF在去中心化方面扮演很重要的角色。如果没有随机数,就很难增加节点的增量,如果有随机数,节点量变多,就能随机出一个比较小的委员会做共识,这样成本就会很低。如果很多节点就变得很低,其他节点就变得很高,这是不可行的。安全性我们用的是拜占庭算法。
——————End——————
以上为本次课程的主要内容,若想了解更多:1.请添加小助手微信:btm_11,回复“公开课”,即可入群回看本次课程;
2.点击巴比特加速器千聊直播间主页,观看往期课程。