区块链区块链深度观察互联网产品思考

Vitalik Buterin:去中心化的意义

2018-05-15  本文已影响12人  链闻ChainNews

「去中心化」是加密经济学领域最常用词汇之一,通常被认为是区块链的整体存在理由 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 时常导致政治中心化 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,让架构去中心化 architectural decentralization 变得更加困难,但也并非不可能——看看去中心化共识网络已经如何被证明可行,但要比维护 BitTorrent 更难。逻辑中心化 logical centralization 也让政治去中心化 political decentralization 更加困难——在逻辑中心化系统,通过简单地同意「活着,让它存活」(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% 的币由一个交易所持有。

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

至关重要的是,拥有 [多方竞争执行 (https://www.reddit.com/r/ethereum/comments/3pdskt/how_many_ethereum_implementations_are_there/)。

协议升级 背后的 技术考量知识必须民主化,这样更多的人就可以舒适地参与研究讨论,批判那些明显不好的协议变更。

核心开发者和研究者应该分别受雇于多家公司或组织(或者,他们中的许多人可以是志愿者)。

挖矿算法应以 最小化中心化风险 的方式进行设计。

理想情况下,我们使用 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% 的比特币网络算力协调足够良好,并出现在同一个会议上时,不协调选择模型是切实可行的吗?

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

以某种方式设计协议,以减少了以下动机——验证者 / 矿工参与一对一「特殊关系」,中心化中继网络,以及其他类似超级协议机制。

清晰规范:关于协议应具备的基本属性,以及哪些事情不该做,或者至少应该在非常极端的情况下才能做。

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


文章来源:链闻ChainNews

作者:Vitalik Buterin

编译:liao

上一篇 下一篇

猜你喜欢

热点阅读