Vitalik Buterin:去中心化的意义


“去中心化”是加密经济学领域最常用词汇之一,通常被认为是区块链的整体存在理由(raison d’être),但它也是被定义得最不佳的词之一。花费数千小时的研究,价值数十亿美元的哈希算力,唯一目的在于试图达成去中心化,并加以保护和改善,当讨论变得富有敌对性,对于一个协议(或协议延伸)的倡导者而言,一个极为常见的宣称是,此协议的相反提案是“中心化的”,以此作为最终压倒性论点。

但是,对于这个词的真正含义,人们常常会感到困惑。举例来说,考虑以下图示完全没有帮助,但不幸的是,这个图太常见:

现在,考虑一下 Quora 上对这个问题的两个回答:“分布式和去中心化的区别”。第一个回答本质上是对以上图示的机械重复;而第二个则是完全不同的说法:“分布式意味着,不是所有交易处理都在同一处完成(not all the processing of the transactions is done in the same place)”,“去中心化意味着,没有一个单一实体可以控制所有处理过程(not one single entity has control over all the processing)”。在Ethereum stack exchange 上的一个回答,给出了一张非常相似的图,但“去中心化”和“分布式”交换了位置!很明显,一个需作的澄清是其次序。

去中心化的三种类型

当人们讨论软件去中心化时,实际上他们可能在讨论三个独立的中心化/去中心化坐标轴。然而在某些情况下,很难看出如何可有一个而无另外一个,总的来说,它们彼此独立。坐标轴如下:

  • 架构(Architectural)(中心化或去中心化)——一个系统由多少物理计算机组成?可容忍其中多少计算机在任何时候崩溃?
  • 政治(中心化或去中心化)——有多少个人或组织最终控制组成系统的计算机?
  • 逻辑(中心化或去中心化)——系统呈现和维护的接口(interface)和数据结构,看起来更像是一个单一巨大体(object),还是一个无定形集群?一个简单的启发法是:如果把系统分成两半,两者同时含有提供者和用户,那么这两者将继续作为独立单位进行完全操作吗?

我们可尝试把这三个维度放入一个图表:

值得注意的是,很多这样的放置都是非常粗糙且高度有争议。但是让我们来尝试看看其中任意一个:

  • 传统公司是政治中心化(一个CEO),架构中心化(一个总部),逻辑中心化(无法真正将其拆成两半)。
  • 民法法系(Civil law),依赖于一个中心化立法机构,普通法法系则由许多个人法官所作先例构成。尽管许多法院有很大自由裁量权,导致民法法系仍有一些架构上的去中心化,但是普通法法系架构去中心化程度更甚。两者在逻辑上都是中心化的(“the law is the law 法律即法律”)。
  • 语言在逻辑上是去中心化的;Alice 与 Bob 之间所讲英语,和 Charlie 与 David 之间所讲英语,一点也不需一致。没有一种语言的存在需要中心化基础设施,英语语法规则非由任何单一个人创造或控制(世界语最初由 Ludwig Zamenhof 发明,现在其功能,更像一种生活化语言,在无任何权威(authority)之下,逐渐进化)。
  • 类似英语,BitTorrent 是逻辑去中心化。内容分发网络同样类似,但由一单一公司控制。
  • 区块链是政治去中心化(没有单体[one]控制它们),架构去中心化(无基础设施中心点故障),但逻辑中心化(有一个得到普遍共识的状态,系统行为就像一台单一计算机)。

许多次,当人们谈到区块链的优点,他们描述了拥有“一个中央数据库”所带来的方便好处;其中心化是逻辑中心化,这是一种在很多情况下都可以说是好的中心化(尽管来自 IPFS 的 Juan Benet 也将推动逻辑尽可能去中心化,因为逻辑去中心化系统往往擅于留存网络分区[surviving network partitions],在连通性较差的世界各区运行得也比较好,等;参见 Scuttlebot 此文,明确提倡逻辑去中心化)。

架构中心化时常导致政治中心化(Architectural centralization often leads to political centralization),尽管这非必定——在一个正式的民主政体中,政治家们会在一个物理治理议院会面并举行投票,但最后这个议院的维护者们最后不会获取任何大量的决策权力( the maintainers of this chamber do not end up deriving any substantial amount of power over decision-making as a result)。在计算机化系统中,如果有一个在线社区为了方便,使用一个中心化论坛,就会发生架构去中心化,而非政治去中心化(In computerized systems, architectural but not political decentralization might happen if there is an online community which uses a centralized forum for convenience),但是在这个论坛中,存在一个得到广泛共识的社会合约----如果论坛所有者恶意行动,其他所有人都将会转移至另外论坛---这另外论坛因反对其他论坛的审查制度而形成,但在实践中,却很可能拥有同样性质。

逻辑中心化,让架构去中心化变得更加困难(Logical centralization makes architectural decentralization harder),但也并非不可能——看看去中心化共识网络已经如何被证明可行,但要比维护 BitTorrent 更难。逻辑中心化(logical centralization)也让政治去中心化(political decentralization)更加困难——在逻辑中心化系统,通过简单地同意“live and let live” 来解决争论就更困难了( in logically centralized systems, it’s harder to resolve contention by simply agreeing to “live and let live”.)。

去中心化存在的三个理由

接下来的问题是,为什么去中心化是首要有用的?以下是几点理由:

  • 容错——去中心化系统(decentralized systems)不太可能意外故障(fail accidentally ),因为它们依赖于许多不太可能意外故障的独立组件(many separate components that are not likely )。
  • 抗攻击——对去中心化系统进行攻击、破坏或操控成本更高,因为它们缺乏敏感中心点,如果是敏感中心点,其攻击成本比周围系统经济规模低得多。
  • 抗勾结——去中心化系统的参与者,更难以损人利己的方式相互勾结;而企业和政府的领导层却向来以利于自身,损害与其不太“对头”的公民、客户、雇员和公众利益的方式,相互勾结。

以上三点重要且合理,但是,一旦你开始以以上三个单独视点思考协议决策时,这所有三点都导向一些有趣和不同的结论。让我们试着把以上三点逐一展开。

关于容错,其核心论点很简单。不太可能发生的是:一台计算机故障,或十台计算机中的五台都同时故障?这个论点是毫无争议的,且适用于真实生活中的很多情况,包括喷气发动机,备用发电机,特别是在医院,军事基础设施,多样化金融投资组合等处,对了,还有计算机网络。

然而,这种去中心化虽然仍然有效且非常重要,但与其说其是一种万灵药,不如说是一个稚拙的数学模型有时所能预测。原因是共同模式故障(common mode failure)。当然,比起一台喷气发动机,四台喷气发动机组合发生故障的可能性较低,但如果所有这四台发动机都是由同一家工厂所制造,且这四台发动机的一个缺陷,都是由同一名异常员工所引入呢?

现在的区块链是否能够抵御共同模式故障呢?不一定。考虑以下场景:

  • 一个区块链的所有节点都运行相同的客户端软件,而这个客户端软件有一个BUG。
  • 一个区块链的所有节点都运行相同的客户端软件,而这个软件的开发团队出现了社交腐化(socially corrupted)。
  • 提出协议升级提议的研究团队出现了社交腐化。
  • 在一个POW区块链中,70%的矿工都在同一个国家,这个国家的政府为了国家安全,决定接管所有矿场。
  • 大多数挖矿软件都由同一家公司生产,而这家公司被贿赂或被迫开后门,使相应挖矿硬件可被随意关闭。
  • 在一个POS区块链中,70%的币由一个交易所持有。

关于容错去中心化的整体观点,将会着眼于所有以上这些方面,看看它们可如何最小化。一些自然的结论是显而易见的:

  • 至关重要的是,拥有多方竞争执行
  • 协议升级背后技术考量知识必须民主化,这样更多的人就可以舒适地参与研究讨论,批判那些明显不好的协议变更。
  • 核心开发者和研究者应该分别受雇于多家公司或组织(或者,他们中的许多人可以是志愿者)。
  • 挖矿算法应以最小化中心化风险的方式进行设计。
  • 理想情况下,我们使用POS,以求完全摆脱硬件中心化风险(我们也应谨慎对待POS带来的新风险)。

请注意,以上稚拙形式的容错要求主要关注架构去中心化,一旦你开始考虑社区(管理协议的持续发展)的容错性,那么政治去中心化也很重要。

现在,让我们来看看抗攻击。在一些纯经济模型中,你有时会得到这样的结果:去中心化并不重要。如果你创建了一个协议,在这个协议中,如果发生51%攻击,验证者将损失5000万美元,那么,验证者由一家公司还是由100家公司控制,这不重要——5000万美元的经济安全保证金(economic security margin)就是5000万美元的经济安全保证金。实际上,其中有深刻博弈论推理过程,即为什么中心化甚至可以最大化这种经济安全的概念(现有区块链的交易选择模型反映了这一观点,因为通过矿工/区块提出者将交易打包到区块,实际上是一个非常迅速的轮换独裁)。

然而,一旦你采用了一个更丰富的经济模型,特别是如果这个经济模型承认胁迫可能性(或温和一点,如针对节点的目标 DOS 攻击),去中心化就变得更加重要。如果你用死亡威胁一个人,那么对这些人而言,5000 万美元就突然无关紧要。但如果这 5000 万美元分布于 10 个人之间,那么你就必须威胁到十倍的人,并且要同时做到这一切。通常来说,在许多种情况下,现代世界的一个特征是有利于攻击者的攻击/防御不对称——一个建筑成本1000万美元的建筑,可能破坏成本不到10万美元,但是攻击者的杆杠作用往往是次线性的(sublinear):如果一座造价 1000万美元的建筑要花费10万美元去摧毁,那么一座造价100万美元的建筑,可能要花上3万美元才能摧毁。更小型的建筑给出更高的比率。

这个推理导向哪里呢?首先,相比POW,它更有力地推动了对POS的支持,因为计算机硬件易于检测、管理或攻击,而币则更容易隐藏(由于其他原因,POS也具有很强的抗攻击力)。其次,这有利于拥有分布广泛的开发团队,包括地理分布度。第三,这意味着,在设计共识协议时,需要同时考虑经济模型和容错模型。

最终,我们可以讨论以上三点中可能最复杂的一点,抗勾结。勾结很难定义;或许唯一真正合理的定义它的方式是,简单地说,勾结是“我们所不喜欢的协调方式(coordination that we don’t like)”。现实生活中,很多情况下,每个人之间拥有完美协调,这是理想的,但一个子组(sub-group)能够协调,另一些却不能,这是很危险的。

一个简单的例子是反信任法(antitrust law )——一个慎重的监管门槛(regulatory barriers),其目的在于,让位于市场一边的参与者更难聚集起来,更难行垄断者之事,以市场另一边者的利益和一般社会福利为代价而获得超额利润。另一个例子是在美国总统候选人和超级PAC之间的反积极协调规则,尽管这些规则在实践中被证明是很难执行的。一个更小的例子是一些象棋比赛规则,防止两名选手为了提高分数而频繁彼此比赛。无论你看向哪里,试图在复杂机构中预防非愿协调(undesired coordination),这样的尝试无处不在。

在区块链协议的情况下,共识安全背后的数学和经济推理,通常依赖于不协调选择模型(uncoordinated choice model),或依赖于这样的假设---游戏由许多独立决策的小行为者组成。在一个POW系统中,如果任何一个行为者获得超过⅓的算力,他们就可以通过私自挖矿获得超额利润。然而,我们真的可以说,当90%的比特币网络算力协调足够良好,并出现在同一个会议上时,不协调选择模型是切实可行的吗?

区块链拥护者也强调一点,建立于区块链(blockchains)上更安全,因为他们不能在任何时候突发奇想任意改变规则,但如果软件和协议开发者都服务于同一家公司,同属一个家族,坐于同一间屋子,那么任意改变规则的情况就会变得难以防卫。要点是这些系统不应该像自私自利的集权垄断体那样行事。因此,你可以肯定地解释说,如果区块链(blockchains)更加不协调( more discoordinated),就会更加安全。

然而,这显示了一个根本矛盾。许多社区,包括以太坊,通常因为拥有一个强大的社区精神,能够在执行、发布和激活一个硬分叉上进行快速协调,在六天内解决协议的拒绝服务问题,而受到称赞。但我们可如何培育和改善这种良好协调,同时防止“糟糕协调”,比如矿工试图通过反复的协调51%攻击,来欺诈其他任何人?

回答这个问题,有三个方式:

  • 不要费心去缓解非愿协调(undesired coordinatio);相反地,要尝试构建能够抵制它的协议。
  • 尝试寻找一种幸福媒介(happy medium),允许为协议进化和前进进行足够协调,但还不足以激活攻击。
  • 尝试区分有益协调和有害协调,让前者容易,让后者难。

第一个方式占了 Casper 设计哲学的很大一部分。然而,它本身是不足够的,仅仅依靠经济学不能解决对去中心化的其他两类担忧。

第二个方法很难进行明确设计,特别是从长远来看,但它经常意外地发生。例如,比特币的核心开发人员一般说英语,而矿工一般说中文,这可以被视为一个幸福的意外,因为它创造了一种“两院制”治理,其使协调变得更加困难,附加好处是减少共同模式故障风险---英文和中文社区会因距离和沟通困难而至少某种程度上有各自思考,因此不太可能同时犯同样错误。

第三个方式是一个社会学挑战,这大于其他任何事情,在这方面的的解决方法可能包括:

  • 社会干预措施,即试图提升参与者对该区块链社区整体的忠诚度,以替代(substitute)或抑制市场彼方参与者直接对彼此忠诚的可能性(substitute or discourage the possibility of the players on one side of a market becoming directly loyal to each other)。
  • 在相同语境下,促进不同“市场各方”之间的沟通,以降低这样的可能性---验证者,或开发者,或矿工,开始将自己归类为这样一种人---必须协调(coordinate)起来,以对抗其他类别的人,保护自己的利益。
  • 以某种方式设计协议,以减少以下动机---验证者 / 矿工参与一对一“特殊关系”(one-to-one “special relationships”),中心化中继网络,以及其他类似超级协议机制。
  • 清晰规范:关于协议应具备的基本属性,以及哪些事情不该做,或者至少应该在非常极端的情况下才能做。

第三种类型的去中心化,作为非愿协调规避(undesired-coordination-avoidance)的去中心化,可能是最难实现的,权衡折中不可避免。也许,最好的解决方案可能是重度依赖于可保证相当去中心化的一个群体:协议用户。

原文:https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274
作者:Vitalik Buterin
编译 & 校对:方冉,吴婧 & 方冉 @ 币未来 biweilai.com