您现在的位置是:首页 > 项目集市 > 潜力项目网站首页潜力项目

C35 | Nervos项目介绍

  • Genesis
  • 潜力项目
  • 2019-04-08
简介Nervos 是一套可扩展可互操作的协议,提供一个分离的分散平台,形成可扩展性、交易的确定性和低延迟的多条路径区块链系统,旨在以共同知识库(CKB)作为核心的信任基础设施,搭建网络上的可信任组件,针对目前区块链的链上同步速度慢、底层难做并行处理等问题,Nervos通过链上记录状态,链外进行计算的分层架构简化了节点压力,又解决了节点和分片的并行问题。既实现了去中心化,又满足了各种商业级应用落地的性能要求,建立了一个可商用的高扩展性公链。

项目简介

 
Nervos 是一套可扩展可互操作的协议,提供一个分离的分散平台,形成可扩展性、交易的确定性和低延迟的多条路径区块链系统,旨在以共同知识库(CKB)作为核心的信任基础设施,搭建网络上的可信任组件,针对目前区块链的链上同步速度慢、底层难做并行处理等问题,Nervos通过链上记录状态,链外进行计算的分层架构简化了节点压力,又解决了节点和分片的并行问题。既实现了去中心化,又满足了各种商业级应用落地的性能要求,建立了一个可商用的高扩展性公链。Nervos的协议层分成两层,第一层(layer1)主要解决安全和去中心化的问题,第二层(layer 2),解决性能问题。Nervos通过对全节点、共识节点和轻节点的不同赋能,使得移动设备节点成为可能,有利于性能的进一步提升。
 

核心设计思想

 
1)区块链的技术体系应该分层,比如Bitcoin和Ethereum属于Layer1,而闪电网络和Plasma则属于Layer2。除了闪电网络、Truebit、Plasma等典型的Layer2技术之外,Layer2可以有多种多样的表现形式,Nervos需尽可能实现一些通用的、不可或缺的Layer1核心功能。因此Nervos设计了一个Layer1的核心系统Nervos-CKB(Common Knowledge Base),其综合了Bitcoin和Ethereum的一些优点,并试图避免Bitcoin和Ethereum做得不够好的某些地方。
2)Layer2系统的参与者(包括节点、用户等等)在进行交互之前,必然要具备一些共同知识或共识,这些共识最终会以数据的形式表达出来,并存储在Nervos-CKB的各个参与节点上,这也是共同知识库(Common Knowledge Base)的命名由来。这就类似于两个人能够流畅的沟通交流区块链技术,那么两人必然要储备同一门自然语言(比如汉语、英语)的语法及语义知识,同时两人还必须储备一些共同的非对称密码学、P2P通信等知识。
 

Nervos对「Bitcoin-UTXO」的改进

 
从Nervos的设计观点来看Bitcoin的UTXO,其实是对某一账户地址所拥有的价值总额的分批存储,UTXO是共同知识的一个特例,正是因为其存储的余额是一种共同知识,其代表的价值才能被整个Bitcoin网络所认可,账户拥有者才能执行转账交易花掉这笔钱。如果把UTXO的功能推广,不仅仅用于存储余额及锁定脚本,而可用于存储任何数据和代码,这样就更加通用化了。Nervos称一个通用化的UTXO为Cell,其为共同知识的基础存储单元。一个Cell包含了5个基本面:
1)Type:Cell中存储的数据是有类型和结构的,有些类似于用DTD 来定义 XML 文档的结构;
2)Capacity:Cell的存储容量,可以存储的最大字节个数;
3)Data:Cell中实际存储的数据;
4)Owner_Lock:定义Cell的拥有者,和UTXO类似,通过一段脚本程序对拥有者进行描述和验证;
5)Data_Lock:定义Data的拥有者,同样是通过一段脚本程序对拥有者进行描述和验证。
Nervos通过Owner_Lock和Data_Lock分离了Cell的拥有权和使用权。Cell的拥有者可以转让Cell,而Data的拥有者才可以更改Cell里存储的数据。Bitcoin解决了双花问题,UTXO被花掉以后,就不能再被第二次花费了。类似的,A_Cell被更新为B_Cell之后,A_Cell就不能再被更新了,除非对B_Cell做更新。所有可以被更新的Cell(也就是还未被更新的Cell)中存储的数据及其关联的验证程序,形成了最新版本的共同知识,类似于Bitcoin的UTXO集。对于Bitcoin,利用UTXO和多重签名、时间锁等机制,可以实现跨链原子交易和链外的支付通道,对于Nervos,利用Cell中存储的共同知识数据、验证代码等机制,可以为Layer2系统、跨链交互、以及App-Chain的实现提供一定的便利。
 

Nervos对「Ethereum-状态变更」的改进

 
在Ethereum平台上,可以部署合约,在合约中可以分配数据存储空间,并通过交易事件触发运行合约函数对这些数据存储状态进行更新。Nervos认为对数据状态的更新,可以运行在用户端(比如手机里安装的钱包APP),用户发送的交易会包含更新后的数据状态值和Cell中的数据使用权证明,Nervos-CKB链上只需要部署状态更新的验证程序就可以了,而无需运行状态更新程序。对比交易事件驱动状态改变的模型,Nervos的设计方式可以带来很多好处,比如:
1)Nervos全节点可以非常自然地并行处理多个交易,而Ethereum全节点对于同一区块中的目标地址为同一个合约地址的多笔交易,只能做串行处理;
2)对于很多计算任务,计算过程和验证过程是不一样的,执行量也是有很大差异的。比如Bitcoin的工作量证明,给出一个合法的区块头部,是极其困难的,而验证一个区块头是否合法,则非常简单。在输入数据源相同的情况下,对于一个计算程序,一定存在比其计算复杂度小的验证程序。否则就没必要验证了,重新运行一次计算程序,并核对结果是否相同,就是最精确的验证手段。因此将计算程序分配给用户端执行,而区块链系统只执行验证程序,可以很大程度上减轻区块链系统全节点的运行负担。Nervos称验证程序为Validator,计算程序为Generator,类似于Hadoop的设计者并不知道用户会用Hadoop平台做什么类型的计算,但是Hadoop只需设计出并实现通用的Map-Reduce计算框架,用户自然会针对具体的计算问题给出具体的Map程序和Reduce程序。
例如:利用Generator和Validator互相分离的特性,可以设计一款象棋或围棋程序,记录AI系统(比如Alpha-Go)和人类专业棋手进行的著名对战(普通人之间的对战就没必要上链了,区块链游戏还是太贵,最好放在Layer2执行),Cell负责存储棋盘状态及变更历史,Validtor负责验证每一步棋子挪动是否符合规范(车走直、马走日、炮打隔子等等),Generator负责游戏界面交互、移动棋子、判决游戏输赢等等。
3)Ethereum用户向某个合约地址发送一笔交易,用户可能无法预测这笔交易会给合约里的数据带来怎样的更改,因为在同一时间段,可能还有其他用户也向该合约地址发送了交易。除此之外,矿工还可能监控某些合约(比如Fomo3D),通过立即打包、不打包、延后打包某些交易、调整交易在区块中的位置顺序等手段,为自己谋求利益。而Nervos用户在发交易之前,自己执行了Generator程序,并得出了Cell的结果状态,只要其交易能通过Validator程序的验证,用户是能够事先清楚地知道状态变更结果的。
4)Ethereum用户必须拥有足够的ETH才能让交易上链并触发合约执行,这会给普通用户带来一定的麻烦,比如某项目方创建了ERC20-Token合约,但是该Token的用户必须同时拥有ETH才能正常执行Token的转账。Nervos考虑到了这一点,可以让Cell的拥有者给Cell的使用者付费,但Nervos白皮书并未详细解释具体是如何做到的这一点的。不过Ethereum也在不断发展,未来也可以通过升级实现这一点,比如在合约中实现某些特殊的指令,允许合约的拥有者预先存入一定量的ETH为普通用户付费,并注册验证程序,能够通过验证的交易,就能触发运行合约,不能通过验证的交易,就会被矿工丢弃,这样可以防止恶意的交易并防止DDOS攻击,对于普通转账交易,也可以引入账户属性设置等更加人性化的功能,并实现收款方支付不超过收款额的手续费,这些在理论上都是可以做到的。
 

不可能三角

 
双层架构是Nervos为解决“不可能三角”问题而采用的特殊设计,Layer1负责安全和共识,注重于安全性和去中心化;Layer2负责性能和计算,注重于提高性能。
安全性:Nervos CKB第一版主要采用PoW共识算法。PoW共识算法是历经考验的,在比特币系统安全维护上的作用有目共睹。
去中心化:PoW共识算法是最容易实现去中心的方式,可以保证项目初期的去中心化程度很高,然而PoW也存在算力集中化以及资源浪费的问题。Nervos团队设想的思路是,针对CKB定制并且优化算法,提升PoW的效率,并且支持显卡挖矿,让更多的用户可以参与进来。
性能问题:Layer2来解决,Layer2这层可以是去中心化的,也可以是中心化的解决方案。Nervos团队自己也做了Layer2的AppChain,以了解开发者的需求,使开发者可以更容易地在Nervos生态中进行开发。理论上来说,Layer2的TPS可以达到非常高的级别,目前AppChain的TPS可以达到15000以上。
在快速最终性这个问题上,Nervos CKB第一版主要采用PoW共识算法,并不能实现快速最终性。根据白皮书中提供的信息,混合共识(Hybrid Consensus),即PoW+BFT将是Nervos的后续选择,BFT将为系统提供快速最终性。CKB节点由存档节点、共识节点和轻节点组成。

 

团队介绍

 
谢晗剑(Jan Xie):以太坊核心研发成员;
CEO 太檑(Terry Tai):密码货币/数字货币交易所云币的核心开发者;
COO 吕国宁(Daniel Lv):曾是全球最大的以太坊钱包 imToken 的 CTO;
联合创始人兼北美团队负责人王宁宁(Kevin Wang):Launch School 的创始人,前 IBM 工程师。
 

代币用途


目前,Nervos项目方并没有过多披露代币在生态中的用途,其中代币比较重要的一个用途是购买CKB上的存储空间。Cell的使用者需要为状态的存储支付流动性作为成本。Cell的使用时间越长,需要付出的流动性成本越高。Cell存储空间用于支撑Layer2扩展应用。


代币分配


暂无
 

相关链接


官网:https://www.nervos.org
白皮书:
https://github.com/nervosnetwork/rfcs/blob/master/rfcs/0002-ckb/0002-ckb.md
Github:https://github.com/nervosnetwork/
Twitter:https://twitter.com/nervosnetwork
Reddit:https://www.reddit.com/r/NervosNetwork/
Medium:https://medium.com/nervosnetwork
 
 
免责声明:文章版权归原作者所有,内容为作者个人独立观点,并不代表链随赞同其观点和对其真实性负责。如其他媒体、网站或个人从本网转载使用,必须保留本网注明的“稿件来源”,并自负版权等法律责任。如对稿件内容有疑议,请及时与我们联系。
 

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

Top