巴比特
服务于区块链创新者
本周,Geekhub Global Online第四期“VRF——安全的桥梁”特别邀请了去中心化云计算平台DFINITY创始团队成员兼首席发言人Arthur Falls为你详解《通往随机之路:DFINITY共识机制》。巴比特加速器技术公开课是一款全球化的线上区块链技术栏目(Geekhub Global Online),包含深度对话及课程。我们会定期邀请世界各地的资深技术大咖在线解构区块链技术,旨在为Geekhub技术社区输送前沿高质量的区块链技术内容;同时社区成员也可以参与直播互动,共同探讨区块链的技术发展与未来。
随着越来越多的区块链采用PoS共识机制,作为一种低能耗、高效率的随机数算法,VRF(可验证随机函数)算法近年来得到了越来越多人的关注。可以帮助区块链扩容,还可以提高安全性,很多人认为,基于VRF的共识机制或许可以改善“不可能三角”问题。
本周,Geekhub Global Online第四期“VRF——安全的桥梁”特别邀请了去中心化云计算平台DFINITY创始团队成员兼首席发言人Arthur Falls为你详解《通往随机之路:DFINITY共识机制》。
早在2016年,DFINITY已经意识到区块链网络遭遇的核心性能问题就是随机性生成问题。随后DFINITY使用了其独有的阈值中继可验证随机函数,实现了高效的区块确认,在性能上有很大提升。
本期课程,Arthur将以DFINITY共识机制为切入点,详细介绍可验证随机函数在区块链中的应用及实际应用效果。
DFINITY使用PoS共识机制。参与网络需要一定数量的stake(即DFINITY代币)作为押金(deposit)。所有节点都是平等的,增加回报的唯一方法是向网络添加更多节点。强调一点,所有的DFINITY节点的押金都是一样多的,多付押金不会有任何额外的好处。
PoS的部分优势在于,所有节点对于平台来说都是已知的,因此平台可以调用节点来执行某些功能,也会预期这些节点是在线的。如果被调用的节点是离线状态的,该节点可能会损失部分押金。
正因为我们知道谁参与了网络,并假设几乎所有节点都在线,我们可以随机将任务分配给节点,并比较确信这些任务将会完成。这也是DFINITY的基础。
阈值组是DFINITY整个共识产生过程中非常重要的概念。阈值组让我们避免了只有单一决策者的情况,是DFINITY的核心。在任何时候,网络中都有一个活跃的阈值组池。 每个阈值组从连接到网络的全部节点中随机抽样组成, 一个节点可能被同时包含在多个阈值组中。
阈值组的所有节点一同工作以创建随机性;每一轮都要从阈值组池中选择新的阈值组。
阈值组提前随机选择出来并放入池中的。正如下图所示, 在时间段1期间,时间段2的阈值组被选择出来。 在时间段1结束时,该时间段的阈值组解散,时间段2的阈值组开始运作。同样的过程无限重复。
DFINITY的随机性是由阈值中继可验证随机函数产生的。想象一下你在玩扑克游戏——你需要能够验证发牌人无法预测或操纵从牌组中出来的牌。 这也是你要在公众视野中洗牌的原因。 洗牌就是一种可验证随机函数,适用于不信任的节点网络——扑克玩家。
为了创建阈值中继,我们使用了阈值加密。不过,首先我们先来了解下公钥加密。想象一下,你家的门有两把钥匙,一把锁门的钥匙,一把开门的钥匙。你可以把锁门的钥匙给任何人,谁会在乎别人可以锁上你的门呢?重要的是,只有你才能开门。公钥加密中的数字签名基本就是这样,但更抽象。你有两个密钥,一个可以签署一个数据,另一个可以用来验证签名。如果其他人可以在一个数据上验证你的签名,这是一件好事,前提是你是唯一可以创建这个签名的人。这就是“公钥私钥密码学”的来源。签名密钥必须是私有的。
阈值加密基本是一样的原理,除了一个区别:在阈值加密中,私钥或签名密钥被分成多份(share),每份都可以用于创建签名。一旦聚合了阈值比例的签名份,它们就会创建一个完整的数字签名,可以使用公钥进行验证。如果没有足够比例的share来创建一个完整的数字签名,就无法被验证。在DFINITY的实际实施中,我们只需要让聚合比例达到多数(51%)。这里我们要知道:每个阈值组有一个公钥,每个组成员有一个私钥的share。
下面是阈值签名的流程。阈值签名有一个非常棒的特点,那就是,无论聚合哪些签名份来创建一个完整的签名,最后得到的签名是相同的。
然后我们就会得到一大堆的数字签名,如果没有人事先知道其中的内容,那么这就是一个很好的随机性来源。后面我们会把这个签名作为随机信标(Random Beacon)使用。
那么随机信标是怎么产生的呢?我们从随机源开始,用随机源来选择一个阈值组,阈值组成员签署随机性(用于选择阈值组)。
那个阈值签名(记住我们只需要51%的阈值,并且这里任何阈值组成员都无法对签名产生影响),用于选择下一个阈值组。这个过程无限持续下去。
因为协议有全部连接到网络的节点的列表,所以它可以将这个列表和随机信标作为输入,输出一个随机排序的列表。 而这个随机排序就需要通过概率卡槽共识进行。
顶部的节点被认为有更高的优先级(rank)。优先级会影响一个节点将区块添加到链上的概率,优先级越高,概率越大。
节点可以自己完成此操作并在创建和广播区块之前确定其优先级。 这节省了计算和网络资源,因为在实践中可能只有少数(例如五个)节点必须创建和广播区块。
在DFINITY网络中,创建随机性的阈值组还有签署区块的作用。
每个阈值组成员要遵循相同的规则:他们收到一个区块,如果该区块无效,则将其丢弃。 如果有效,则检查其优先级。
如果优先级低于他们之前收到的一个区块,他们就会丢弃它。 如果优先级更高,他们会使用私钥share对其进行签名,然后广播区块和签名share。
一旦一个区块收集了必要数量的签名share来生成一个完整的、可验证的签名,则将其视为“经过公证的”,然后将这个区块添加到链中。
以下就是整个出块的过程:
基于阈值中继可验证随机函数的使用,DNIFITY网络的区块确认时间仅为两个区块,确认时间可低至2.5秒,每秒的交易处理量约为50笔。总的来说,在区块确认方面速度的确是很快,我们也必须看到VRF在其中发挥的巨大作用。
1. 时间段2的阈值组在时间段1期间选出,这样的话,时间段2的阈值组成员会不会容易遭受DDOS攻击?
Arthur:答案是不会。因为在DFINITY里面,这些成员是隐藏的,平台选择了这些成员,但是没人知道他们是谁。
2.创建BLS密钥时,通信问题是瓶颈。DFINITY一个阈值组里有多少节点?如何改善这个问题?
Arthur:一个阈值组里有400个节点。通信很昂贵,但还不足以成为我们需要解决的问题。
3.一个阈值组成员公开了他的私钥怎么办?
Arthur:因为我们需要一定阈值(51%)的私钥share来达成共识,一个share的泄露是没有关系的。
4.有多少节点被选择用于发起区块?
Arthur:答案是0。每个节点可以可能被选择用于发起区块,具体的概率由前面的随机排序算法决定,优先级高的概率高。发起区块的话,实际实施的大概5个节点。
本周Geekhub Global Online第四期《VRF安全的桥梁》火热进行中。1月17日(周四)14时,DEXON创始人、台湾创业天才陈泰元将为大家带来技术公开课《在现实世界中实现公平:DEXON中的VRF》。欢迎大家扫描海报中的二维码,加入官方直播群,参与学习和讨论。
推荐阅读:
让人兴奋的Grin;主网顺利上线,价格迎来一波虚高?戳进来了解下
马桶、多闪、聊天宝神仙打架,和区块链有神马关系?
比特币巨鲸觉醒:这对于比特币价格来说意味着什么?
美联储报告:比特币不会归零,价格降低是因为竞争币的大量出现
6500多家烟草店将销售比特币!比特币在巴黎开启浪漫之旅
币圈熊市突围之道,华尔街专家解析3大量化策略
视频|《8问》唯链陆扬:寒冬里,行业的标准由最好的公司来定
文章为作者独立观点,不代表巴比特立场。
回复 区块链报告 免费下载 《37份国内证券行业发布的区块链研究报告》
回复 工信部 免费下载 《中国区块链技术和应用发展白皮书》
回复 超级账本 免费下载《超级账本Hyperledger白皮书》
回复 比特币白皮书,免费下载《比特币:一种点对点的电子现金系统》
回复 以太坊,免费下载《以太坊白皮书》
回复 侧链 免费下载《侧链白皮书:用楔入式侧链实现区块链的创新》
回复 欧洲央行 免费下载《欧洲央行分布式账本技术报告》
回复 高盛 免费下载 《高盛区块链报告:区块链 从理论走向实践》
回复 闪电网络 查看《详解最近大热的闪电网络、雷电网络和CORDA到底是什么》
回复 闪电网络白皮书 免费下载《比特币闪电网络白皮书:可扩展的 off-chain 即时支付》
回复 麦肯锡 免费下载《麦肯锡区块链报告:银行业游戏规则的颠覆者》
回复 IBM 免费下载《IBM 区块链热点技术与应用》
回复 毕马威 免费下载《毕马威区块链研究报告:价值互联的不变协议 》
回复 金融科技 免费下载《中国领先金融科技50强》
回复 直播间 查看往期所有大咖视频+文字版集合
回复时戳资本可获得时戳资本所有研报下载链接
回复喵懂可获得从0到1区块链进阶课程视频链接