本文来宏观介绍一下 Nervos 。Nervos 是由多条区块链组成的网络,接下来 Peter 就给大家介绍一下 Nervos 网络的分层架构,以及整个生态中各个组件的分工。

宏观思路

我们先抛开具体组件,先从宏观上梳理一下 Nervos 的大思路。可以用一句话概括,Nervos 是一个分两层的架构,第一层是保证安全的基础公链,第二层是保证性能的 AppChain 。

先说基础公链,也就是第一层。在整个 Nervos 网络中,基础公链只有一条,也就是第一层只有一条链。这一层保证的是安全和去中心化,要达成的是全球共识,所以性能方面不是要首要考虑的要素。但是 Nervos 区别于传统的比特币或者以太坊等其他公链的特点是,在设计之初,就考虑到了为第二层的优化,最大化的保证第二层能自由的提升性能和增加功能。

再说第二层的 AppChain 。AppChain 保证的是性能和丰富的功能。在 Nervos 的愿景中,未来可能有成百上千条 AppChain 同时运行。每一条 AppChain 都是一条独立的链,分属于不同的企业,大家的技术方案也可以不同,各自根据自己的业务需求去进行优化,但是大家都会去连接底层的同一条公链。注意,Nervos 官方提供了一条 AppChain 的源码,可以供各个企业去使用或者参考,这个稍后我们详细介绍。

采用分层架构的哲学思想是这样的。不是所有的共识都需要达成全球共识,例如一个游戏,玩家可能就是那几百人,所以不需要每次操作都去进行一个全球共识的确认。一个例子就是以太坊上的加密猫游戏,只有一部分人会去玩,但是却造成了整个以太坊的拥堵。基于这个思考,第二层的 AppChain 上采用一些高效率的共识算法来达成局部共识,而只有最重要的数据才会写入到第一层的基础公链中去。第二层如果出现纠纷,第一层的数据就可以用来做仲裁的凭证了,所以说分层的架构兼顾了性能和安全。

以上就是,Nervos 这个区块链网络的宏观思路了。

核心架构组件

那么实现宏观思路的具体技术方案和核心组件是什么呢?

还是先说第一层。Nervos 网络第一层基础公链的名字叫 Nervos CKB 。CKB 是 Common Knowledge Base ,也就是”共同知识库“的意思。名字中就可以看出,链上保存的就是共识数据。CKB 采用的是跟比特币一样的 POW 算法,最大程度保证了安全和共识范围。但是比特币的特点是只存放交易,但是 CKB 存放的是通用数据,不局限于交易,所以说 CKB 本身是不限制业务类型的,具体业务都是各个企业去第二层自己的 AppChain 上去实现的。但是除了安全,CKB 作为一条公链,也有自己的原生代币。原生代币可以起到跨链价值流转的作用,说白了,也就是说第二层各个 AppChain 之间虽然业务不同,但是由于大家统一使用 CKB 代币,这显然就提供了各种互操作方式的可能。CKB 的详细内容,大家可以参考 nervos.org 上的白皮书。

第一层说完,我们开始说第二层。所有接入到第一层公链的其他的链都统称为 AppChain ,意思就是各个企业的的应用链。应用链保证大家在各自业务情景下去达成自己的共识。具体形式 Nervos 网络不做严格要求,如果仔细看第一层 CKB 的白皮书,其实会发现各种输入源头,CKB 都是可以接受的。Nervos 提供了官方的 AppChain 供大家直接使用或者参考,名字叫 CITA ,是一个 Github 上的开源项目 。CITA 本身就可以有多种配置,既可以配置成有准入要求的联盟链也可以配置为公链。CITA 上面是可以跑智能合约的,同时为了保证性能,共识算法并没有使用 POW ,而是使用了定制版的 BFT ,拜占庭容错算法。这样保证了单就 CITA 而言,可以达成每秒 1.5w 笔交易,这个处理速度已经能保证很多实际商业情景了。更多资料可以参考 Nervos 官网的 AppChain 部分。

再来聊聊,第一层第二层之间关系。AppChain 上保证了足够的性能,那么形成的共识数据有哪些是需要自己保管,哪些是需要写到底层公链上的呢?这个完全是根据实际业务来定的。写入太频繁可能会造成性能瓶颈,一般来讲只要保证在 AppChain 出现纠纷之后,CKB 上的数据足以证明是谁在作恶就可以了。企业的 AppChain 也需要持有 CKB 代币,并把代币抵押到 CKB 链上,这样作恶一方就可以受到惩罚了。

把握了 CKB 和 AppChain 的关系,也就理解的 Nervos 体系的核心了。

整个基础设施的完整画面

Nervos 要达成的目标有两个,一个是方便企业搭建公链,另一个是方便企业开发自己的区块链应用也就是 DApp 。未来达成这两个目标,Nervos 做了一套完整的基础设施,所以最后一部分我们来看看整套基础设置的完整画面。

首先是 CITA 项目和 CKB 底层公链,这个是基础了。在此之上,Nervos 还提供了开源 DApp 钱包,名为 Neuron ,意思是神经元。钱包无疑是实现了现实世界的用户访问区块链世界的入口。传统上钱包应该具有的管理私钥和进行转账的功能 Neuron 都有。但是同时 Neuron 也是一个 DApp 的运行环境,可以把 Neuron 想象成微信,而每个 DApp 就是一个微信小程序。因为 DApp 中不适合去直接存放私钥,所以如果涉及到转账支付操作,Neuron 就出来帮忙了。这就是为何不把 DApp 直接运行,而要放到钱包中运行的主要的原因。

除了这些,Nervos 还有一系列的工具来解决大家在开发中遇到的各种痛点。来举几个例子:第一个是 SDK ,可以方便开发者在 Java 和 JavaScript 等各种语言下的开发。第二个是 Microscope ,这是一个区块链浏览器。第三个是 ReBirth ,是区块缓存服务器,用来提高操作速度。最后一个,Nervos 也跟万云合作,提供 Nervos AppChain 的环境实例,开发者可以直接在万云运维的一条 AppChain 上免费部署 DApp 并向用户发布,这就进一步降低了开发门槛。这些工具的详细资料大家可以在 Nervos 官网上找到,我们就不展开了。

总结

关于 Nervos 的宏观介绍,我们就聊到这里。总结起来就是,Nervos 是一个网络,分上下两层,底层的 CKB 负责安全和共识,上层的 AppChain 保证性能。Nervos 要为各个企业搭建自己的公链和开发 DApp 提供成套的基础设施,让大家直接上手就能实现自己的想法,而不必重新造轮子。