以前 Peter 提过,搞区块链的人们其实真正想要的是加密经济.但是对于如何更好的去支撑加密经济,不同的团队有不同的理解,所以各个区块链团队的技术架构也非常的不同.2018年11月,我参加了 Nervos 的 Meetup ,会上 Nervos CTO Jan 同学分享了 Nervos 的思路.演讲的完整视频在: ,我这里的内容,是对演讲中 Nervos 宏观运行方式的整理,刻意的简化了一些技术细节的讨论,略去了一些术语,保证没有区块链和密码学基础的读者也能迅速看懂.
翻译过来就是"没有共识比 无共识更快".一段数据直接保存到服务器上当然会很快,但是如果我们想让数据保存之前让全球节点都帮我们验证一遍,并且保证大家的意见一致,保存之后也需要全球节点持续保证数据的不可篡改性,也就是说希望数据是全球共识的.这样我们直观上就可以感到,全球共识本来就应该很耗费资源,或者说就是很昂贵的.所以说区块链慢,不是说我们工程上实现的不好,而是客观原理决定的.
那么如何去让系统快起来呢?从区块链本身着手收效甚微,采用分层架构去更高效的利用昂贵的全球共识才是更好的方案.所以,Nervos 系统采用了分层架构,其中第一层是一条公链,名字叫做 Nervos CKB .CKB 采用跟比特币类似的 POW 共识机制,本身全力保障的是安全,去中心化以及全球共识,性能方面当然也会尽量调优,但是不会因为性能去妥协去中心化.Nervos 认为,公链很慢,这个是客观事实需要去接受,大家应该思考的是如何更高效的利用全球共识这种昂贵的资源.简单来说,Nervos 的解决方案就是把一些不是那么重要的数据转移到第二层上去处理.这样虽然区块链还是那么慢,整个系统的处理能力却会有明显提高.同时 CKB 被称为 Layer1 for Layer2 ,为第二层而生的第一层.意思是 CKB 从设计之初,就考虑到了跟第二层的对接.
作恶的数据.区块链是个信任机器,只要是能保证交易的安全可信进行,目的就达到了.所以 Nervos 认为第二层不一定非要是区块链,可以是独立服务器或者其他方式,保障性能是最重要的,同时双方约定把执行过程中的关键数据保存到第一层.这样如果出现纠纷,第一层就可以去判断是哪一方在作恶了.同时有意思的是,因为有了仲裁机制,实际上第二层的人的作恶就会很罕见了,于是也就不需要反复的请求第一层,从而就不会对第一层的性能提出过高的要求.这个过程可以在现实世界中找到一个类比,那就是我们的司法系统.在淘宝上买一件衣服,其实不需要经过法院.但是由于法院的存在,导致正常情况下没有人会作恶,所以法官的人数不必太多,
也能忙的过来.司法体系可以保证合同的执行,但是并不需要法官一直盯着合约双方.只有当真的出现了违法行为,我们才有可能去对簿公堂.
Nervos 的方法论是,所有的业务是通过一个体系来完成的,区块链只是整个体系的一部分.区块链上不是直接支撑买东西,玩游戏这些业务的.具体来讲,Nervos 的区块链 CKB 的设计目标主要有三个.
第一个, Store of Assets ,各种各样的资产的存储.交易各方必须要在 Layere1 上有抵押的资产,这样才能在作恶的时候做出惩罚.因为区块链是数字世界,不能用物理的方式去惩罚,比如把当事人刑事拘留.
第二个,Crypto Court ,加密法庭.因为 CKB 上是保存了第二层上的很多关键数据的,如果有人作恶,那么在 Layer2 提供一些证据的条件下,CKB 就能够判断出到底是谁在作恶,也就是说 CBK 能够根据密码学证据,进行仲裁,必要时对作恶的人进行资产罚没,起到加密法庭的作用.
最后一个,Layer-2 Friendly ,对第二层友好.CKB 的用户是第二层开发者,而非最终用户,所以 CKB 从设计之初就要考虑到为第二层提供各种必要的功能和接口.因为区块链属于基础设施,并不是普通软件,想要升级有时候就会搞的地动山摇.类似互联网的 HTTP 协议还有 JS 语言,设计的时候如果有问题,想要推翻重来就会非常困难.
最后一部分来看看 Nervos 对第二层的思考.Nervos 对第二层不做硬性要求,开发者可以自由选择第二层的解决方案.
首先第二层上可能就是交易的双方,通过状态通道或者使用某个 Web 服务的方式进行沟通.例如,两个人下棋.这时候,你来我往的大部分数据可能都只需要在第二层保存即可,不会涉及第一层的 CKB ,而只有最终结果才保存.
同时,第二层也可能是一条链,例如联盟链.这种情形意味着,第二层自己也维护一个小范围的共识,这样依然能够保证非常良好的性能.关键的一些数据保存到 CKB 上形成全球共识,达成最高程度的安全.于是整个体系就兼顾了安全和性能.
应该说,Nervos 体系下,第二层的可能性是无限的.
以上就是 Nervos 的基本架构思路了,总结起来的特征是:通过已经被反复验证的 POW 共识机制达成第一层的最大化的安全和全球共识,接受全球共识很慢的事实,通过分层架构来提升整个系统的处理业务的效率.注意,本文的介绍还是非常粗略的,例如 CKB 看上去只是一个全球共识数据库了,不能进行任何运算.而实际情况包含更多的细节,智能合约和数据的运算的确都是在第二层来做,但是 CKB 也可以通过自己的 VM 来运行代码,方便用户自定义数据验证的逻辑.更多内容大家可以参考 Jan 的演讲和 CKB 白皮书.
原文始发于微信公众号(Rebase社区):Nervos 如何支撑加密经济?