作者lolo0856 (lolot)
看板DigiCurrency
标题[闲聊] Nervos:PoS 算法并无法证明比PoW 更安全
时间Wed Jun 12 11:58:36 2019
不知道要用什麽分类,就闲聊吧@@
这是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与区块链的想法如何呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.9.37.186 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DigiCurrency/M.1560311919.A.678.html
1F:推 camellala: PoS 的优点不是在安全,而是不会浪费能源;由於环保及 06/12 12:28
2F:→ camellala: 全球暖化的因素,PoW长期来看会走向式微 06/12 12:28
3F:→ lolo0856: 在那篇文章中有论述 其实PoS隐藏的成本并不会低於PoW 06/12 12:31
4F:→ lolo0856: 譬如stake发生的流动性成本 06/12 12:31
5F:推 camellala: 不可能,贴出他的论点吧 06/12 12:36
6F:→ lolo0856: 文章中有附录喔 06/12 12:36
8F:→ camellala: 在哪一段? 06/12 12:37
9F:→ lolo0856: 他用基础的经济学理论论述消费者剩余和生产者剩余都会 06/12 12:38
10F:→ lolo0856: 因为staking而减少 06/12 12:38
11F:→ lolo0856: 倒数第二句@.@ 06/12 12:38
12F:→ camellala: 这张图与耗能无关 06/12 12:39
13F:→ lolo0856: 不是耗能的问题 消耗能源是成本的一种表达方式 不消耗 06/12 12:40
14F:→ lolo0856: 能源不代表他在其他部分的成本消耗小於消耗能源 06/12 12:40
15F:嘘 camellala: 请用理论证据说服我,而不是讲似是而非的无关话语 06/12 12:42
16F:→ lolo0856: ..这也不是我的论述ㄚ 文章不就在本文的最後吗0.0 06/12 12:43
18F:→ lolo0856: 另外我认为安全不是拿来比较的东西,任何一种共识法都 06/12 12:45
19F:→ lolo0856: 应该保证安全 06/12 12:45
21F:→ lolo0856: 论述PoW为什麽与众不同 06/12 12:54
22F:嘘 camellala: 我只有在文中的"声明 2(iii)"看到作者的说明,那只是他 06/12 12:54
23F:→ camellala: 的想像而已,没有具体理由,更别说没计算分析 06/12 12:54
24F:→ camellala: 直接与间接耗能,是可以科学计算的,而不是仅作者自己 06/12 13:00
25F:→ camellala: 觉得而已 06/12 13:00
26F:推 darkdixen: 就说币圈充满我觉得 06/12 13:09
27F:→ commandoEX: 要不然请camellala算算POS比POW更节约也可以啊 06/12 13:13
28F:→ commandoEX: 没有必要一定要谁说服谁吧? 06/12 13:14
29F:推 camellala: PoW比较安全,这没问题;但若要说 PoS 耗能的话,请用" 06/12 13:15
30F:→ camellala: 科学"来说服我 06/12 13:15
31F:→ camellala: 回楼上,PoS省能源,就是科学啊 06/12 13:16
32F:→ camellala: 我只是无法接受PoS的耗电不比PoW少的这种歪理 06/12 13:18
33F:→ commandoEX: 文末的参考文章说的是POS的隐藏成本不比POW少吧 06/12 13:27
34F:→ commandoEX: 怎麽会变成只探讨耗能问题? 06/12 13:27
35F:→ lolo0856: 他不是论述耗能少吧@@ 耗能少是PoS优势的既定事实 但不 06/12 13:29
36F:→ lolo0856: 能忽略PoS有许多安全性譬如nothing at stake的成本阿 06/12 13:29
37F:→ lolo0856: 所以到底是谁说PoS耗能了... 06/12 13:30
38F:→ commandoEX: 文章里面主要在说被质押的POS代币所产生的成本比POW大 06/12 13:31
40F:→ lolo0856: 这边有稍微比较大篇的PoS PoW探讨 大家可以参考~~ 06/12 13:34
41F:推 camellala: 我再重看一次前面推文的过程,我了解我们沟通的误差原 06/12 15:10
42F:→ camellala: 因了: 06/12 15:10
43F:→ camellala: 我在1、2楼的留言就只有一个重点,就是耗能;楼主在3楼 06/12 15:10
44F:→ camellala: 回我时讲了成本,我就预设他回我的成本议题,应该是接 06/12 15:10
45F:→ camellala: 续我的耗能议题,然後我就和楼主吵耗能议题; 06/12 15:10
46F:→ camellala: 一直到了第37楼,我才知道楼主在3楼讲的话,并不是对我 06/12 15:10
47F:→ camellala: 在1、2楼的话在回答,才会有误会 06/12 15:10
48F:推 d15388david: 推 06/12 15:11
49F:→ lolo0856: 没事 大家理性讨论ouo 06/12 15:15
50F:推 camellala: 再帮我前面误嘘的,自己补推回来 06/12 15:17
51F:→ lolo0856: 我思考的是 真的有一种货币的发行不需要工作成本吗? 06/12 15:20
52F:→ lolo0856: 黄金发行也需要投入资本去工作挖矿 06/12 15:21
53F:→ lolo0856: 不需要成本发行货币听起来其实很类似政府印纸币的行为 06/12 15:24
54F:→ lolo0856: ,纸币背後已经没有黄金担保,依靠的仅仅是人民对於政 06/12 15:24
55F:→ lolo0856: 府的信任,当这个信任崩解纸币就不具任何价值 06/12 15:24
56F:→ lolo0856: 所以换成任何使用PoS的项目的状况,我们是信任了谁呢? 06/12 15:24
57F:→ JoyRex: V神顾小矿工啊.效率好棒棒 06/12 15:37
58F:推 john801110: 最顾小矿工的应该是xmr了常常为了打击矿机升级 06/12 15:47
59F:→ JoyRex: 我还以为是最顾殭屍挖矿哩 06/12 17:29
60F:→ DarkerDuck: PoS比较省能源这个应该连计算都不需要 06/12 17:47
61F:→ DarkerDuck: PoW就是用耗能去达到一个难以变造的帐本来达成信任 06/12 17:48
62F:→ DarkerDuck: PoS因为不用耗能就可创造帐本,所以有Nothing at stake 06/12 17:48
63F:→ DarkerDuck: 我验证者可以任意压所有分叉链,让共识无法收敛 06/12 17:59
64F:推 ProtectChu56: 好像PoS大都宣称用惩罚机制能解决N@S问题 06/12 18:06
65F:→ DarkerDuck: 至於那篇"没什麽比PoW更便宜",则是用机会成本的算法 06/12 18:07
66F:→ DarkerDuck: 和耗能无关 06/12 18:07
67F:→ DarkerDuck: 以後ETH网路大概也不会抛弃PoW,大概会双轨运行 06/12 18:08
68F:→ DarkerDuck: 只是PoW就当作最基础最安全的Anchor Layer 06/12 18:12
70F:→ DarkerDuck: PoS则是用来高效率一秒出一块和sharding chains使用 06/12 18:19
72F:→ lolo0856: 这篇提到 无法伪造的奢侈消耗正是PoW与众不同的原因 06/12 18:44