什么是 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 提供成套的基础设施,让大家直接上手就能实现自己的想法,而不必重新造轮子。


edit this page on GitHub