不知道要用什么分类,就闲聊吧@@
这是Nervos在某会议阐述的想法~~
原文:http://0rz.tw/FuAgF
一、链上扩容or 链外扩容?
大家有没有发现,2017年底、2018年的时候出现了一波公链热潮,这些公链的技术方向五花
八门,什么都有,有一些你看到了都不知道它是什么。不光是你,连我都不知道这些公链的
技术是什么,我也看不懂。
但如果我们从更高的角度收敛来看,其实公链未来的发展只有两个方向,一个叫链上扩容,
一个叫链外扩容。
1.链上扩容
链上扩容有这样几条路,第一条路叫“更大的区块”,BCH就在做这件事情;链上扩容第二
条路是“使用更快的共识算法”,因为大家发现一条链性能不够、TPS太低,往往处理共识
节点的增加会致使性能处理的瓶颈。
我们本着头痛医头、脚痛医脚的原则,当看到一个链里面哪一个地方存在性能瓶颈,我们就
用一个更厉害的技术把它换进去就可以了。比如有人认为区块炼是一个单线系统,于是就有
了第三条路“并行计算-Sharding技术”;还有人觉得第四条路“DAG”这种新的拓扑数据结
构,比炼式结构更适合处理海量的数据、海量的交易。
其实所有的链上扩容方案都在做一件事情,就是做一条更强的链,让这条链解决所有的问题
。但如果你是一个研究者,你会发现链上扩容方案背后都存在一些问题。
比如“更大的区块”,当你的TPS性能成百倍、成千倍放大以后,马上会遇到一个新问题,
存储空间爆炸;比如“使用更快的共识算法”,现在有POS、DPOS ,它们在安全性上是否都
做出了妥协?我们且不说这些算法带来的去中心化的问题,我们只看它有没有在安全性上做
过妥协;
比如“并行计算-Sharding技术”,并行算法给公链实现的复杂度增加了好几个维度,我们
就问一个问题,这么复杂的功能实现,你如何保证整个系统是绝对安全可靠的?毕竟它没有
经受过现实的长期检验,而且功能复杂这件事情本身就是安全的敌人。
比如“DAG”更多来自于学术界,但其实DAG技术没有得到学术界的真正认可,它现在在落地
和处理大量的交易的时候,还有很多问题依赖于中心化的手法和方案。
所以回过头来看,我们做一条更强的链的链上扩容方法,本质上是在一条链的内部想办法做
各种的权衡和取舍,进而得到性能提升,但这个过程中你失去了什么?这是一个问题。
2.链外扩容
另外一条路叫链外扩容。我们看到现在产生了很多链外扩容方案,比如:闪电网络、状态通
道、Plasma、Truebit等等,但链外扩容也有一个问题:
打个比方,假如今天你买一个手机,卖手机的人告诉你,今天以前发布的所有手机应用都能
够装、都能够用,但今天之后发布的APP,你的手机可能不支持,那你还买不买这个手机?
区块炼炼外扩容就有这样的问题,现在所有的二层扩容方案,它们可以切用户体验、切TPS
,切高性能,但最大的瓶颈来自于一层网络对他们不支持。
如何让一层网络对他们支持呢?技术上是可行的,但你要做无数次硬分叉,才能一步步支持
,这是一个麻烦的过程,因为区块链不是一个软件,非常难以升级。每做一次硬分叉,都要
做非常多的工作,而且也只能小步前进。现在所有的一层网络,比特币、以太坊等等,对二
层网络的支持都非常难。
二、区块链的设计方法学
经过上述的思考,我们已经有了一套区块链设计方法学,主要包含下面4件事。
1.区块链的核心价值是什么?
未来的路我们该怎么走?第一部分提出链上扩容还是链外扩容?我们觉得这个问题的核心要
回归一个本质:我们到底想用区块链做什么?或者说区块链的核心价值是什么?
区块链的核心价值是提供信任,这是结论,我就不展开分解了。基于这一点,我们可以得出
一个衍生的推论:区块炼是通过全局共识的方式来帮助你实现信任。而全局共识,就是一个
很慢、很贵的东西,你要接受它,这是事实。
分布式的、去中心化系统的共识,不可能做得比中心化更快,分布式系统的核心是给你提供
信任,信任才是它的核心价值。我们做区块链,应该考虑的是如何能够把信任的价值发挥出
来。
2.区块链系统未来一定是分层
如果你在链外有一个系统,它可以在安全的基础上提高你的操作性能,这件事能不能做到?
当然能做到,只要你在设计LAYER1的时候朝着安全这个方向设计,然后把信任传递到链外,
去保护链外的系统安全。
当想明白这一点,我们得出一个结论,不要在一条链上做权衡和取舍,在链上走获得信任这
条路,通过链外获得更高的性能。经过一段时间的验证,我们认为区块链的未来就是分层,
把网络分成不同的层次,由不同层次解决不同问题,最后把这些层次系统合在一起,以整体
的方式达到最大的效果。
3.考虑不同层次的需求
如果未来区块炼是一个分层网络,那么我们就需要思考,这个网络中每一个层次的角色。
上层不用说了,它的核心角色是用来提供性能,提供用户体验,用它来切场景、解业务,它
能把这种事做得非常好,它只需要得到LAYER1的支持。
当然LAYER1就不应该只追求性能,在区块链场景下,LAYER1只要做到极致的安全性和极致的
去中心化,来保障上层应用的安全,这个系统就是跑得通的。
4.底层协议设计充分为上层优化
有了这样的思路,当我们搞清楚LAYER1、LAYER2以及角色之间的关系时,就要重新审视我们
在做底层设计的时候,该做哪些事情?
底层该做的事情,是在不牺牲安全性和不牺牲去中心化的前提下,充分地为上层做优化。
这里有一张图,很简单,中间有一条线,线上是LAYER2,线下是LAYER1,会用一个圈代表一
个性能。线上做扩容,没有问题,在中间的分割线之下,只要专注于去中心化和安全性,就
是DECENTRALIZATION和SECURITY。
三、Nervos CKB的技术特点
基于这样的思考,我们认为LAYER1的底层就是做这样几件事情:
1.资产管理和存储模型
首先,LAYER1、LAYER2之间要保证安全和安全能够向上传递,它最核心要做的事情是保证资
产安全。保证资产安全,不光要保证平台Token的资产安全,也要让用户可以在平台上发行
自定义资产,并且保护用户自定义资产的安全。
大家可以问一个问题,我们在以太坊上发一个ERC20的Token,也许这个Token因为某些原因
变得有价值,它的安全由谁保证?这个很有趣,我们待会儿讲。
其次,我们有必要支持用户完成自定义功能,并且在底层账本模型设计的时候,应该是以资
产为导向的,因为只有以资产为导向去设计账本模型,它才更加适合用来可以把状态用户的
资产映射到上层网络上做交易、做业务、做应用,最后还比较容易回到底层做清算。
所以我们藉鉴了比特币的UTXO的思路,设计了我们自己的独立非常有特点的账本模型系统,
这里不展开。
另外,除了发行资产、影射资产之外,当LAYER2的用户需要把资产回到底层进行网络清算的
时候,会提交密码学证据,而你需要对密码学证据的数据具有存储能力,所以LAYER1必须要
做好地产管理和通用的存储模型。
2.CKB-VM 虚拟机
第二是虚拟机,所有的区块链业务都需要虚拟机。你要想清楚链的定位是什么,是在应用层
做一个高级语言支持的虚拟机,还是在底层做保护系统安全的虚拟机?
我们认为在LAYER1的底层,核心是要让虚拟机足够安全,并且足够灵活,而且有很强的运行
期的透明性,这就需要保证在虚拟机里执行的每一个指令,都能够非常容易地计算出它的成
本,这对你的底层经济模型非常重要。所以我们使用更底层的抽象,叫RISC-V硬件CPU的指
令级,来模拟实现我们的虚拟机,我们的虚拟机就像一个硬件的CPO在执行。
3.NC-Max PoW 共识算法
底层为了安全,我们使用的PoW共识算法。现在很多人讨论PoW和PoS算法谁更安全,说实话P
oS算法并没有办法证明比PoW更安全,但它明显比PoW更复杂,这种复杂性没有办法保证理论
的设计和工程实现都能做到安全,就算它的工程实现比较完备的情况下,也没有经过在生产
环境中长达十年时间的验证。
所以我们认为PoW算法是更好的选择,但我们没有因此停步。我们要在保证安全的情况下,
压榨出硬件的每一滴油水,让性能足够快,这也是我们在做的事情。我们提出了一个NC-Max
的共识算法,将会在下个月发出来,我们会有一个非常巧妙的方式压榨带宽的使用率,来提
升算法效率,而PoW的算法归根到底是带宽如何高效被使用而不是被浪费掉。
4.经济模型
最后最关键的一点,即经济模型。当你的网络分为LAYER1和LAYER2的时候,你要考虑当你的
上层应用变得非常繁荣的时候,如何能把上一层产生的价值捕获到底层,当底层的价值被捕
获并沉淀的时候,它可以激励你的矿工得到更多的收益。当矿工得到更多的收益,也是让矿
工获得更多的资源保证全网的算法。而全网安全边界提升的时候,实际上也能为上层提供更
好安全保护,这是经济模型设计的核心。
经济模型设计的核心并不是鼓励每一次共识的达成,经济模型设计的核心是推动整个生态能
够朝着越来越繁荣的方向去推进。
最后,分享一下我们2019年在做的事情,我们将在3月8日发布经济模型设计提案,5月18日
发布测试链,6月份发布共识算法Paper,预计Q4主网络上线。
评论:
不提Nervos这条链如何,这篇文章中说到的区块链定义跟我的想法很雷同,区块链本身的笨
重缓慢的架构使其可以提供高度的信任,这就是它最大的价值,试图提升性能的尝试其实都
或多或少牺牲了某方面的安全或去中心化程度,我并不是说这样不好,我们可以在各种新方
法的尝试下小幅优化区块链交易的速度,但没办法在坚持去中心化的架构下使效能有数量级
的提升。
我认为区块链应该在其擅长的部份发挥最大价值,而不是试图与中心化系统提供相同的高效
率。
对于PoS和PoW的争论我前一阵子有翻到一篇在论述其实任何一种共识法都没有办法比PoW更
高效,差别只是隐式或显式的PoW,PoS算法实际上浪费的隐性成本并不会低于PoW挖矿所消
耗的成本,文章在这~~ http://0rz.tw/xDoTO
大家对于PoS与区块链的想法如何呢?