从分层设计到跨链造链,谈谈Cosmos和NULS有何不同

小喇叭 观点
2019-04-09 10:35:44

  

随着区块链技术的价值凸显,其已受到越来越多国家和地区的积极拥抱和支持,众多知名企业也纷纷开始布局区块链。相比传统的软件开发,区块链技术难度大,企业造链成本高。并且目前的区块链,例如比特币和以太坊,都是数据和价值的孤岛,无法实现链间通信,长远来看,这是一个必须得到解决的问题。

那么如何降低区块链开发难度,帮助企业实现轻松造链呢?区块链间又该如何实现跨链呢?近期获得BlockGroup 2亿美元并购基金战略投资的NULS,和主网刚完成上线的Cosmos,正是造链和跨链领域中的突出代表。

本文将从不同的角度,对NULS和Cosmos两个明星项目,进行分析和比较,帮助你理解他们在造链和跨链中的技术实现,以及他们具有怎样的价值。

 

1. 分层设计

 

 

从整体架构上来看,NULS和Cosmos都采用了分层设计,将业务层和底层进行了分离。

Cosmos整体分为两层,底层叫Tendermint Core,包含了共识层和网络层,业务层叫Cosmos SDK,封装了通用的业务功能。Cosmos业务层通过调用Tendermint Core的接口ABCI(Application Blockchain Interface),完成与底层的交互。

11

NULS整体分为三层,底层叫NULSTAR,是一个区块链微服务底层框架,业务层又分为两层,分别是区块链基础服务层NULS模块仓库和DAPP应用层。

12

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提供的功能。

13

Cosmos SDK的模块化

14

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月完成了上线,目前主网运行稳定,节点数目并没有特定的数量限制。

15

Cosmos主网数据

16

NULS主网数据

在DPOS中,出块节点只有超级节点,委托人不会得到共识奖励,参与共识的Token并不会限制流通。与DPOS相比,POC和Tendermint可以让更多节点参与出块,鼓励更多人参与网络的维护,保证系统的去中心化。并且共识Token不能流通,可以提高网络的安全性。与比特币的POW相比,POC和Tendermint参与挖矿的门槛足够低,还可以节省大量能源。

 

对于区块链来说,分区容错是必须要考虑的,POC和Tendermint在应对分区时,两者有所不同。当网络出现分区时,Tendermint网络更侧重一致性,如果分区导致参与投票的节点不足2/3,Tendermint网络是无限等待的,这意味着Tendermint的网络可能会卡住。而POC网络在出现分区时,不同的分区都可以正常出块,当网络恢复时,会进行合并,遵循最终一致性。

尤其对于公链来说,保证可用性非常重要。当网络出现分区时,如果网络不能使用,会导致大量应用和交易不能使用,这会影响企业的正常业务运转,对于拥有众多用户的公链来说,这会导致交易和大量DAPP不能使用,这会带来不可预估的影响。

 

4. 造链

 

 

在对于造链来说,NULS和Cosmos在理念上几乎是一致的。都是通过对底层进行封装,将业务层进行模块化拆分,让造链者只需要关注特定的业务功能开发,就可以实现造链,从而降低造链难度,节约开发时间和成本。

但是Cosmos采用的是单体架构,使用Cosmos造链时,需要在Cosmos SDK的基础上,通过开发插件的方式,实现其他特定业务模块。而NULS采用的是微服务架构,使用NULS造链时,可以独立地开发特定的业务模块,然后与NULS模块仓库的通用模块进行对接即可,并且每个模块可以有多个可替换的插件,进行业务功能的扩展。

相比Cosmos的插件式造链,NULS的模块化造链,不会受到开发语言的限制,开发和测试过程更加简单,具备更高的灵活性,能够满足更多企业的定制化需求。

对于业务简单的系统来说,甚至可以直接与NULS进行对接,不需要任何额外的开发工作。对于大型区块链系统来说,微服务具备更高的可扩展性,能保证系统的稳定性,节省大量运营成本。

从Cosmos和NULS的整体路线图中,我们可以看出Cosmos与NULS的发展定位有所不同。Cosmos整体更侧重于跨链领域的发展和研究,而NULS将发展分为造链和跨链,两个重要发展阶段。造链阶段,除了模块化造链,NULS还计划推出核心产品链工厂,希望实现“一键造链”

NULS的链工厂基于NULS模块仓库实现。NULS的模块仓库除了包含通用的功能模块外,还包含了由不同开发者开发的业务模块,意味着企业使用链工厂造链时,还可以选择一些适合自己的业务模块,进一步降低开发成本。

17

使用NULS的链工厂造链,需要4个步骤:

  1. 在链工厂的模块仓库中,选择需要的模块;
  2. 进行系统参数配置,填写创世块中的内容;
  3. 填写链介绍和发链方式;
  4. 交纳保证金,广播造链交易。
18

 

链工厂本身也是一条区块链,链工厂的节点可以同时运行多条链,这样使用链工厂搭建的区块链,就可以直接选择链工厂的节点,运行自己的区块链,省去了搭建区块链节点运行环境的麻烦,同时成本大幅降低。当然,企业也可以选择,自己创建节点,然后运行区块链。

Cosmos整体更侧重跨链领域的发展,在造链领域,Cosmos通过Cosmos SDK实现了插件式造链。NULS将发展阶段分为造链和跨链两个阶段,在造链阶段,NULS实现了模块化造链,未来计划通过核心产品链工厂,实现“一键造链”。

 

5. 跨链

 

 

NULS和Cosmos的跨链解决方案,整体思路大同小异。为了实现链与链之间的价值互通,NULS和Cosmos都采用了中继的方式。

在实现上,Cosmos通过Cosmos Hub作为桥梁,让其他平行链实现互通,NULS通过NULS主网作为桥梁,让其他平行链实现互通,并且NULS会对跨链交易进行拜占庭,80%节点确认后交易才会打包,并且跨链交易不会丢失,合并分区网络后,依然会恢复对交易的确认。对于数据和其他业务场景的互通需求,NULS和Cosmos都可以通过增加其他中继链的方式来实现。

19

Cosmos跨链解决方案

20

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;


本文地址: https://www.xiguacaijing.com/news/guandian/2019/5748.html
声明:本文经授权发布,除注明来源外,均为西瓜财经用户投稿,不代表西瓜财经立场。转载请注明:西瓜财经(xiguacaijing.com)
提醒:投资有风险,入市需谨慎。若内容涉及投资建议,仅供参考勿作为投资依据。谨防以“区块链”名义进行非法集资。
赞助商