位置:首页 > 科技公司 >

V神:去中心化的意义| 熊市再读

作者: | 发布时间:2018-12-23 17

为什么去中心化会非常有用?对于这个问题的答案,通常会有以下几个观点:

1、容错:去中心化系统很少会因为某个局部故障而导致整个系统崩溃,因为它依赖于很多独立工作的组件;

2、阻止攻击:想要攻击或操纵去中心系统的成本更高,因为他们基本上没有敏感薄弱的“中心弱点”,而中心化系统的攻击成本则要低得多;

3、抵制合谋——去中心化系统参与者们很难合谋勾结在一起,而对于传统企业和政府领导者而言,他们通常会为了自己的利益互相勾结,最终损害的是公民、客户、员工和广大人民。

作者:Vitalik Buterin

编译:shark

如果你没有听说过“去中心化”这个词,在币圈和链圈肯定属于鄙视链的最底层,毕竟这个词是加密经济领域里使用最频繁的一个词了。不仅如此,“去中心化”也被认为是区块链存在的核心原因。

但同时,这个词又会让人觉得丈二和尚摸不着头脑,毕竟到目前为止,你很难给这词找到一个明确的定义。在区块链行业里,不少人投入了数千小时的研究,甚至是数十亿美元的算力,目的只是为了实现“去中心化”,然后再不断保护它、优化它。每次当人们的争论遇到瓶颈,或是反对某个协议(以及协议扩展)的时候,只需要称对方是“中心化”,就可以直接让对方认输。

然而,如果我们想要了解“去中心化”这个词的真实意义时,往往又会带来很多问题。举个例子,让我们首先看看下面这三张图:

图一:(a)中心化(b)去中心化(c)分布式网络

现在,让我们现莱看看Quora论坛上曾经被热议的一个问题,分布式和去中心化有什么区别?实际上,这个问题有两个答案,第一个回答基本上撇开了上图中的含义,而第二个回答则提出了完全不同的主张,其中提到分布式的意思是指并不是所有交易处理都在同一个地方完成,而去中心化的意思是指没有一个独立实体可以控制所有的交易处理。与此同时,在以太坊堆栈交易所上给出的最佳答案中也出现了一个非常相似的图,只不过把两个注释“分布式”和“去中心化”交换了一下位子,所以现在有必要“去中心化”这个问题做一下澄清说明了。

 01 

三种去中心化类型

实际上,当人们谈论软件去中心化的时候,他们可能谈论的是三种不同维度的中心化/去中心化。但有趣的是,如果没有其他两个维度做参照,在某些情况下你可能很难发现其中一个就是去中心化的,而且这三种维度其实也都是彼此独立,分别包括:

1、架构性(去)中心化——比如,一个系统由多少计算机组成?当这个系统在任意一个时间点里运行时,能够忍受多少台计算机崩溃,同时还要确保系统不会受到影响?

2、政治性(去)中心化——有多少个体获组织,对于组成系统的计算机拥有最终控制员?

3、逻辑性(去)中心化——从系统设计的接口和数据结构角度来看,这种维度更像是一个单一的整体对象,或者是一个由无数个体单位所组成的数据集群?一个简单的判断方法就是:如果你把这个系统切分成两部分,而且每个部分里都包含了生产者和消费者,那么这两部分是否能够继续作为独立单元而完整地运转下去吗?

现在,我们可以尝试在一个图表中将这三个维度表现出来:

值得注意的是,上述图表中所展示的区域可能略显粗糙,而且具有很大争议。但是,如果我们可以尝试逐个分析一下,或许对于理解用这三个维度来判断(去)中心化的概念会有一定的帮助。

以传统企业为例,他们在“政治上”是中心化的(通常一家公司会有一个首席执行官)。同时,传统企业在架构上也是中心化的(通常一家公司会有一个总部办公室),而且在逻辑上仍然保持了中心化状态(也就是说,你无法把一个公司一分为二)。

以大陆法系(Civil Law)为例,大陆法系通常依赖于一个中心化的立法机构,而普通法则是由许多个体法官根据先例制定做出的。此外,虽然大陆法系也有一些架构去中心化,毕竟很多许多法院拥有很大自主立法权,而普通法的去中心化程度更高。但是,这两类法律在逻辑上都是中心化的(法律就是法律)。

以语言为例,语言在逻辑上是去中心化的。比如爱丽丝和鲍勃之间说的英语,以及查尔斯和大卫之间说的英语不需要完全一致。对于存在的语言而言,不需要任何中心化的基础设施作为支撑,而且英语的语法规则也不是由任何单一个人创造的,更不会受到哪个组织控制。当然,你可能会想到同样具有“去中心化”特征的世界语,世界语最初是由路德维希·柴门霍夫(Ludwig Zamenhof)发明的,但是现在它的功能更像是一个不断进化的生活化语言,而且不受任何权威机构控制。

和英语一样,BitTorrent在逻辑上也是去中心化的,内容分发网络也是如此,但是这里的问题在于,这些服务和产品都是由一家独立公司控制的。

从政治角度来看,区块链显然是去中心的,因为没有人、或是某个组织可以控制区块链。不仅如此,区块链在架构上也是去中心化的,首先区块链没有一个非结构中央节点,而且就算某个节点失败也不会影响整个网络。但实际情况真是如此吗?在逻辑上,你会发现区块链确实也具备中心化的特点,因为每个区块链网络都有一个共识,系统运行的行为也更像是一台独立的计算机。

实际上,当人们谈论区块链各种优势的时候,他们大多时候所阐述的理论更像是在说——拥有“一个中央数据库”反而更便捷一些,中心化是合乎逻辑的中心化,而且这种中心化在很多情况下其实都挺好的,虽然来自星际文件系统IPFS的Juan Benet会尽可能地推动去中心化,但逻辑上去中心化系统往往在网络分区上有更强的生存能力。

架构性中心化通常会导致政治中心化,当然也不是绝对的——因为即便是在民主化得环境里,政治家也需要在一些实体管理机构内召开会议、并持有或获取人民的选票,但是这种管理体系并不会影响任何大规模的决策权力。

而在计算机系统里,如果一个网上社区为了方便而使用中心化论坛,都是基于一种广泛、统一的社会契约之下的,然而一旦论坛所有者做出一些恶意行为,那么论坛上的用户就会转移到其他论坛上。

逻辑性中心化使得架构性去中心化变得更加困难,但也这种情况也并非完全无法存在——如果你看看去中心化共识如何被证明具有一定可行性,就会明白其中道理了。但是,相比于维护BitTorrent这样的文件共享系统,架构性去中心化难度可能会更大一些。逻辑性中心化也会使政治性去中心化变得更加困难——因为在逻辑性中心化的系统中,解决争端也更困难。

 02 

去中心化的三个理由

下面一个问题是,为什么去中心化首先会非常有用?对于这个问题的答案,通常会有以下几个观点:

容错——去中心化系统很少会因为某个局部故障而导致整个系统崩溃,因为它依赖于很多独立工作的组件。

阻止攻击——想要攻击或操纵去中心系统的成本更高,因为他们基本上没有敏感薄弱的“中心弱点”,而中心化系统的攻击成本则要低得多。

抵制合谋——去中心化系统参与者们很难合谋勾结在一起,而对于传统企业和政府领导者而言,他们通常会为了自己的利益互相勾结,最终损害的是公民、客户、员工和广大人民。

上述这三点原因都是非常重要且有效的,如果你仔细思考的话,所有三个论点都会导致一些有趣但不同的结论。下面,就让我们逐一展开,仔细研究一下这三点。

首先是容错,核心问题其实很简单。你觉得哪一种故障更容易出现:是十台计算机中一台计算机出现故障,还是有五台计算机同时出现故障?实际上,讨论这个问题的答案也没有什么意义,因为在许多情况下其实也适用于现实生活,包括喷气发动机、备用发电机,特别是在医院、军事基础设施、多样化金融投资组合、以及计算机网络等领域里都会面临上述类似的问题——哪一种“故障”更容易出现?

然而去中心化系统所具备的这种容错能力虽然比较有效且非常重要,但在某些情况下,它甚至不如一个简单的数学模型显得有用。这里的问题在于一个所谓“共模故障”的原因。相比于一个喷气发动机,四个喷气发动机确实更不容易出现故障,但问题是,假如这四台喷气发动机都由同一家制造厂生产的,或者是由同一个不负责任的员工加工的,那么结果又会是什么样呢?

区块链是否能够设法防止共模故障出现呢?也许可以,但也许也不行。下面再让我们考虑以下几种情况:

区块链中所有节点都运行同一种客户端软件,并且这个客户端软件已经被证明存在漏洞(bug);

区块链中所有节点都运行同一种客户端软件,并且这个客户端软件的开发团队存在互相勾结合谋的情况;

提议升级协议的研发团队存在互相勾结合谋的情况,甚至有腐败问题;

在一个基于工作量认证共识算法的区块链中,70%的矿工都来自于同一个国家,而这个国家政府以维护国家安全为理由,把所有矿场都接管了;

大多数采矿硬件设备都来自于同一家公司,而这家公司可能已经受到指使,在其推出的设备里强制部署了后门软件,导致所有加密货币挖矿硬件设备可以被随意关闭;

在一个基于权益认证共识算法的区块链中,70%的代币都是由同一个加密货币交易所持有。

另一方面,如果从“容错去中心化”这一整体观点去思考问题的话,你需要考虑到涉及相关问题的各个方面,而且这些问题需要尽可能地被减到最少。一些自然而然产生的结论也非常明显,比如:

拥有多个竞争执行是至关重要的;

对于协议升级背后的技术考量和认识,必须要做到民主化,以便让更多人能够一起参与到研究、讨论和批评活动中,特别是涉及到一些有明显的协议变化等问题时;

核心开发人员和研究人员必须要来自多个不同公司或组织(或者,至少,其中大多数都是志愿者);

挖矿算法的设计思路,必须要遵循最低程度的中心化;

理想情况下,我们使用权益认证共识来摆脱“硬件中心化”风险(但是,我们也应该谨慎对待由于权益认证而出现的新风险)。

然而需要注意的是,当处于容错要求的初级阶段时,我们处理问题往往会侧重于架构性去中心化。不过,一旦你开始考虑更长远的系统升级和发展时的容错性,那么政治性去中心化也是非常重要的。

现在,让我们再来看看去中心化抵御攻击的能力。在一些纯粹的经济模型之中,去中心化其实并不那么重要。举个例子,如果你创建了一个协议,只要发生51%的攻击,验证者就肯定会损失5000万美元,那么此事,这个验证者是被一家公司、还是被一百家公司控制都已经不那么重要了。此时,这个“5000万美元”其实就是确保这个协议安全稳定运行的边际成本。实际上,如果从博弈论的角度来看,中心化系统甚至可以最大化这种安全边际成本的概念,而最早出现的区块链交易选择模型,其实也反映出了这一想法,因为矿工和区块提议者会将交易打包到区块链中,这也算是一种非常快速运转的中心化过程。

不过,一旦你采用了更丰富的经济模型,特别是如果这个经济模型里存在胁迫的可能(或者出现稍微温情一点的事情:比如针对节点的DoS攻击),去中心化就会变得更加重要。再举个例子,如果有坏人威胁到一个人的什么,那么上述“5000万美元”对他们来说就更加无关紧要了。但是如果把这个“5000万美元”去中心化到十个人中,那么坏人如果要威胁勒索的话,就需要勒索威胁十个人,并且还要同时完成勒索这项“工作”。一般来说,现代社会里有一个特点就是攻击防御的不对称性,而在这方面攻击者反而常更有优势。比如,一栋价值1000万美元的高层建筑,摧毁它的成本可能还不到10万美元。不过,这种防御攻击的杠杆常常是次线性的,也就是说,如果花费1000万美元的建筑能够用10万美元的成本被摧毁,而100万美元的建筑可能需要3万美元的成本被摧毁,最终,建筑成本更低的建筑可能需要更高的成本才能被摧毁。

不过,这个推理还会导致出现什么问题呢?

第一,尽管支持工作量认证,但显然权益认证机制是更加安全的,因为计算机硬件容易被监测、调节和攻击,而代币相比于硬件设备更容易被隐藏;

第二,开发区块链技术的团队可以分布在世界各地,分布的范围越广就越有利,包括地理位置分布;

第三,这也意味着在设计共识协议的时候,需要同时考虑经济模型和容错模型。

最后,让我们再来看看上述三个原因中最复杂的一个:抵制合谋。事实上,合谋这个概念本身是很难界定的,能够验证所谓“合谋”唯一真正有效的方法,就是给出一个简单的共识:合谋就是一种每个人都不喜欢的协调方式。在现实生活中的很多情况,每个人之间的完美协调其实都是理想话的,但是当某一组人可以协调,而其他人无法协调,此时就会非常危险了。

一个简单的例子是反托拉斯法——为了让市场一方的参与者更加难以走到一起,并且像垄断者一样形式,并损害另一方市场和一般社会福利来获得超额利润。反垄断法的目的,就是要在市场运行中设置监管障碍。另一个例子是反积极协调规定,主要用在美国总统候选人和超级政治行动委员会上,防止在总统候选的时候互相勾结合谋。但是这些规则在实践证明中其实是很难被执行的。还有一些更微不足道的例子,就是在某些国际象棋比赛的时候,会有一个规则,用来防止两名棋手互相和对方进行比赛来试图帮助其中一名棋手获得更多积分。所以你会发现,无论从何种角度去看,试图防止复杂系统内出现勾结合谋问题的尝试已经很多了。

在区块链协议的情况下,共识安全背后的数学和经济推理通常非常依赖于非协调选择模型,或者假设“游戏”是由许多独立作出决策的小型参与者组成的。如果任何一个“玩家”在工作量认证系统中获得超过三分之一的采矿权,他们就可以通过私自采矿获得巨大利润。但是,我们真的可以说,当90%的比特币网络的挖矿能力足够协调,这种不协调的选择模式还有存在的必要吗?

不仅如此,区块链的倡议者始终觉得区块链的结构更安全,因为它们不能随意更改规则。但如果软件和协议的开发者都服务于同一家公司、或者同属于同一个家族、甚至都在同一个办公大楼上班,又会发生些什么呢?而且,在大多数情况下,很多问题其实是很难防范的。总之,这些系统不应该像自私自利的单一垄断者那样被应用。因此,如果区块链更加不协调的话,每个人都可以提出让区块链更安全的要求。

但是,这其中还存在着一个根本性矛盾。包括以太坊在内的很多社区之所以存在,是因为它们拥有一个强大的社区精神,而且在执行、发布和激活硬分叉上具备快速协调的优势,基本上能在六天内快速完成协调实施、发布和激活硬分叉以修复协议中拒绝服务的问题。但是,我们需要思考的问题是,应该如何去培育和改善这种良好的协调关系,同时又要防范那些糟糕的协调关系,防止它们不小心演变成“互相勾结合谋” 。举个例子,假如矿工们试图通过互相合谋反复进行51%攻击的时候,我们需要作出什么样的协调反应?

对于上面这个问题,实际上有三种解决方案可以回答:

不要尝试去减少勾结合谋,而是要去构建一个能够抵制勾结合谋的协议;

尝试找到一个令人满意的媒介,让协议本身具有有充分的协调关系,继而让协议获得更好地发展前景且不会被轻易攻击;

尝试区分有益的协调和有害的协调,尽量让有益的协调更容易执行,让有害的协调更难实现。

第一种解决方案其实也是构成了以太坊Casper的设计理念,但它本身在很多方面仍然不太充分,因为仅仅依靠经济学的方式是不能解决去中心化的其他两种类型的问题;第二种解决方案则更加难以被明确的设计出来,而且从长远来看,这种解决方案也经常会发生意外。比如,比特币的核心开发人员一般说英语,而矿工一般说中文,这样导致在无意中创造出了一种类似“两院制”的治理机制,一方面它让彼此之间的勾结变得很困难,另一方面则减少了共模故障的风险,因为英语和华语社区由于距离和交流困难至少会有所分开,因此不太可能犯同样的错误。

第三种解决方案则是一个社会性的挑战,其中涉及的问题可能包括:

社会干预措施,提升参与者对整个区块链社区的忠诚度,以取代或遏制市场其他参与者对彼此直接产生影响忠诚度的可能性;

在同一背景下,促进不同市场参与者进行沟通,以减少验证者、开发人员、或是矿工开始审视自己是某一“阶层”。这样的话,他们也就不会为了保护自己对其他“阶层”的利益,而对抗其他“阶层”;

在设计协议的时候,需要减少验证者和矿工参与“一对一特殊关系”的激烈,同样也要避免出现中心化中继网络和其他类似的超级协议机制;

明确规范协议应具备的基本属性有哪些,不应该做什么类型的事情,或者哪些事情只能在非常极端的情况下才能做。

这三种类型的去中心化可能是最难实现的,因此出现一些权衡也是不可避免的。也许,最好的解决方案只能依赖于去中心化程度最高的一个群体:协议的用户。

< END >

赞赏

已推荐到看一看

你的朋友可以在“发现”-“看一看”看到你认为好看的文章。

知道了