随着区块链技术的价值凸显,其已受到越来越多国家和地区的积极拥抱和支持,众多知名企业也纷纷开始布局区块链。相比传统的软件开发,区块链技术难度大,企业造链成本高。并且目前的区块链,例如比特币和以太坊,都是数据和价值的孤岛,无法实现链间通信,长远来看,这是一个必须得到解决的问题。
那么如何降低区块链开发难度,帮助企业实现轻松造链呢?区块链间又该如何实现跨链呢?近期获得BlockGroup 2亿美元并购基金战略投资的NULS,和主网刚完成上线的Cosmos,正是造链和跨链领域中的突出代表。
本文将从不同的角度,对NULS和Cosmos两个明星项目,进行分析和比较,帮助你理解他们在造链和跨链中的技术实现,以及他们具有怎样的价值。
1.分层设计
从整体架构上来看,NULS和Cosmos都采用了分层设计,将业务层和底层进行了分离。
Cosmos整体分为两层,底层叫Tendermint Core,包含了共识层和网络层,业务层叫Cosmos SDK,封装了通用的业务功能。Cosmos业务层通过调用Tendermint Core的接口ABCI(Application Blockchain Interface),完成与底层的交互。
NULS整体分为三层,底层叫NULSTAR,是一个区块链微服务底层框架,业务层又分为两层,分别是区块链基础服务层NULS模块仓库和DAPP应用层。
NULS模块仓库与Cosmos SDK类似,内置了通用的功能模块。 NULS根据区块链的业务,将所有区块链都需要用到的功能,拆分成了通用模块。
使用NULS和Cosmos造链的企业,都只需要关注特定的业务功能,然后使用NULS和Cosmos提供的通用功能,就可以创造一条符合自己需求的区块链。
分层设计的好处在于,底层代码得到了封装,业务层提供了通用业务功能。通过这样的方式,NULS和Cosmos将造链简化为针对特定业务的开发,极大地降低了开发难度,可以有效地节省开发时间和开发成本。
与Cosmos不同的是, NULS专门设计了DAPP应用层,添加了对智能合约的支持。
这可以帮助使用NULS搭建的区块链更好的拓展生态。在NULS的DAPP应用层,也可以看到添加了应用程序基础库,这可以帮助DAPP开发者处理网络消息等基础工作,从而降低工作量。DAPP与NULS平台的交互,是通过NULSTAR中的连接器(Connector)提供的接口完成的,可以有效地降低消息通信的复杂度。
2.模块化
在分层设计的基础上,NULS和Cosmos都采用了模块化的方式进行开发。
在业务层,NULS和Cosmos都把通用的业务功能拆分成不同的模块,然后每个模块分别实现对应的功能。这样,当开发者进行应用开发时,就只需要进行特殊业务功能的开发,通用功能就可以直接使用NULS或者Cosmos提供的功能。
Cosmos SDK的模块化
NULS的微服务模块化
结合分层设计和模块化,NULS和Cosmos都做到了,开发区块链只需要完成特定功能的业务开发,不需要关心区块链的底层,大幅度降低了造链的难度和成本。
但是NULS和Cosmos在整体架构上有很大的不同。Cosmos采用的是单体架构,当开发者进行开发和测试时,需要下载所有代码,开发测试相对复杂。针对功能扩展,Cosmos用插件进行实现,这会受到开发语言的限制。
NULS采用的是微服务架构,模块间没有代码上的依赖,每个模块可以独立开发和部署,对开发者相对更友好。进行功能扩展时,是对单一模块的开发或升级,也不会受到开发语言的限制。
由于整体架构的不同,也导致使用NULS和Cosmos进行造链会有许多差别。例如在进行模块化拆分时,Cosmos将共识机制放到了底层Tendermint Core中,而NULS则将共识机制放到了区块链基础服务层,独立开发成共识模块。这意味着使用Cosmos开发的区块链,共识机制只能是Tendermint,使用NULS开发的区块链,可以采用不同的共识机制。NULS独立的共识模块,可以满足更多场景的业务需求,让企业根据业务进行灵活地调整。
NULS采用的微服务架构,相比Cosmos的单体架构而言,模块化程度更高,有利于系统的功能扩展,可以更灵活地应对不同的业务场景,当需要对某个模块进行升级或者替换时,不会对其他模块产生影响,能够保证整个系统的稳定性。对于业务复杂的区块链来说,微服务可以更好的将业务进行拆分,保证业务数据的清晰,降低企业运营系统的难度,节省成本。
3.共识机制
Cosmos的共识机制叫Tendermint,是由Cosmos的核心开发团队Tendermint研发的。NULS的共识机制叫POC(Proof of Credit),是由NULS核心团队研发的。POC和Tendermint都是POS类型的共识算法,并且都结合了拜占庭容错。
在POC和Tendermint中,都分为验证人和委托人两种角色。验证人通过质押Token的方式建立节点,参与共识,获得奖励,委托人把Token委托给节点,同样可以获得奖励。参与共识的Token,会暂时限制流通,想要流通Token时,也可以很快退出。
目前Cosmos Hub的主网刚完成上线,还不能进行Token流通,第一阶段,Cosmos可以支持100个验证人节点。NULS的主网已于2018年7月完成了上线,目前主网运行稳定,节点数目并没有特定的数量限制。
Cosmos主网数据
NULS主网数据
在DPOS中,出块节点只有超级节点,委托人不会得到共识奖励,参与共识的Token并不会限制流通。与DPOS相比,POC和Tendermint可以让更多节点参与出块,鼓励更多人参与网络的维护,保证系统的去中心化。并且共识Token不能流通,可以提高网络的安全性。与比特币的POW相比,POC和Tendermint参与挖矿的门槛足够低,还可以节省大量能源。
对于区块链来说,分区容错是必须要考虑的,POC和Tendermint在应对分区时,两者有所不同。当网络出现分区时,Tendermint网络更侧重一致性,如果分区导致参与投票的节点不足2/3,Tendermint网络是无限等待的,这意味着Tendermint的网络可能会卡住。而POC网络在出现分区时,不同的分区都可以正常出块,当网络恢复时,会进行合并,遵循最终一致性。
尤其对于公链来说,保证可用性非常重要。当网络出现分区时,如果网络不能使用,会导致大量应用和交易不能使用,这会影响企业的正常业务运转,对于拥有众多用户的公链来说,这会导致交易和大量DAPP不能使用,这会带来不可预估的影响。
4.造链
1.在链工厂的模块仓库中,选择需要的模块;
2.进行系统参数配置,填写创世块中的内容;
3.填写链介绍和发链方式;
4.交纳保证金,广播造链交易。
链工厂本身也是一条区块链,链工厂的节点可以同时运行多条链,这样使用链工厂搭建的区块链,就可以直接选择链工厂的节点,运行自己的区块链,省去了搭建区块链节点运行环境的麻烦,同时成本大幅降低。当然,企业也可以选择,自己创建节点,然后运行区块链。
Cosmos整体更侧重跨链领域的发展,在造链领域,Cosmos通过Cosmos SDK实现了插件式造链。NULS将发展阶段分为造链和跨链两个阶段,在造链阶段,NULS实现了模块化造链,未来计划通过核心产品链工厂,实现”一键造链”。
5.跨链
NULS和Cosmos的跨链解决方案,整体思路大同小异。为了实现链与链之间的价值互通,NULS和Cosmos都采用了中继的方式。
在实现上,Cosmos通过Cosmos Hub作为桥梁,让其他平行链实现互通,NULS通过NULS主网作为桥梁,让其他平行链实现互通,并且NULS会对跨链交易进行拜占庭,80%节点确认后交易才会打包,并且跨链交易不会丢失,合并分区网络后,依然会恢复对交易的确认。对于数据和其他业务场景的互通需求,NULS和Cosmos都可以通过增加其他中继链的方式来实现。
Cosmos跨链解决方案
NULS的跨链解决方案
对于通过NULS模块仓库和Cosmos SDK直接搭建的区块链,NULS和Cosmos都自己的跨链协议,可以直接实现跨链功能。对于生态外的区块链(简称外链),例如比特币和以太坊,NULS和Cosmos都采用了间接互通的方式。NULS提供了协议转换层,外链可以通过与协议转换层对接,协议转换层可以与主网对接,从而间接的实现链与链之间的互通。Cosmos需要使用Cosmos SDK开发一条代理链,由代理链实现与外链和Cosmos Hub的互通,从而间接实现与其他平行链的互通。
6.总结
1、NULS和Cosmos都采用了分层设计,通过模块化的开发方式,降低企业的造链难度。不同的是两者在技术选型上有着很大差别,Cosmos采用的是单体架构,NULS采用的是微服务架构;
2、单体架构和微服务架构,有着不同的适用场景。对于小型的区块链系统来说,Cosmos的单体架构可能更适合,但对于大型的区块链系统来说,NULS的微服务架构能够更好的进行业务拆分,提升系统的可扩展性,降低企业的运行成本;
3、NULS和Cosmos的对造链的支持程度有所不同,Cosmos实现的是基于Cosmos SDK的插件式造链,NULS希望通过核心产品链工厂实现”一键造链”;
4、NULS和Cosmos都采用的是POS类型的共识机制,对每个参与共识的持币者,都有共识奖励,能够激励更多的人参与网络的维护,提高了系统的安全性,同时参与挖矿的门槛很低,能够有效的保证区块链的去中心化;
5、NULS和Cosmos都布局了造链和跨链,两者的整体思路有许多相似之处,未来NULS和Cosmos的成功,会对整个区块链行业的发展产生重要的影响。
作者简介:
黄连金
著名区块链专家,核聚链首席科学家、美国 DistributedApps CEO、中国电子学会区块链分会专家委员、NULS顾问。
向文波
Java软件工程师,Cryptotech-Writer,NULS Core Team成员。专注于区块链技术研究和区块链解决方案。
冉小波
NULS联合发起人&社区负责人 长期从事区块链技术和项目前景研究;区块链早期的参与和布道者,拥有丰富的社区建设运营经验,负责NULS社区治理研究和运营。
参考文献:
《NULS的一键造链和跨链生态》 向文波 NULS中文社区;
《软硬核:彻底读懂 Cosmos 如何一键发链与万链互联》李画链闻ChainNews;
来源:CSDN