作者:上手区块链 区块佣兵
首先欢迎曌链官方(点击可以跳转)入驻币乎!
在曌链的官方介绍中,竟然称呼曌链MIT是未来第四代公链技术,一看如此自信的宣传,不禁引起了佣兵的注意,因此开始研究了曌链MIT的官方白皮书。研究完,发现原来这个官方宣传确实是有底气的。佣兵不敢说这确实就能代表第四代公链技术,毕竟目前公链技术的竞争确实非常大,不乏有实力雄厚的技术团队在不断改进底层技术。但是曌链MIT确实有亮点,尤其是在共识算法的改进上,能为许多区块链行业者带来新的启发,因此今天向读者进行介绍。
共识算法的历史
在以往的文章中,佣兵曾经介绍过目前的区块链技术的发展历史,撰写过一文:
大家都在谈论区块链3.0,这是什么东西?(欢迎点击查阅)
区块链的历史发展,主要根据这些标志产品对社会经济影响程度来划分的。其中第一代产品是以比特币为主要核心的,目的是建立起一个公共记账的金融系统。而第二代产品则是以太坊和超级记账本等技术,引入了智能合约概念,演化成为了一种基于分布式数据库的智能分发价值的系统。但这个阶段受制于性能,导致了许多应用场景无法大规模引用。因此在第三代区块链产品中,是落地大规模的底层公链系统+完备的DAPP生态系统,希望的是在区块链3.0中能大规模实践区块链技术,为社会带来更大的经济变革。
因此,大规模落地是这个阶段的需求。
而从支撑需求的底层公链技术来看,第一代的比特币公链,利用的是POW共识机制,为社会带来了一个全新的社会思维影响,让人类可以在POW共识机制下相信机器能为我们解决许多价值转移和分配的事情。而第二代ETH公链系统,依然是POW共识(目前ETH2.0即将利用分片等新共识算法),因此性能上相对比特币而言并没有很大的提升。但是它独创性地改变原本比特币只能存储交易数据的形式,将交易过程中存储的数据改变为一种可以开发定制的数据样式。这个定制数据的形式就是智能合约。简单来说,通过智能合约,我们就能完成许多自定义的事。比如代币定时、定量、根据某一规则触发后进行分发,也能将加密数据的范畴增加了许多场景。
2018年以后,许多改进性能公链也逐一上线,希望的是改进ETH的性能问题。这里又以广为人关注的EOS作为第三代公链代表。EOS为了使每次交易数据提高速度,将共识算法从POW改进为DPOS。在EOS上,所有EOS用户能在21个区块周期前,通过投票的方式来决定未来21个周期的出块超级节点是谁。而选举出来的21个超级节点,将能逐一成为区块链生产商(BP),为区块的数据做验证后直接上链。因为验证过程缩减为单个超级节点完成,因此出块速度可达三秒,理论的TPS可达百万级别,能够达到商业落地级别。
但是由于出块验证从全网多节点缩减为单点验证,往往被诟病去中心化不足,可能会导致作恶情况出现。基于这样的历史状况,公链项目方仍在寻在一种能兼顾性能又能保证安全的方案。这时,曌链MIT项目应运而生,为我们带来一种全新的思路。
富有创新意识的曌链MIT共识算法
长时间而言,在公链发展历史上,总是存在一个“不可能三角”理论,即一个公链的共识算法往往至多只能满足高度安全、完全去中心化、高处理速度中的两点,不能同时解决三点。
而曌链独创性地提出分片动态权重共识机制(Sharding Dynamic Weight Consensus,SDWC),很好兼顾了这三点。在SDWC共识算法中,主要考虑了三个指标:
从这个共识中可以看到,影响节点成为出块节点(BP)的因素是节点信用。这个为节点设置信用值是个非常好的做法,因为一个出块节点(BP)是否会作恶,其实就是跟他的信用有关。只有高信用的节点来负责验证我们的交易数据,我们才能更有理由相信我们的数据不会因为作恶而篡改。这个与社会治理问题非常相似,在金融问题中,往往信任就是基于组织或个人的信用背书来做担保的。银行之所以能成为货币的发行和流通机构,正是因为国家做了背书。而借贷中心为个人提供借款,也往往来自于个人的信用分数(央行的征信、蚂蚁金服的芝麻信用分数等。)而随着公链系统的运转,节点需要从各种各样的行为中累积节点的信用,从而才能获得足够的节点信用分数去争夺成为BP的机会。而一旦累积足够高的信用后,节点也不会轻易因为作恶而将自己的信用分数损失,因为在信用积分原则写明:节点作恶将清零。
这就好比你的芝麻信用分已经累积成为800分后,你还愿意拖欠一次信用住酒店的款项而影响未来的信誉么?
而为了提升整个系统中所有节点努力争夺成为BP的机会,SDWC共识算法增加了随机选取节点的可能性。在SDWC共识算法描述中,其中80%的节点将会从权重分值最高的节点中选择,剩余20%的节点是随机从低权重的节点中选择,而且百分比动态可以调节,这也就以为着新进来系统的节点提供成为BP的机会。而且为了提高新节点的积极性,为一些已经比较牢固的节点提供足够大的竞争压力,因此能有20%的机会从能被系统选上当一回BP,并且只要好好把握这些机会,累积足够的信用,你就也有长期成为BP。这种随机的机制,其实就是告诉一些信用权重较高的节点:你要继续保持动力好好干,不然系统也有可能会让新人出头来取代你,从而保持系统的健康。当然考虑到系统的安全,这个随机系数不能太高,20%应该还是一个比较优良的设置。
而剩余的20%主要从网络质量和节点负载考虑,意思是为了平衡全网算力,是得减少部分过于忙碌的节点、或者网络受损的节点,以免这些节点的自身性能导致全网的性能下降。尽量避开高负载节点,优先让负载低的节点来验证和出块,从而保证网络整体的健康运营。
创新与亮点,为公链繁荣增添强力
整体研究,对曌链MIT的公链共识算法比较认同,觉得其考虑的维度是对公链的共识算法必备的元素。利用信用累积,能保持网络往健康的方向发展;小概率随机选取新节点,既保持了活跃度,又保证了安全性;而对节点的负载、网络等性能考量,看得出是在全网和节点中做到比较好的兼顾,因此可以看出是一个对行业有深刻理解的项目。
当然,既然在同时代发展,以EOS为代表的DPOS共识算法即使被诟病为弱中心化后换取的性能,但在我看来仍然是足够安全的方案。因为设置的全网投票,能一定限制了节点作恶的可能性。而且,这种作恶带来的成本也十分高昂,所以应该还是一个能尝试的方向。
2018年被誉为公链之年,确实是有道理的。有曌链MIT这种富有亮点的项目参与建设,更是推动行业进一步发展。这项努力实干的项目方,相信将为社会变革提供强大的力量。