返回

什么是 Nervos ?

到 B 站观看视频

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

宏观思路

我们先抛开具体组件,从宏观上梳理一下 Nervos 的大思路。可以用一句话概括,Nervos 是一个分两层的架构,第一层是保证安全的基础公链,而提升性能的任务放到了第二层,第二层可以有多种解决方案。

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

再说第二层。第二层保证的是性能和丰富的功能。在 Nervos 的愿景中,未来可能有多种形式的第二层方案同时运行。每个企业结合自己的需要,选择不同的第二层方案。这里我们列举几种情况:第一种,有时候在第二层不需要啥共识,一个人就能说了算,这时候就可以在用户自己的设备,例如手机上,直接生成数据,写入到第一层 ,注意,数据一旦写入了第一层,就达成了全球共识,保证了最大化的安全。第二种情况,传统的 Web 服务也能生成很多数据,这些数据本身生成的过程可能也没有啥共识可言,但是对于 Nervos 来说,这也还是能够接受的第二层方案。第三种,如果数据需要几个人达成共识之后才能生成,那么也可以用状态通道的方式去生成新数据。第四种,如果第二层本身也需要比较广泛的共识,最好的方式就是在第二层使用另外一条区块链,但是不同于第一层,这一层的区块链肯定是要保证性能的,通常也会有更丰富的功能,例如支持智能合约。

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

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

核心架构组件

那么实现两层架构思路的核心组件是什么呢?

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

第一层说完,我们开始说第二层。第二层保证大家在各自业务情景下去达成自己的共识。具体形式 Nervos 不做严格要求,我们之前所说的四种情况都可以的,CKB 的白皮书上对此也是有介绍的。但是同时,Nervos 提供了官方的第二层方案,供大家直接使用或者参考,名字叫 AppChain 。 AppChain 是第二层的区块链解决方案,包含多个组件,其中核心是 CITA 。CITA 是区块链,本身可以有多种配置,既可以配置成有准入要求的联盟链也可以配置为公链。CITA 上面是可以跑智能合约的,同时为了保证性能,共识算法并没有使用 POW ,而是使用了定制版的 BFT ,拜占庭容错算法。这样保证了单就 CITA 而言,可以达成每秒 1.5w 笔交易,这个处理速度已经能保证很多实际商业情景了。更多资料可以参考 Nervos 官网的 AppChain 部分。

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

从而言之一句话:Nervos 网络的最核心组件,就是 CKB 和 AppChain。

整个基础设施的完整画面

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

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

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

总结

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