Vitalik 谈「去中心化」

链得得的朋友们
链得得的朋友们

Jul 18, 2022 链得得的朋友们

摘要: Vitalik 在本文中从两个方面探讨了去中心化的意义。

文章来源:The SeeDAO 

摘要:

Vitalik 在本文中从两个方面探讨了去中心化的意义。

一、从三个不同维度对去中心化的定义进行分类,包括架构去中心化、政治去中心化和逻辑去中心化;

二、支持去中心化的三个理由,即中心化所具有的容错性、抗攻击性和抗共谋性三个特质。

「去中心化」是加密经济领域使用频率最高的词之一,甚至常常被视为区块链存在的全部理由,但它可能也是被定义得最糟糕的词之一。人们投入了数千小时的研究和价值数十亿美元的算力,目的只为实现「去中心化」,并对之加以保护和改进。当讨论中产生敌意时,某个协议(或扩展协议)的支持者便给反方提案扣上「中心化」的帽子,以此作为最终绝杀的论据,这一现象极其普遍。

但是,对于这个词的实际含义,人们往往有很多混淆不清的地方。例如以下这组完全没有帮助,但很不幸却屡见不鲜的图表:

现在来看一下 Quora 上对「分布式和去中心化有什么区别」这个问题的两个回答。第一个答案根本上是对上面这组图表的鹦鹉学舌,而第二个则提出了完全不同的主张,即「分布式意味着并非所有交易的处理都在同一个地方完成」,而「去中心化意味着没有一个单一实体控制了所有交易处理」。同时,以太坊 StackExchange 网站上的置顶答案给出了一个非常近似的图表,但「分布式」和「去中心化」这两个注释居然互换了位置!显然,有必要阐明这个问题。

三种类型的去中心化

当人们谈论软件去中心化时,实际上可能涉及中心化/去中心化的三个独立的维度。尽管在某些情况下,确实很难只留其一不要其二,但一般来说,它们彼此之间相当独立。这些维度包括:

  • 架构(去)中心化

一个系统由多少台物理计算机组成?系统最多可以承受多少台计算机在任意一个时间点同时宕机?

  • 政治(去)中心化

系统内的计算机最终被多少组织或个人控制?

  • 逻辑(去)中心化

系统所呈现和维护的界面和数据结构看起来更像是单个整体,还是一个无固定形态的集群?一个简单的启示是:如果将系统一切两半,每一半都既包括服务提供者也包括用户,它们各自能不能继续作为独立单元完整运作?

我们可以试着把这三个维度放进一个图表:

请注意,表中的归类非常粗略且值得商榷。但无论如何,让我们试着来过一下这些内容:

  • 传统企业在政治上是中心化的(一个CEO),在架构上是集中的(一个总部),在逻辑上是集中的(无法真正将其一分为二)。

  • 大陆法系的民法依赖于一个中心化的立法机构,而英美法系的普通法是由多位独立法官的历史判例累积而成。民法在架构上也具有部分去中心化特征,因为许多法院的自由裁量权还是很大的,但普通法的自由裁量权则更多。两者在逻辑上都是中心化的(「法律至上」)。

  • 语言是逻辑去中心化的一个实例;爱丽丝和鲍勃之间说的英语,与查理和戴维之间说的英语,根本无需相互认同。语言的存在并不需要一个中心化的基础设施,并且英语的语法规则也不由任何个人创造或掌控。(世界语最初由路德维希 · 柴门霍夫发明,然而现在它更像是一门自己逐渐演化的活语言,没有权威在进行控制。)

  • BitTorrent 在逻辑上是去中心化的,类似于英语。内容分发网络也类似,但受控于单个公司。

  • 区块链在政治上是去中心化的(没有人在进行控制),在构架上是去中心化的(基础设施方面不存在中心故障点),但它们在逻辑上是中心化的(有一个共同认可的状态,而且系统表现得像一台单独的计算机)。

很多时候,当人们谈论区块链的优点时,谈到设立「中央数据库」的便利性。这种中心化是逻辑上的中心化,而且这种集中在很多情况下按理说是好的。(尽管 IPFS 的 Juan Benet 也会尽可能地推动逻辑上的去中心化,因为逻辑上去中心化的系统在网络分区中更易存活,在世界上网络连通性差的地区能良好运行,等等;Scuttlebot 在这篇文章中明确倡导逻辑去中心化。)

架构中心化往往会导致政治中心化,但并非必然──在正式的民主制度中,政治家们会在一些有形的治理场所中开会和投票,但最终,该场所的维护者并不会因此获得任何实质性的决策权。在计算机系统中,假设某在线社区为了方便而使用了一个中心化论坛,但他们有一个获得广泛认同的社会契约,即,如果论坛所有者作恶,那么每个人都会转移去另一个论坛。这样的情形属于构架上的去中心化,而非政治上的去中心化(实践中,为反抗另一个论坛的审查制度而形成的社区可能具有这种特性)。

逻辑上的中心化使构架上的去中心化更难,但并非不可能──比如去中心化的共识网络已经被证明可行,但维护起来不如 BitTorrent 容易。而逻辑上的中心化,使得在政治上实现去中心化愈加困难──在具有中心化逻辑的系统中,简单地通过同意「由它去」来解决分歧殊为不易。

去中心化的三个原因

下一个问题是,究竟为什么去中心化有用?大体上来说,存在这些论据:

  • 容错性

去中心化系统不太可能出现意外故障,因为它们依赖于许多不太可能出现故障的独立组件。

  • 抗攻击性

攻击、破坏或操纵去中心化系统的成本更高,因为去中化系统不存在脆弱的中心枢纽。对中心枢纽的攻击成本要低于攻击大规模的周边系统。

  • 抗共谋

去中心化系统中的用户较难通过共谋来利己损人;而公司和政府的领导层中一直存在结党营私的现象,伤害了协调性不佳的公民、客户、雇员和普通公众的利益。

上述这三项论据都言之在理且非常重要,然而,一旦你以三个单独的视角思考协议决策,这些论据就会导致一些有趣且不同的结论。下面就让我们逐一展开。

关于容错,核心论据很简单。发生哪种情况的可能性更低:单一计算机发生故障,或者十台计算机中的五台同时发生故障?这项原则没有争议性,而且在现实中有多个应用场景,包括喷气式引擎、特别是医院等处的备用发电机、军事基础设施、金融投资组合的多样化,还有就是计算机网络。

然而,尽管这种去中心化仍然行之有效并且高度重要,但到头来往往远非灵丹妙药,还不如一个简单数学模型所能做出的预测。原因在于共模故障(CMS)。当然,四台喷气式引擎比一台发生故障的可能性要小,但如果所有四台引擎都是在同一个工厂生产,并且故障出自同一个妄为雇员之手,那该怎么办?

区块链如今是否设法防止了共模故障?不一定。请考虑以下情况:

  • 一个区块链中的所有节点都运行相同的客户端软件,结果该客户端软件存在漏洞。

  • 一个区块链中的所有节点都运行相同的客户端软件,结果该软件的开发团队存在腐败。

  • 提出协议升级的研究团队存在腐败。

  • 在一个基于 POW 的区块链中,70% 的矿工都在同一个国家,而该国政府出于国家安全考虑,决定查封所有的矿场。

  • 大多数采矿硬件由同一家公司制造,该公司被贿赂或胁迫部署了后门软件,导致这些硬件可以被随意关闭。

  • 在一个基于 POS(权益证明)的区块链中,70% 的质押代币都保存在同一个交易所中。

容错去中心化的整体观点要着眼于所有这些方面,并致力于将这些问题尽可能减到最少。一些自然而然产生的结论也相当明显:

  • 多个相互竞争的代码实现至关重要。

  • 协议升级背后的技术考量的知识必须做到民主化,这样更多的人可以放心地参与研究讨论,并批评那些明显不好的协议变化。

  • 核心研发人员应该受雇于多家公司或组织(或者,以多位志愿者替代)。

  • 挖矿算法的设计应遵循最低程度的中心化。

  • 理想情况下,我们使用 POS 来完全摆脱硬件中心化的风险(尽管我们也应该谨慎对待因POS 而冒出来的新风险)。

需要注意的是,朴素形态的容错需求侧重于架构上的去中心化,然而一旦你开始考虑治理协议持续发展过程中的社区容错问题时,政治上的去中心化就也很重要了。

现在,让我们来看看抗攻击性。在一些纯经济模型中,你有时会得到这样的结论:去中心化甚至都不重要。比如,当你创建了一个协议,只要发生 51% 的攻击(即确定性逆转),则验证者肯定会损失 5000 万美元,那么验证者是由一家公司还是 100 家公司控制其实并不重要──5000万美元的经济安全边际是毋庸置疑的客观事实。事实上,这其中有着深刻的博弈论原因,中心化甚至可能使经济安全边际的概念最大化(现有区块链的交易选择模型反映了这种见解,因为通过矿工/区块提议者将交易纳入区块实际上是一种非常快速的轮流独裁制)。

不过,一旦你采用了更丰富的经济模型,特别是如果这个经济模型里存在胁迫的可能(或者诸如针对节点发动 DoS 攻击等较温和的事件),去中心化就会变得更加重要。如果你对某人发出死亡威胁,那么 5000 万美元对他们来说突然就不再那么重要了。但是如果把 5000 万美元分散到十个人手中,你就需要同时威胁十倍于此的人。总的来说,在很多情况下现代世界都存在攻防不对称的现象,往往情势有利于攻击者──一栋花费 1000 万美元才建起来的建筑,可能只需要不到 10 万美元就能摧毁,但攻击者的杠杆往往是次线性的:如果摧毁一栋花费 1000 万美元建造的建筑要花费 10 万美元,而摧毁一栋花费 100万 美元建造的建筑可能实际上只要花费 3 万美元。建筑造价越低,摧毁成本的占比就越高。

以上推理有什么启示呢?首先,它强烈支持权益证明机制而不是工作证明机制,因为计算机硬件很容易被探测、监管或攻击,而代币则更容易被隐藏(还有其他理由让权益证明具有强抗攻击性)。第二,它支持开发团队的广泛分布,包括地理意义上。第三,它意味着在设计共识协议时,需要同时关注经济模型和容错模型。

最后,让我们再来看看三项论据中也许是最复杂的一个:抵制共谋。共谋很难定义;也许能够真正有效定义它的方法,就是直截了当地说:共谋是「我们不喜欢的协调」。在现实中,很多情况下即使有着人人都能完美协调的愿望,但是当某个小团体有能力进行协调,而其他人不能时,就非常危险了。

一个简单的例子是反垄断法──其目的就是通过刻意设置监管障碍,来阻碍市场一方的参与者聚集起来,成为像垄断者那样,以牺牲市场另一方和社会大众福利为代价获取超额利润。另一个例子是美国的候选人和超级政治行动委员会(super-PAC)之间的反积极协调法案,尽管事实证明它们很难实践。更微观的例子是,在一些国际象棋比赛中,有一条规则来防止两名棋手为了给其中一名棋手刷积分而多次对弈。无论从何种视角看,在复杂体系中防止勾结共谋的尝试无所不在。

对区块链协议来说,共识安全背后的数学和经济推理往往仰赖非协调选择模型,或者出于「博弈由众多独立决策的小角色构成」的假设。在工作量证明系统中,如果任何一个角色获得超过 1/3 的采矿权,他们就可以通过私自挖矿获得超额利润。然而,假如 90% 的比特币网络的采矿权能够协调得足够好,我们真的能说非协调选择模型是现实的吗?

区块链的倡导者还提出,在区块链上进行构建更安全,因为他们不能随时随意地改变规则。但如果软件和协议的开发者都服务于一家公司,或者同属一个家族,甚至就坐在一个房间里,那就很难再为这个观点辩护了。重点在于,这些系统不应该像自私的独家垄断者那样行事。因此你当然可以说,如果区块链更加不协调,它们就会更加安全。

然而,这带来了一个根本性的悖论。包括以太坊在内的很多社区,经常因其强大的社区精神被称赞,诸如能够在六天内迅速协调实施、发布和激活硬分叉以修复协议中的拒绝服务问题等。但是,我们如何才能促进和改善这种良好的协调,同时又能防止由矿工试图通过反复组织 51% 攻击来坑害其他人的「不良协调」呢?

有三种方法来回答这个问题。

  • 不必费力去减缓不受欢迎的协调;相反,应尝试建立能够抵制它的协议。

  • 尝试找到一个令人满意的媒介,既能有足够的良性协调来让协议演化和发展,同时又不足以引发攻击。

  • 尝试区分有益的协调和有害的协调,并使前者更容易,后者更难。

以太坊 Casper 设计理念中有很大一部分由第一项措施构成。然而,它本身是不够的,因为仅仅依靠经济学不能解决去中心化的其他两类问题。第二项措施则很难进行清晰的设计,尤其是从长远来看,但它确实经常会事出不意。例如,比特币的核心开发者一般说英语,而矿工一般说中文,这可以算得上一件幸事了。因为它创造了一种「两院」式的治理格局,使共谋更加困难,并且还有一个额外的好处──降低了共模故障的风险。受限于距离和沟通困难,英语和中文社区至少在某种程度上是分割开的,因此不太可能同时犯同样的错误。

第三项是社会性挑战,别无其它;其解决方案可以包括:

  • 社会干预措施,努力提高参与者对整个区块链社区的忠诚度,以此替代或阻止市场中的一方直接归顺对方的可能性。

  • 促进同一背景下「市场各方」之间的沟通,以减少验证者、开发者或矿工将自己视为一个「阶层」的可能性,避免他们必须通过协调来与其它阶层对抗,维护自己的利益。

  • 协议设计时,应避免促使验证者和矿工之间产生一对一「特殊关系」、出现集中式中继网络或其他类似超级协议的机制等情况。

  • 针对协议应该具有的基本属性制定明确规范,说明哪些事情明令禁止,或者只有在非常极端的情况下才能执行。

因此,这第三种去中心化,即规避恶性协调的去中心化,也许是最难实现的,不可避免地要做出取舍。也许最好的解决办法是高度依靠一个无疑相当去中心化的群体──协议的用户。

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 链得得的朋友们 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信