中本聪关于多客户端的想法被证明是正确的吗?区块链技术领域十年的发展经验收集了大量的数据,我们可以用这些数据进行分析,在存在分歧的地方达到共识。
图片来源:pixabay
一个重要的分歧是对多客户端的看法。在比特币领域,Blockstream曾设法让矿工签署一份文件,该文件规定矿工只能运行Bitcoin Core。
目前尚不清楚他们究竟为什么选择这样做,但以太坊采取了不同的方法,从一开始就推出了多个客户端,最终形成了Geth和Parity的双头垄断格局。现在可以说,双头垄断运行也并不是很好,目前Parity正处于被移交给“社区”的过程。
为什么运行不好?原因有很多,但最主要的原因可能是由于自然激励。例如,如果你为Geth工作,你自然希望矿工、企业和每个用户都运行Geth;如果你为Parity工作,你也希望大家都选择Parity。让我们抽象地称之“我的节点”(Mynode)或“你的节点”(yournode)。
在一开始,“我的节点”和“你的节点”有相同的目标,因此它们是朋友,但如果“我的节点”出现一个漏洞,你可能会指出这是“我的节点”的错误,因此人们应该使用“你的节点”。
这听起来像是在陈述事实,但是“我的节点”和开发人员可能不太乐意“你的节点”这么说,所以他们可能会指出关于“你的节点”的问题。
一开始,虽然我们为不同的客户端工作,但代码/项目基本上是相同的。然而随着时间的推移,我们从最初的一个团队逐渐发展成两个几乎没有交集的团队。
这就是竞争的本质,两个客户端竞争的最终目的是资金。这种竞争在某种程序上是间接地,但有时也相当直接。如果“你的客户端”被认为是更好的,那么你就会有更多的节点和用户等,然后就是更多的代码通过,并最终获得更多的资金。
竞争有两种方法。通过竞争你变得更快、更高、更强,在某种程度上忽略了竞争。或者打个比方,为了逃避熊你拼命奔跑,你不必跑得比熊快,你只要跑得比别人快就行了。
显然,我们都喜欢那些通过竞争变得更高、更快、更强的人,但他们不一定是最终取得胜利的人。那些被称为“绊脚石”的人,也就是那些向他们身后即将超过他们的人投掷障碍物的人,反而可能会成为赢家。
因此,从逻辑上可以得出这样一个结论:在某些情况下,尽量减少竞争远胜于促进竞争。
协调问题
如果有人愿意的话,就有可能把每件事情和每一个设计都转化为一种促进协调或更有效地组织的能力。
思想可能是最强大的协调工具,因此它可以站在权力、金钱、甚至军队之上。它受制于这样一条格言:能生存下来的不是最强大或最聪明的人,而是最能适应变化的人。
一个协调的想法和适应变化的需要之间的矛盾可能是许多问题的一个很好的借口。习惯是思想的表现。它很难改变,因为它能自动协调问题:比如你起床后要做的第一件事是什么。时间非常有限,你当然不想每天早上花太多时间来决定是否吃早餐、跑步、刷牙或其他事情。
如果习惯正在形成,那么要真正养成它就会遇到阻力,因为如果你一直在改变事情,那么你就不会通过习惯来自动地做出很多决定。同样的道理,一旦你养成了跑步的习惯,如果你觉得不舒服而决定不去跑步,你就会遇到阻力。
说这么多的目的是为了指出为什么有两个团队不一定会更好,因为他们不一定站在同一立场上,因此可能会出现协调问题,最终导致两个团队的分裂。
思想的冗余
两个团队在同样的事情会导致效率低下,但这可能是中本十年前发表这一评论时最不担心的:
“我不认为比特币的第二个兼容实现会是个好主意。这种设计很大程度上依赖于所有节点在锁定步骤中获得完全相同的结果,因此第二种实现将对网络构成威胁。”
这是一句很有力度的话,从目前的经验来看,这似乎是一个很好的理由,因为每次当同时存在两个杰出的团队时,都会出现区块链分裂或诸如此类的事情。
这是因为“我的节点”的开发人员和“你的节点”的开发人员可能对要执行什么代码有不同的想法。因此,最终会产生一些争论,因为双方都想用自己的方式做事,导致由于没有良好的决策机制而出现协调的崩溃。
因此层次结构很重要。如果两个团队在一个管理层下运行,管理层可以介入,那么两个团队可能比一个团队更好,但是如果没有人来做最后的决定,那么这两个团队在解决协调问题上花费的时间将比在建设上花费的时间多得多。
然而,这违背了应该有两个或多个客户端,这样就不会有人指挥或控制网络的想法。但经验却表明,这一建议过于天真,而现实情况表明表明事实上恰恰相反。事实上,无论是在客户端内部还是在客户端之间,都可能缺乏一个有助于解决协调需求与自治愿望之间问题的最终结论,或者说去中心化决策,这是一个非常古老的问题。
对于多客户端来说,最好的证明可能也是最好的论据。也就是说,如果一个客户端有缺陷而另一个没有,那么网络仍然可以继续运行。
这忽略了一个更复杂的事实:为什么一个客户端一开始就有漏洞,而另一个没有。这是不是因为资源分配不均,如果没有这些资源,是否就不会有这样的漏洞呢?会不会是“你的节点”很高兴让“我的节点”继续运行这个漏洞,即使他们可能知道这个漏洞?如果所有资源在集中在一个团队中,是否就可以更快地修复漏洞 ?假设需要跨客户端进行决策,如果是一个团队而不是两个团队,是否会更快地达成共识?
具体情况不同,答案很可能也不同。但通常情况下,多个客户端转换为多个网络显然是这样。
哈耶克之路
加密领域有它的理论基础,可以说它运行在哈耶克“货币的非国家化”(denationalization of money)思想之上。思想是普遍的、抽象的,因此正通过经验充实起来。
在哈耶克那个时代,甚至连电脑都不普及,所以他设想,可能会有一些中心化的公司以竞争的方式发行私有市场货币,这种竞争倾向于保持资金价值相对稳定,即今天你可以用一个单位的货币购买一个苹果,一个世纪后你仍然可以用这么多购买一个苹果,不多也不少。
比特币在复杂的设计中有一个非常具体的货币政策,它揭示了大量关于货币本质的信息,但是中本聪指出,如果人们想要域名服务之类的东西,他们应该创建自己的网络。
所以我们现在有了所有这些不同的网络,它们做着所有这些不同的事情并受到市场判断的影响。这意味着去中心化更多的是不同项目之间的竞争,而不是项目内部的竞争。
从这一点可以很清楚地看出,为什么中本聪认为可扩容性根本不是问题,即使它转换为数据中心节点也是如此。对他来说,这不是问题,因为他认为好的管理不一定来自网络内部,而是来自网络之间的竞争。
扩容经济自然会让他认为网络本身会变得相当中心化,“比特币的核心设计在其整个生命周期中都是一成不变的”这句话表明他显然认为在同一个网络上不能有两个参数不同的节点,所以不可能有竞争。
相反,你会有一个由某些激励机制强制执行的设计,即使某些组件(如开发人员、矿工或知名企业)变得中心化化,这些激励机制也会继续强制执行。而网络内部的去中心化则可以检验这些不同的组成部分是否能够协同起来对付用户。
如果不是出现来自网络外部的恶意或不当执行,而是有“更好”的发展,则这些组成部分之间的不同利益会产生摩擦和分裂,从而通过设计强制实现最终的去中心化:多个网络。
这种野蛮的分裂在很大程度上忽略了这种竞争对“母亲”(母网络)的影响。我们认为这基本上是一场残酷的巨人之战,一场市场力量之争,它为那句“能生存下来的不是最强大或最聪明的人,而是最能适应变化的人”的格言增加了活力。
因此,你会认为这项分析所提出的是这样一种观点:当饥饿的婴儿应该吃蛋糕时,如果他们的父母太忙无法跟上节奏,他们就应该完全不管婴儿。就像某母网络因管理不善而不顾其子网络的发展一样。
这和罗斯卢布(Rubble)和伊朗里亚尔(Rial)暴跌、目前黎巴嫩的金融崩溃、希腊和底特律的破产、上个世纪美国的大萧条,以及英国央行(Bank of England)在加入欧洲汇市机制后与破产一步之遥等情况非常相似。
这就是事情的现状,它们是如何被提议的不再重要。相反,经验告诉我们,所提议的东西有此不同,可能是因为习惯不同。
从经验看来,我们选择两个网络。当BCH从比特币中分叉出来时,它从最低的50美元一路上涨到5000美元的高点。比特币不是从2000美元跌到200美元,而是上涨到了20000美元。当以太坊疯狂上涨时,比特币上涨更厉害。当ETC上升时,以太坊的走势呈抛物线状。
因此,并不是如果一种情况发生,就会发生瞬间的转变。相反,似乎是竞争力量的逐步发挥让不同的利益方得到满足,从而增加了所有利益方的好处。这与巨人在燃烧的房屋上战争相反,因为也许这些巨人并不能退出战争。
例如,如果我们把卢布比喻为烧毁了该地区所有的房屋,你就会迫使当地政府通过制裁或任何机制让其贬值。在黎巴嫩这案例中,政府只是偷偷了老百姓的钱。
这里的“母亲”没有选择,没有人问她们,甚至没有人跟她们说话。但在加密领域,他们可以选择忽略某些东西,或者稍微多样化,或者,甚至在所有资产持有人的共同决定下,对符合所有资产持有人利益的事件做出反应。
因此,与国家之间的货币竞争(其反馈并不是完全去中心化的)相比,不同项目之间的竞争就显得过于温和了。
通过这一分析,我们得出这样的结论:加密项目需要以适应市场反馈/自治的方式进行协调,这可能表明,衡量一个项目是否真正成功,关键是看它能否成功地在中心化和去中心化中间找到最佳的平衡。