昨晚8点,大治如期给大家解答了关于联盟链和公链方面的问题,并发布新一期考题。
本期测试有一定难度,社区小伙伴们再次全军覆没......虽然没有小伙伴全部答对,但大治哥还是决定奖励答对题数最多的小伙伴--东堂远!将获得平台积分奖励!
以下为问答整理(后附大神考核,新进的小伙伴们可自测哦~):
1 社区成员:如果基于Raft、Zab算法的区块链,能够确保其中不会有作恶的节点,那为什么还要做共识确认呢?直接同步数据不就可以了吗?确保没有作恶节点这一步骤如果达成,信任问题不就解决了吗?
张治:并不是Raft,Zab能确保共识节点中没有作恶节点,而是这个算法能成立首先要求共识节点中没有作恶节点,换句话说,是用其他手段来保证这一点的。这也是为什么很多人认为Raft,Zab这种算法不能算是真正的区块链上的共识算法的原因。确实从一定意义上说,它们弱化了共识机制本身的意义,弱化了去信任的意义。不过它们也不是直接同步数据就可以了,因为节点虽然不作恶,也就是不传递错误数据,但是它可能会宕机,损坏,也就是通常说的掉线了,这种情况下它并没有传递错误数据,但是仍然会对所有参与共识的节点之间同步数据产生影响,所以它仍然需要有固定的步骤来完成节点间达成共识,这也就是这些算法要先选出一个leader节点的原因,并且在leader节点掉线的时候,有一套机制可以自动的选出新的leader节点,继续做共识。
不过总的来说,Raft,Zab这些基于Paxos算法改进的共识算法都不能算是一种完整的共识算法。但是这种算法在实际的基于分布式账本的应用中还是有意义的。
2 社区成员:DPOS共识机制是不是就有些类似于联盟链和公链结合的共识算法?大神有机会的话深入讲讲EOS啊~
张治:DPOS并不是联盟链和公有链相结合的共识机制,但是EOS使用的BFT-DPoS,是拜占庭容错和DPoS相结合的共识机制,我下次可以把这个机制再讲一下。
3 社区成员:联盟链地域上的限制体现在哪里呢?互联网本身就打通地域限制了吧?
张治:早期到目前为止,多数基于联盟链的项目在搭建的时候,节点都是事先部署在邻近的机房或者相同地域的云服务器上,或者是同一个云服务商提供的在广域网上分布的节点(但是这种我们说还是脱离了真实的广域网环境),只有少数做跨境的金融或者供应链业务的基于联盟链的项目,才真正部署在广域网上。这个限制主要还是从共识机制上来说,比如Zab这种共识协议,对网络分区容忍度是0,也就是说它有个前提就是节点之间的网络必须是稳定的,如果不能稳定,它就不能100%保证数据一直是一致的并且可用的。
另外联盟的的出块速度都比较快,一般都是在几秒左右,这就要求参与共识的节点必须网络延迟很低,否则会有大量轮次的共识因为没有在规定时间内得到足够的确认数而失败,会非常影响效率。广域网上要保证网络延迟非常低是比较困难的,除非在部署节点的时候就考虑这一点,在节点所处的地理位置和机房做出选择,保证网络延迟是比较低的。
4 社区成员:联盟链上的参与节点是不是应该主要为权威机构和公司企业?其他更多的节点应该是不是作为轻节点来使用数据的?
张治:原先联盟链参与节点确实都是大机构和公司,并没有所谓的轻节点参与进来,联盟链可以规定哪些数据和信息是可以公开给外界看的,那么只要外界客户端链接到他们的应用平台和系统就能看到公开数据,所以不需要什么轻节点。
不过最近一段时间,联盟链也在发展,目前是想采用公链技术结合联盟链技术构建更开放的联盟链,也确实有人提出了在联盟链内部的类似轻节点的概念,这些新的应用项目有待于进一步了解。
5 社区成员:能否举两个未来可能落地的例子呢?对我们的生活会有什么影响?
张治:现在业界大力发展的联盟链项目主要是资产上链和供应链的溯源,这两个场景实际上都已经有落地项目了,还有大量的项目在跟进。资产上链主要是扩展了各种有形无形的资产,包括固定资产都可以变成可交易的对象,让更多的价值可以通过以区块链为基础的平台进行传,另外也节省了原先一些资产进行权益转移时的高成本的问题。
供应链的溯源则是为了满足公众对信息公开以及监管部门的要求,对一些特殊商品,比如食品,药品,从生产到中间贸易到最后卖出给消费者这一系列过程中的关键信息进行掌控和监督,借助区块链记录数据的不可篡改性,降低原来监管所需要的信任成本。
当然这两种类型的项目用公链也可以做,也有项目是用公链做的,这要看项目的具体需求了。
附:
大治考题
1. 拜占庭容错算法PBFT和Raft,Zab这两种共识算法的主要区别有哪些?
a. PBFT比Raft,Zab的性能高
b. PBFT是假设网络中的节点有可能失效或者是作恶节点的情况下,保证全网数据保持一致的共识算法。而Raft和Zab都是假定网络节点有可能失效,但是不会作恶。
c. PBFT要求参与共识的节点中,恶意节点数要小于总节点数的1/3,而Raft和Zab只要求故障节点数小于节点总数的50%即可。
d. PBFT可以支持的参与共识的节点数要比Raft和Zab少。
e. PBFT采用的算法对提案(也就是要打包产生区块的数据)的确认要经过3个阶段提交步骤才最终确认并产生区块,Raft和Zab都是2个阶段提交步骤确认提案数据。
(答案:b,c,e)
2. 公链采用的PoW,PoS等共识算法和拜占庭容错算法(BFT)的主要区别是?
a. BFT产出的区块,在生成那一刻就确定加入到链上,以后不会再更改,这称之为终局性。而PoW等共识机制不能做到这一点,每次新产生的区块要经过一段时间(几个后续区块产生的时间)后才能确定包含在最终的链上。
b. BFT算法的出块速度要比PoW,PoS(包括DPoS等)算法快很多。
c. PoW,PoS算法可以允许大量的节点参与共识,而不会损失多少性能。而BFT共识算法在共识节点数大量增加以后,性能会下降,因此一般不会有很多节点参与共识。
d. BFT算法比PoW,PoS这些算法更安全可靠。
(答案:a,c)
3. 联盟链和公有链的主要差别在什么地方?
a. 联盟链是许可制的,加入的节点需要认证,联盟内部节点之间的信息都是公开透明的,但是对外是可以不公开的。而公链的节点加入是不受任何限制的,节点的信息是互相不清楚的。
b. 联盟链多数采用拜占庭容错算法,或者Raft,Zab等基于Paxos算法改进的共识算法,而公有链既有采用PoW,PoS等共识算法的,也有采用拜占庭容错算法的。
c. 联盟链性能要比公有链高。
d. 联盟链不能在大范围的广域网内部署,而公有链则一开始就是面向广域网中的节点部署的。
(答案:a,b)
更多区块链知识,请关注下期DRC学院【张治谈“区块链的诞生及运转”】系列课程,同时也非常欢迎社区的小伙伴们留言提问~DRC社区,一个精英互动学习的高端社区。
本期彩蛋
评论区说说你在听课之后对联盟链与公有链发展前景的看法。
点赞超50个的小伙伴奖励500DRCT,分享到朋友圈也有50DRCT哦~
(分享截图加入DRC社群后发送群秘)
活动截止时间本周五晚20:00
点击“阅读原文”回顾第十七讲~
网友评论