“去中心化”被视为区块链存在的核心意义,但它也许是定义最不明确的一个词。
我们花费了数千小时的时间,耗费了上亿美元的哈希算力,就是为了实现网络的去中心化。当我们讨论某个区块链网络好不好时,只需简单说一句“这个不是去中心化的”,似乎就能轻松赢得争论。
但是实际上,很多人对“去中心化”这个词的真正意义并没有那么了解。
经常有人拿下面这组图来解释去中心化,但我想说,这张图完全没用。
image在软件世界里,可以用三个维度来判断“中心化”和“去中心化”。
1
去中心化的三个维度
架构层:一个系统由多少台计算机组成?在系统运行时,能够承受多少台计算机同时崩溃,而系统不受影响?
政治层:在这个系统中,有多少个人或组织拥有计算机的最终控制权?
逻辑层:这个系统的界面和数据结构所呈现出来的,更像一台完整的单一设备,还是更像一个由无数不固定的单位组成的集群?简单来说:如果把一个系统分成两部分,每部分都包含供应商和用户,那么这两部分能单独作为独立系统运行下去吗?
把这三个维度画在一张表里,可能会更清楚:
image需要说明的是,这些维度现在的排放位置可能还比较粗糙,也存在很多争议,但我们仍然可以看一些例子,来帮助我们更好的理解这三个维度。
公司:传统公司在政治层、架构层、逻辑层上都是中心化的(只有一个CEO、一个总部、并且不能把它分成两半)。
法律:现代法律体系分为大陆法和普通法,大陆法依赖于一个中心化的立法机构制定,而普通法是由许多法官依靠先例来制定的。由于现在很多法院享有自由立法权,因此大陆法有一小部分是去中心化的,对比大陆法,普通法的去中心化程度更高。但在逻辑上,两者都是中心化的(法律就是法律)。
语言:语言在逻辑上是去中心化的,Alice和Bob所讲的英语,不需要和Amy与Tony讲的英语一致。没有任何一种语言的存在需要中心化的基础设施或机构做支撑,同时英语的语法规则也不是由某个人创造和掌控的。
BitTorrent网络:和英语一样,BitTorrent在逻辑上也是去中心化的,内容分发网络也是这样,但它们都受某家公司的控制。
区块链:区块链在三个维度上都是去中心化的,因为在政治层,没有任何单一个体来掌控它;在架构上,没有一个统一的服务器;在逻辑上,每个网络中都有一个统一的共识协议,系统的整体行为表现又像一台单独的计算机。
看过英文版区块链介绍资料的老铁可能会说,在英语中,每当说到区块链的优势时,很多人都会说它是“one centra database(一个中央数据库)”,区块链不是去中心化的吗?为什么又说它是中央的数据库呢?
其实不然,“中央数据库”的“中心化”是逻辑上的中心化。在多数情况下,逻辑上的中心化其实是比较好的选择。当然也有人主张,逻辑上也要尽可能地去中心化,因为逻辑层去中心化的系统,在网络连接较差的地区,能运行的更好。
2
为什么需要去中心化
接下来的问题是,我们为什么需要去中心化?它有什么作用呢?主要有三个方面的原因:
-
容错性较强:去中心化的系统不太可能因为某个意外故障而停止运行,因为它们依赖于许多分散化的组件运行,容错能力更强。
-
抗攻击性较好:从经济意义上来说,攻击去中心化系统的成本比中心化系统的成本要高得多,这就好比你摧毁一座房子和摧毁一座城市的差别。
-
抗合谋性较好:去中心化系统里的参与者们,为了自身利益而相互串通勾结,是非常困难的。而传统企业和政府里的高层管理者,往往会为了自身利益,以损害公众、员工、下属的利益的方式,相互勾结。
这三点是“去中心化”系统非常重要的优势和特性,让我们来逐一详细的了解一下。
容错性
容错性的核心概念其实很简单。一台计算机出现故障的概率和十台中的五台出现故障的概率相比,哪个更大?显然是前者。就好比10个鸡蛋集中装在一个篮子里的风险比分开装在10个篮子里,摔碎的风险更大。所以去中心化也是分散风险的一种方式。这种概念在现实生活中得到广泛应用,如喷气发动机、备用发电机,以及医院、军事的基础设施、金融组合投资、计算机网络等。
去中心化的容错能力虽然很有效、很重要,但远没有数学模型来得有用,原因在于有“共模故障”。四个发动机同时出故障的概率确实比一台发动机出故障的概率低,但如果这四台发动机都是同一个工厂制作的,并且在制作时存在同一个缺陷,又会怎样呢?这就是共模故障。
区块链能够防止共模故障吗?****不一定,我们可以看几个例子
-
区块链上所有的节点都在同一个客户端软件中运行,每个软件都不是100%完美的,都可能存在bug。
-
供区块链节点运行的客户端软件,是人为开发的,开发团队中可能存在相互勾结串联,行贪腐之事。
-
在以“工作量证明”为共识机制的区块链中,70%的矿工是在同一个城市,可能存在政府为了国家安全而对矿场进行管制的风险。
-
大多数挖矿设备都是由同一家公司生产的,这家公司可能会为了自身利益,被贿赂或被威胁,在挖矿设备上做个手脚,使得这些挖矿设备可以随意被关停。
-
在以“权益证明”为共识机制的区块链中,可能70%的币由同一家交易所持有。
很显然,将上面这些问题最小化,才能保证去中心化系统的容错性。
但怎么才能将这些问题最小化呢?****下面有一些建议
-
尽可能地保持多方竞争关系,协议升级必须是民主化的,这样才能让更多的人参与研究、讨论和改进协议。
-
核心开发者和研究人员应该由多个公司和组织的雇员组成(或者,他们中的一些人可以是志愿者)。
-
挖矿算法应该以将中心化风险降到最低程度的思路来设计。
-
理想情况下,“权益证明”机制可以摆脱硬件设备中心化的风险。(当然,权益证明也会带来新的风险)
-
值得注意的是,初级容错能力关注的往往是架构层面的去中心化,但当考虑一个系统长远发展时的容错能力,政治层面的去中心化更为重要。
抗攻击性
在某些纯经济模型中,你会发现去中心化根本不重要。如果你创建一个协议,协议规定“一旦发生51%攻击,验证者就会损失5000万美元”,那么验证者是被一家公司控制还是一百家公司控制,就无关紧要了。5000万美元是保证这个协议安全的边际成本。
但如果在一个“富经济模型”中,尤其是这个模型存在威胁的可能性(或者说针对节点的目标DOS攻击),去中心化就变得非常重要。如果你用一个人的生命安全来威胁他,5000万美元对这个人来说就不再重要了,你可以很容易的勒索走5000万美元。但如果是10个人分散持有5000万美元的话,你要想获得这笔钱,就必须分别同时威胁勒索这10个人,风险也就翻了10倍。
但在现实世界中,有一个特点,就是大部分情况下,攻击和防御并不对等,攻击者往往更有力。比如一栋造价1000万美元的大楼,可能只需要10万美元就能把它摧毁(费率是1%),摧毁100万美元的大楼则需要3万美元(费率是3%),再往下,造价越低的大楼,摧毁的费率会越高。
这说明什么?
首先,权益证明比工作量证明更优越,因为在PoW机制下,挖矿的硬件很容易被监测、掌控和攻击。其次,区块链开发团队分布的越广泛(包括地理位置的分布),系统就越安全。最后,在设计共识协议时,经济模型和容错模型都需要考虑进去。
抗合谋性
最后,我们终于可以讨论三个当中最复杂,听起来也最别扭的的一个了:抗合谋性。合谋这个词本身就很难定义,简单点解释,合谋就是大部分诚实的人“不喜欢的合作方式”。在很多情况下,当一部分人能够完美的协调合作,而另一部分人不能时,情况就变得危险了。
比如,反垄断法就是一个例子,为了防止市场参与者联合起来,实施垄断,损害消费者和社会福利,反垄断法就故意设置障碍以阻止他们。
在区块链中,共识安全背后的数学和经济模型也依赖这种“非协调选择模型”,换句话说,就是避免节点之间相互协调合作,也可以说它是建立在每个节点都能独立做决定的假设之上的。
区块链的拥护者们都认为区块链很安全,因为没有人能够随心所欲地改变协议规则,但如果区块链软件和协议的开发团队都来自同一个公司,在同一个办公大楼上班,那么区块链就没那么安全了。因此,如果一个区块链网络更分散,为之工作的人很难相互串通勾结,那它就更安全。
但这也揭示了一个根本性矛盾,很多社区,包括以太坊,都希望有一个强有力的社区精神,并能够快速协调工作。所以我们要怎样才能在拥有良好的协调关系下,又能够防止开发者们相互合谋,实施欺诈呢?
要解决这个问题,有三种途径
-
别阻止协调合作,试着用协议规则来阻止勾结合谋。这也是以太坊Casper 机制设计的指导思想。但只有这一点是不够的,因为经济学并不能完全解决去中心化的其它两类问题。
-
试着找到一个平衡点,使得合作能够有利于协议的发展,而同时又不会演变成合谋关系。这种方法很难明确设计,但它经常会有一些“小意外”产生。举个例子,比特币社区的核心开发者通常说英语,而矿工通常说中文,这可以说是一个“惊喜的意外”了,因为它无意中创造了“两院制”的治理机制。因为中文社区和英文社区沟通困难,减少了他们相互勾结的可能性,也减少了共模故障的风险。
-
建立一个区分“有益的合作”和“有害的合作”的标准,然后想办法让前者变得更容易,后者更难实现。
这种方法包含一个社会学挑战,它需要做到以下几点:
制定一个干预措施,提高参与者对整个区块链社区忠诚度,减少参与者彼此间的忠诚度;
促进不同市场的参与者在同样的语境下进行沟通,这样就能减少同一阶层的参与者联合起来对抗其它阶层的可能性;
在设计协议时,减少验证者和矿工形成“一对一关系”的可能性,或者避免形成中心化的中继网络和其它类似的超级协议机制;
协议应该明确规定哪些事情不能做,哪些事情只有在非常极端的情况下才能做。
抗合谋的去中心化可能是最难实现的,因此我们要做一些权衡取舍,或许最好的方法是依赖一个能够保证去中心化的群体(即协议上的用户)。
本文来源:万向区块链
本文翻译自Vitalik Buterin的博文《The Meaning of Decentralization》
课程推荐
课程主题:揭开神秘的数字货币交易——2节课建立一个数字货币交易所
识别下图二维码添加微信,回复“006”即可报名。
imageHiBlock区块链社区更多活动点击“阅读原文”查看
网友评论