为什么我同意Gavin的花园论,反对Maxwell的火箭论
第0章 引言
在reddit上 Greg Maxwell和Gavin Andresen,就比特币的扩容路线展开辩论。Maxwell打了个比方,说比特币应该是多层次的,就像你想要登月,需要使用多级火箭。Gavin也打了个比方,说比特币应该像花园,各种花花草草都可以在花园里种,有的死了,有的活了,自由竞争。并且说,而像火箭那样的层级结构,如果有一层错了,整个系统就很危险。
帖子传送门在这里 https://www.reddit.com/r/Bitcoin/comments/438hx0/a_trip_to_the_moon_requires_a_rocket_with/ 特别长,可见讨论激烈。
本文来论述为什么我支持Gavin的“花园论”。
第1章 先来详细描述下“火箭论”和“花园论”
Maxwell看到了比特币用户数量增长,区块已经快不够承载交易量的发展了。因此认为比特币需要扩容的,提出的扩容思路是先通过隔离见证拓宽主路,然后再在主路上修建一条高科技路——闪电网络。另外还要再建一些可以供人们花样飙车的赛车道——侧链元素。
整个比特币网络按这个思路进化就成了一个以比特币底层协议为第一层,闪电网络和侧链为第二层,用户在第二层上交易和价值交易,而第一层提供算力支持巩固信任。
Gavin看到了比特币用户数量增长,区块已经快不够承载交易量的发展了。因此认为比特币需要扩容,提出的扩容思路是直接增加比特币区块大小。比特币网络就像是一个花园,原来我们客户少,大家可以自由玩耍,随便种些花花草草。现在客户多了,我们就把花园扩建,继续让大家自由种树种花,不受限制。让花草树林自由成长,指不定就长出颗参天大树,而某些花草种子死了也不会危及花园。
Maxwell认为分层搞扩容建设更高效率,他认为比特币需要和Visa等支付机构竞争,那就改变现有的思路局限。比特币网络提供了去中心化的信任,但损失了效率和容量。因此可以使用在比特币网络的基础上建立更高效的支付系统——闪电网络,保留去中心化的信任,又能提高支付效率和容量。
Gavin认为Maxwell的分层设计需要每一层都保证安全,有任何一层出现问题都会让整个系统陷入危险。应该采用更安全和保守的做法,先保证底层建设的安全性和可用性,然后让各种创新在这个安全的土壤上自由发展,无论这种创新是成功或是失败,都不能影响底层建设的安全性。
这两位大师说的都很有道理啊。
第2章 稳固的系统应该是金字塔结构
现在的社会结构按层级发展是非常常见的,比如我们最熟悉的一个概念——金字塔结构。层级结构有个特点是越往底层应该越适应性越强,人数(或活动)也应该越多。
就比如我们社会人员阶层组成一个层级结构,最底层的是广大体力劳动为主的人群,这个层级对自然环境的适应性就比较强,他们可以不需要空调,不需要信用卡,不需要高科技就能生活。而往上一层,到了中产阶级,他们需要更多的外部资源和分工,比如他们需要空调、洗衣机、银行、保姆等等。而这种层级结构的稳定性建立在人数是越往底层人越多的,比如金字塔结构。近些年随着科技的发展,最底层的人员也可以减少,使用大量的科技技术来解决原来只能用来来做的事,但整个社会层级还是要保持近似的金字塔结构,叫纺锤体结构。这种金字塔社会层级结构是稳定的。如果反过来,底层如果人数太少,那就麻烦了。整个社会结构会倾倒。
再来看一个计算机的分层设计原则。
计算机最终可以供用户使用,它设计成多层次结构。最底层是硬件层,然后是操作系统层,再是有很人性化的用户界面的应用层。计算机这种分层也有明显的特点,效率越高的是底层,比如CPU的计算效率高的不得了,而越往上层则需要效率让步于人性化,比如我们只能使用十进制来搞计算,而不是高效率的二进制。
如果想把比特币设计成一个成功的层次结构系统,那一定要有一个坚固的底层结构。现在的最底层结构就是比特币区块链。那如何评价这条区块链的坚固性?我认为应该使用算力,用户数量,交易次数来衡量。算力越大,比特币区块链就越安全;用户数量越多,则比特币价值越大;交易次数越多,则表明比特币受关注度越大,挖矿也越能赚到手续费,而维持高算力。
有人提出可以不大量增加交易次数,比如就按照目前的区块大小加上隔离见证后最大的承载交易量来维持系统运行,而要维持算力收益,则提高交易费用。个人认为是完全不可行的,您可以查阅我上周的文章《为什么我希望比特币持续保持低矿工费》。
如果Maxwell希望把比特币系统朝层级结构发展,那首要应该做的是先加固比特币底层建设。就目前应该做的是扩容,而不是仓促上马闪电网络。
第3章 层级结构需要考虑太多的兼容会丧失整洁
我先来分析下Windows的文件管理里的两个方式,一个是文件夹的层级结构,另一种是库。
如果您是一个Windows用户,细心一点,就可以发现Windows现在正在培养用户使用新的文件管理习惯。
这里有一个Windows里的常见的文件路径,C:ProgramDataMicrosoftUser Account PicturesDefault Pictures 。你可以windows窗口左边点开逐级点开你的文件夹,如果你的电脑用的很多年的话,你很有可能会发现你的文件放的乱七八糟的,经常都找不到文件在哪里。我为了应对这种复杂的文件层级管理,我使用了一个软件Total commander来管理 windows文件。以前我就觉得Windows的工程师是不是有病啊,为了存一点桌面图片,搞十几层文件夹,这一定是傻逼干出来的事。
但在windows窗口左边多了一个叫“库”的结构,如下图。
windows有意让用户使用对同类事物进行归类,来管理文件。如果您是Mac OS的用户,你一定知道这个,在Mac里叫Finder。Mac是没有硬盘的概念,所有的文件都被Finder归类来管理。
如果你同时用过Mac OS和Windows,那你一定会接受按Finder来归类管理文件要比按Windwos的路径分层来管理文件更整洁。现在Windows也开始使用库来培养引导用户使用库来管理文件。
那么现在回到小节标题,为什么层级结构会造成系统复杂和不简洁呢?这是因为兼容的代价。在现有的程序上做创新,就要向下兼容。就比如某个程序为了兼容旧的应用就必须允许那些以前程序的用户的使用习惯。按层级发展的程序,就必须面对这个新旧用户的共同使用习惯问题。
回到比特币的扩展设计,如果使用层级思路来发展,在主链上挂一条闪电网络,那闪电网络就必须使用向下兼容的办法来兼容比特币主链上的用户习惯。这就会造成对闪电网络的设计的约束。
而如果您用过offchain钱包,你就一定会发现基本上所有的offchain钱包的用户体验都和QT钱包不一样,而且是更好更有效率。因为offchain钱包不需要考虑兼容比特币主链上的用户,他们完全是在创造全新的用户体验。
但是闪电网络能不能像offchain钱包那样完全无视QT钱包用户的感受呢?我认为如果是按照分层扩展思路来设计闪电网络就不行,设计师必须把闪电网络设计成和比特币主链是一个进化,让用户觉得这两个是一个东西。而这样设计,就会让闪电网络很复杂,很不简洁。
就像Windows现在在培养用户使用库来替代层级文件夹管理,从win7到现在的win10,Windows都不敢彻底取消掉文件夹管理,因为它要兼容旧用户和旧的程序。我以前就很奇怪,为什么Windows不改变一下,不把文件管理系统向OS学习一下。现在我知道,Windows的最开始的层级文件夹设计,然后一代一代地设计下去,每一代都要考虑上一代的用户和程序,从而导致越来越复杂的文件夹层级。
Mac OS的Finder,它使用简单的概念来管理文件,比如“文稿”、“下载”、“影片”……这些概念是所有人脑子里的共识,看到名字就知道是什么。这种设计思路就是建立在一个坚实文化基础上的,每一个用户都能理解。而Windows的文件夹管理模式则要求用户记住每一个文件夹的含义,这种设计就是建立在以往的旧版本的习惯上的。
到这里,这个逻辑有点复杂,我简洁地总结一下。按层级发展来构建一套系统,因为考虑到要兼容上一层用户和程序的行为,就会约束下一层软件的设计,会导致下一层软件异常复杂。
如果我们有一个坚实的基础,然后在这个基础上创新,创新可以不去考虑这个基础上的用户习惯,可以完全创新,那就是另一个天地。
如果我们把比特币区块链建设的足够坚实,算力足够大,用户越来越多,交易越来越多,那这块基础就越来越坚实,而在这个坚实的基础再去设计新的应用,去开发新的用户需求,而不是去主链上抢夺用户,那新的设计就可以更自由、更创新、更简洁。
相反,如果是因为主链区块容量不够用了,我们按层级去扩展,就类似地下一层要为底层分担用户(如果从交易费来看,就是抢夺用户),这就要求下一层的设计要充分兼容底层的用户习惯和程序习惯,这样的设计就会越来越复杂。越复杂也就越危险。
第4章 解决单一目标适合使用层级结构
我是个机械设计师,在准确理解了用户需求的前提下,我经常会使用层级结构来满足需求。但前提条件是这个需求是明确的,而不是可扩展的。打个比方,我设计过大量的环保设备,比如一个过滤水的净水器。就使用的是层级结构,第一级过滤只过滤毫米级的颗粒杂物,第二级过滤0.1毫米级的杂物,第三级过滤更小的颗粒杂物。这种设计的好处是逐渐满足需求的方式成本较低。如果只使用一级过滤设计,那就需要使用一层最密的过滤网,这样大颗粒和小颗粒一起过滤就会让这层过滤网更快报废,更换滤网成本高。如果使用多级过滤,使用三层滤网,大颗粒被第一级滤网拦下,后面的滤网压力小。而滤网越粗越便宜。这样设计总体的成本就会下降。
Maxwell的火箭论也是这个道理。为了克服地球引力,我们需要火箭做动力,但火箭本身就有重量,上升过程也需要消耗能力。因此采用多级火箭的方式,先让一级火箭推高卫星到一定高度,然后卸掉第一级火箭,第二级火箭点火再往上推送卫星。这样的成本就比使用单一级火箭更低。因为卸掉一级火箭后,整个系统就不需要负担一级火箭本身的重量了。
但是这种层级结构的设计是因为有明确的设计目标的,比如我们有明确的要求把水中的多少毫米大的颗粒物全部过滤掉,比如我们有明确的目标要把卫星送到地球轨道。有了明确的目标,那设计师就可以分解目标,解成一个一个小目标,然后将小目标分到一层一层的设计去解决掉。如果目标不明确,需要后续观察发展来确定如何改进,那设计思路就一定要改变。而且如果一开始理解错了用户需求,设计出来的层级结构就要全部推翻重新设计。这是风险很大的。
解决这种复杂的不明确的任务最好的方式是进化的方式。
第5章 解决复杂任务适合使用生物生长的办法
在人工智能的研究道路上,有一种研究方法叫遗传算法。简单地说,就是使用一种能够自己去尝试各种解,并分析返回结果,改变自身算法,然后进一步去探索答案,再进一步分析……这是一种无穷地递归式地寻找目标的分析方法。
遗传算法提出是因为要解决的任务实在是太复杂了,我们人类自己不知道目标是什么,那只好让算法自己去尝试,然后向我们人类展示结果。这种算法就要求构建一个坚实的可以由人类掌控的基础,我们人类虽然不知道最终的结果会是什么,甚至不知道每一个解题步骤是什么,但我们知道每一次解得的答案是比上一次更好。一点一点地往更好的结果靠拢。要想得到这种往更好的方向进化,我们就必须在每一次进步前提供程序更优的计算资源,绝对不能对这个算法抠。我们把我们能提供的东西给足了,这个算法才有条件不停地探索。
比特币生态的未来,其实我们都必须承认,我们都不知道。就像当年互联网的设计者一样,他们也不知道互联网被我们用来搞嘀嘀打车,来搞约炮……
如果按现在Maxwell的想法,使用层级结构来设计比特币的扩展,并且将比特币主链锁死在1M,通过闪电网络和侧链元素来实现扩容。先不管这种做法会不会成功推广比特币,这种做法本质上就限制了在比特币区块链上的创新。当比特币一秒7次交易全被侧链和闪电网络占用时,如果你想使用比特币就需要更高的手续费时,那就限制了比特币往更高的方向进化的可能。
而且万一,如果按照层级构建比特币网络之后,发现Maxwell的理解错了的话,那一切就完蛋了,比特币可不能重启。
理想的方式是,我们应该先放下身段,承认比特币的未来是我们不知道的。我们能做的就是像遗传算法那样,给比特币足够的养分,把区块容量扩大,允许人们更自由(而不是需要高额手续费和超长的排队确认时间)地使用比特币。让全世界的创新自由地在这条区块链上展开创新,在上面竞争,然后进化,发现比特币更好的应用。
如果按照Gavin的方式去理解,有了足够的花园土壤,即使上面种出些杂果,死树,也无管紧要。重要的是这片土壤还可以有足够的养分供养新的伟大应用。
第6章 结束语
我们无法承担一个失败的按层级结构设计的火箭系统,任何的差错都会让我们失去一切。
我们需要一个土壤,让创新在这片土壤上自由成长。现在这片土壤养分不够了,我们需要对其进行扩容,将比特币区块链打造成一个花园。
谢谢阅读。
如果您觉得文章对您有用,欢迎打赏我一点比特币,以鼓励我继续写下去。
作者:tan90d
稿源:巴比特资讯
来源链接:https://www.8btc.com/article/79774
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。