“去中心化”这个词是在加密经济学中见到的最多的一个词之一,也是通常被视为到底是不是区块链的依据。然而这个词,也可能是被人们定义的最不恰当的一个词。数千小时的投入研究和价值数十亿美元的哈希算力都被用来试图实现去中心化,并保护和提高去中心化的程度。当人们讨论协议并变得开始激烈时,非常常见的是,一个协议(扩展协议)的支持者会声称对方的协议提案是“中心化”的,并以此作为最后击倒对方推理的论据 。
但是,“去中心化”这个词到底意味着什么,常常会有很多的混淆。比如说,下面这三个完全没有帮助,但是却太常见的三个图表:
现在,让我们来看看Quora上的问题“分布式和去中心化的区别到底在哪里?”的两个不同回答。第一个回答实际上是在机械地复述上面的图表,而第二个回答则截然不同,他说:“分布式意思是说,并非交易的所有过程都在同一个地点处理,而去中心化意思是没有任何的单一个体可以对交易的处理进行控制。”与此同时,在以太坊问答社区“Ethereum stack exchange”上最顶部答案给出了和上图非常类似的图表,只是“分布式”和“去中心化”的位子换了。显然,这个澄清和说明一下是很有必要的。
当人们在讨论软件的去中心化时,他们实际上在讨论的,是三个独立的中心化/去中心化的轴。在某些情况下很难看的清如何在没有另一个的情况下,能判定现在的这个是中心化还是去中心化的。一般来说,中心化和去中心化是互相独立的,这三个轴如下:
我们可以尝试将这三个维度都放在一张图表中说明:
请注意,这图表中很多位置的内容还有待争议,但是让我们尝试着理解一下:
很多时候,当别人在谈论区块链的优点时,他们描述的是拥有一个“中央数据库”的便利好处;中心化是逻辑的中心化,在许多情况下这种中心化可以说是好的(虽然来自IPFS的Juan Benet支持尽可能的推进逻辑上的去中心化,因为逻辑上去中心化的系统在网络分散区中更易存活下来,并且在世界上连通性差的区域也能很好的运行等,并见本文从Scuttlebot开始明确倡导逻辑的分散化)。
架构上的分散化往往导致政治上的集中,但也不一定——在正式的民主体系中,政客们在一些会晤室见面并投票,但是这个房间的维护者并不能够获得大量的决策权改变结果。在计算机化系统中,架构上而不是逻辑上的去中心化可能会发生,如果有一个在线社区为了方便而使用了一个权利集中的论坛,但是如果有一个广为接受的社会契约却遭到论坛的拥有着恶意的破坏的话,那么这个论坛里的所有的人都会离开去另外一个论坛(这个社区是由一群在其他论坛看到审查制度可能在实践中执行的一群反抗的人组成)
逻辑的中心化使得架构上的去中心化更加困难,但也不是不可能-可以看到,分散的共识网络已经被证明有用了,但却比维护BitTorrent更困难。逻辑集中化使得政治分权更加困难-在逻辑集中化系统中,更难通过简单的“活和让你活”来解决争论。
接下来这个问题是,为什么去中心化会有用?通常会有以下几个观点:
容错力 抗攻击力 防勾结串通
所有的三个论点都是重要和有效的。但是一旦当你开始考虑决定协议的时候,这三个论证都会导致一些有趣和不一样的结论。让我就一个一个的展开这些论证。
关于容错力,核心论证点很简单。什么会不太可能发生:一台计算机出现故障?还是十台计算机中有五台计算机同时出现故障?这个原理是毋庸置疑的,在现实生活中的很多情形中也可以用的到,包括喷气机发动,备用发电机,特别是在诸如医院,军事基地的基础设施,投资组合多元化的地方,当然还有,计算机网络。
然而,这种有效同时也很重要的去中心化,有时远不如一个偶尔用来预测的数学模型的灵丹妙药。原因就是共模故障。当然,四个喷气发动机比起一个喷气发动机来看更不容易出故障,但如果说这四个喷气发动机都是同一个工厂制造的呢?而且这四个喷气发动机都是被同一个不合格的员工制作的呢?
今天的区块链能有效设防共模故障吗?没有必要,可以参考以下场景:
从容错能力的去中心化的整体观点会看到所有这些方面,并会想如何最小化这些问题。那么从这可以看出,一些结论自然是显而易见的;
需要注意的是,初始形式的容错要求在架构上是去中心化的,但是你想,社区的容错能力一旦控制着协议的持续发展,那么可以看出,政治上的去中心化也是非常重要的。
现在,让我们来看看抗攻击能力。在一些纯粹的经济模型中,即使去中心化完全不重要,你也可以得到你想要的结果。如果你创造出一种协议,验证器保证会在51%的攻击(即最终性回归)发生时让你损失5000万美元,那么这个验证器是被一家公司控制还是被一百家公司控制就不是那么重要了。5000万美元的经济安全保证金是5000万美元的经济安全边际成本。事实上,为什么中心化甚至能够最大化这种经济安全的概念是有着很深层次的博弈论的(现有区块链的交易模型反映了这个观点,因为包含在区块中的交易通过矿工/区块申请人实际上也是一种流转的独裁做法)。
然而,一旦你采用了更加丰富的经济模型,特别是承认强制性存在的可能的那种(或者更温和的那种比如定向的针对节点的DOS攻击),去中心化就变得更加重要了。如果你威胁一个人的生命安全,那么5000万美元也就变得对他们来说不再重要了。但是如果5000万美元在十个人中间传播,那么你必须威胁10倍的人数,并且要同时期的做这件事情。一般来说,在许多情况下,现代世界的特点有着攻击/防御的不对称性,有利于攻击者—一幢花费1000万美元的大楼可能会被花费10万美元不到就摧毁了,但攻击者的杠杠往往是亚线性的:如果说摧毁一个花费1000万美元的大楼只需要花费10万美元,那么一幢100万美元的大楼可能只需要3万美元的成本就可以摧毁了。更小的成本给出了很好的比率。
这种推理会导致什么样的结果呢?首先,他强烈的推动了权益证明机制,超过了工作量证明,因为计算机硬件更容易被检测,调节和攻击,而硬币则更容易被隐藏(权益证明机制也因为其他某些原因更容易抵抗来自其他节点的攻击)。其次,他也支持广泛分布的开发团队。第三,当在设计共识协议时,他也会暗示需要同时考虑经济模型和容错模型。
最终,我们可以得到三个论点中最复杂的一个,防勾结串通。串通这个行为很难定义,可能唯一真实有效的表达方法是说“我们都不喜欢的结合”。在现实生活中很多情况下,最理想的情况是每个人之间的协调配合都很完美,但是如果一个人可以协调配合但是其他人不行,那么就是很危险的了。
一个简单的例子是反托拉斯法,为了使市场一方的参与者更难聚集在一起设置监管上的障碍,行动上像一个垄断者以牺牲市场另一方参与者的利益和社会福利,来获得外部的利益。另一个例子是美国候选人和超级PAC之间协调的规则,尽管在实践中被证明难以实施。一个更小的例子是一些象棋比赛中。为了防止两个玩家在比赛中进行很多次游戏试图提高其中一个玩家分数的规则。无论你在哪,成熟机构防止不必要的协调的尝试无处不在。
在区块链协议的情况下,共识背后的数学和经济推理通常依赖于至关重要的不协调选择模型。或者假设说,一款游戏由许多小的可以独立做出决定的角色组成,如果一个角色在工作量证明中获得了超过1/3的矿力,那么他就可以通过私自采矿来获得巨大的利润。但是,我们真的可以说,当90%的比特币的矿力非常的好以至于他们能够出现在同一会议上,这未经协调的选择模型真的是现实的吗?
区块链倡导者也指出,区块链更加的安全,因为他们不能够跟着自己的想法随意改变他们的规则。但是如果说软件和协议的开发者们都为同一家公司工作,或者说是一家人坐在一个屋子里,那么上面这个安全也就不一定能保证了。总的来说,这些系统不应该是被一方单独垄断的。因此,你可以很确定地表示,区块链会更加的给予安全性如果参与方之间都不是协调的关系。
当然,这也显示出了一个根本的驳论。许多的社区,包括以太坊,经常被称赞说有着强壮的社区精神,并且能够很快反应协调实施,发布和激活分叉,在六天内解决服务器拒绝访问的问题。但是我们该如何促进和提高这种积极的协调能力,同时防止坏的矿工反复的协调51%的攻击,使他人陷入困境的“不良协调”呢?
有三种方式来回答这个问题:
第一种方式大部分是Casper设计的理念,然而,他本身是不够的,因为单靠经济本身并不能处理好另外两个方式中关于去中心化的考量。第二种方式则在程序开发上难以明确地进行,尤其是长期的开发工作,经常会出现开发不明确的意外。比如说,比特币的核心开发人员经常说英语,而矿工们大部分都说汉语,这就是一个美丽的意外。因为它创造了一种“两院制”管理办法,使协调更加困难,有利于降低同一模型生产的风险,因为英语和中文社区会因为距离和沟通上的困难而产生分歧并且争论一番,因此不太可能会两方会赞成同样的错误。
第三个就是社会挑战,在这方面的解决方案可以有:
第三种去中心化,是以避免不希望发生的协调的去中心化,恐怕这也是最难实现的,权衡取舍是无法避免的。也许最好的解决方案是极度的依赖一个被保证是非常去中心化的一个小组,那就是:协议的用户。