作者:Kalle Rosenbaum & Linnéa Rosenbaum

来源:https://bitcoindevphilosophy.com/#decentralization

decentralization-banner

本章节分析了什么是 “去中心化”、为什么它对比特币的功能如此关键。我们区分了 “矿工的去中心化” 与 “全节点的去中心化”,还讨论了它们给 “审查抗性”(比特币最核心的属性之一)带来了什么。随后,这些讨论转移到理解 “中立性” —— 或者说面向用户、矿工和开发者的 “免许可行” ——是任何去中心化系统的必要属性。最后,我们也提到了理解比特币这样的去中心化系统的难度,并提出了一些可以帮助你理解它的思维模型。

一个没有任何中心控制点的系统就被称为是 “ 去中心化的 ”。比特币被设计成避免拥有一个中心控制点,或者更准确地说,一个中心审查点。去中心化是实现 审查抗性 的工具。

比特币的去中心化有两个主要的方面:矿工去中心化和全节点去中心化。“矿工去中心化” 指的是一个事实:交易的处理既不是通过任何一种中心实体来执行的,也不是靠这样的中心实体来协调的。“全节点去中心化” 指的是另一个事实:区块(矿工输出的数据)的验证,会在网络的边缘完成,也即最终由网络的用户完成,而非由少数受信任的权威机构来完成。

1.1 矿工去中心化

在比特币之前,也有人尝试过创造电子货币,但它们中的绝大部分都因为缺乏治理去中心化和审查抗性而失败。

在比特币中,矿工去中心化意味着 交易的排序 不是由任何一个单一实体或固定的团体来完成的,而是由所有希望参与交易排序的行动者集体完成的;这样的矿工集体是动态的用户集合。任何人都可以按自己的意愿加入或离开。这种属性让比特币具备审查抗性。

如果比特币是中心化的,在想要审查它的人(比如政府)面前它就有漏洞。它将跟以往的创建电子货币的尝试遭遇相同的命运。在一篇名为 “使用锚定的侧链开启区块链创新” 的论文的引言部分,作者解释了为什么更早的电子货币在敌意环境中无法生存(亦见本书第六章):

David Chaum 在 1983 年提出 digital cash(电子现金)作一个研究课题,其设定是信任一个中心服务器来防止 “重复花费”[Cha83] 。为了缓解个人对这个受信任的中心参与者的隐私风险,也是为了强制执行可互换性,Chaum 引入了盲签名,它可供了一种密码学工具来防止这个中心化服务商的签名(本身就代表钱币)被关联起来,同时依然允许这个中心化服务商防止重复花费。这种对中心化服务器的依赖就变成了 digital cash 的阿喀琉斯之踵 [Gri99] 。虽然可以通过将单个中心服务商的签名替换成多个签名人的阈值签名,从而将这种单点故障分散化,但对于可审计性来说,能够识别并保证签名人不是同一个人,依然是重要的。这依然让整个系统在故障面前脆弱,因为每个签名人都可能出故障,或者被制造出故障,一个接一个地出错。

—— 多位作者,《使用锚定的侧链开启区块链创新》(2014)

显然,使用一个中心化的服务器来排序交易并不是一个可行的选择,因为高度的审查风险。即使将中心化服务商替换成一个固定的 N 个服务商的联盟、要求其中至少 M 个服务商来批准一次排序,依然会有困难。问题将在实质上转变成:用户必须一致认可这 N 为服务商的集合,以及,在出现恶意服务商时,用户们如何不依赖于一个中心权威来更换服务商。

我们再设想一下,如果比特币是可以审查的,那会怎么样。审查者将迫使用户报告自己的身份、自己的钱从哪儿来、买了东西,否则他的交易就无法进入区块链。

同样地,缺乏审查抗性也让审查者能够迫使用户接受新的系统规则。比如说,他们可以施加一项变更,让他们可以膨胀货币供应量,从而让他们自己变富。在这样的事件中,验证区块的用户可以有三种应对选择:

  • 接受:接受这项变更、在他们的全节点中采用这项新规则。
  • 拒绝:拒绝这一变更;这将让他们留在一个不再处理交易的系统中,因为审查者的区块会被这个用户的全节点当成无效的。
  • 迁移:提名一个新的中心控制点;所有的用户必须搞清楚如何协作、如何对这个新的中心控制点达成一致一眼。即使他们这一次成功了,相同的问题也可能在未来再一次上演,因为整个系统跟原来一样是可以审查的。

没有任何一个选项能让用户受益。

通过去中心化来实现审查抗性,正是让比特币有别于其它货币系统的因素,但因为 “ 重复花费问题 ”,这并不是一件容易做到的使。重复花费问题是说,要保证一个人无法重复花费自己的同一个钱币;许多人都曾认为,这个问题是无法用去中心化的方式解决的。中本聪(Satoshi Nakamoto)在他的《比特币白皮书》中讨论了如何解决重复花费问题:

在本文中,我们为重复花费问题提出了一种解决方案:使用一种点对点的、去中心化的时间戳服务器,来为交易的时间顺序生成计算性证据。

—— 中本聪,《比特币:一种点对点的电子现金系统》(2008)

在这里,他使用了尤为奇怪的短语 “点对点的、去中心化的时间戳服务器”。关键词其实是 “ 去中心化的 ”,在这个语境下意味着没有单一控制点。然后,中本聪解释了为什么工作量证明是解决方案。迄今为止,还没有人的解释比 Gregory Maxwell 在 Reddit 上的更好;在那个场合,有人提议要限制矿工的哈希算力来避免可能的 51% 攻击:

比特币这样的去中心化系统使用公开的选举。但你无法在去中心化系统中让 “人们” 拥有选票,因为这将要求一个中心化的参与者允许人们来投票。相反,比特币将计算能力当作选票,因为计算能力无需任何中心化第三方的帮助就能够验证。

—— Gregory Maxwell,r/Bitcoin subreddit(2019)

这篇帖子也解释了去中心化的比特币网络为什么能够通过使用工作量证明来对交易的排序达成共识。然后,他作出结论,相比于并不关心也不理解比特币的去中心化属性的人,51% 攻击并不特别值得担心:

对于比特币来说,一个大得多的风险是,公众并不理解、也不关心、更不会保护去中心化属性;而去中心化才是比特币对比其中心化的替代品真正有价值的地方。

—— Gregory Maxwell,r/Bitcoin subreddit(2019)

这个结论很重要。如果人们并不保护比特币的去中心化 —— 它是审查抗性的代理 —— 比特币可能会成为中心化权力的受害者,直到它变得非常中心化、审查成为可能。到了那一刻,比特币的绝大部分价值(甚至是全部价值)就将不复存在。这将我们带到下一个话题:全节点的去中心化。

1.2 全节点去中心化

在上文中,我们主要讨论的是矿工去中心化,以及中心化的矿工将允许审查。但去中心化还有另一方面,叫做 “ 全节点的去中心化 ”。

全节点去中心化的重要性与 “免信任性” 有关(亦见本书第二章)。假设一个用户因为(比如说)运营成本的急剧升高而停止运行自己的全节点。此后,他们将不得不用其它方式来跟比特币网络交行是,可能是使用网页版钱包,或者是轻量级钱包,都在一定程度上要求用户信任这些服务的供应商。用户也会从自己直接强制执行网络公式规则,变成信任其他人会执行。现在,假设绝大部分用户都将共识规则的强制执行委托给了一个受信任的主体。这时候,网络可能会迅速陷入中心化,规则也可能会被阴谋的恶意参与者改变。

Bitcoin Magazine 的一篇文章中, Aaron van Wirdum 访谈了一些比特币开发者,询问他们对去中心化和提高比特币的区块体积上限的风险的看法。这样的讨论在 2014 至 2017 年期间是热门的话题,许多人都在主张提高区块体积上限来提高交易的吞吐量。

一种反对提高区块体积的有力理由是,这会增加验证区块的成本(亦见本书关于可扩展性的章节)。如果验证成本提升,它就会让一些用户停止运行自己的全节点。而这又会反过来,让更多人无法以免信任的方式使用比特币。文章引用 Pieter Wuille 的话解释了全节点中心化的风险:

如果大量公司都运行了自己的全节点,那么,想在比特币网络中实现另一套规则集,就必须说服他们所有人。换句话说,区块验证的去中心话,让共识规则具有了重量。但如果全节点的数量变得非常稀少,比如说因为每个人都使用同样的网页端钱包、交易所和 SPV 钱包或者移动端钱包,管制就成为了可能。而且,如果权威机构可以管制共识规则,那也意味着他们可以改变一切让比特币成为比特币的东西,甚至包括 2100 万 BTC 的数量限制。

—— Pieter Wuille,《去中心化主义者的观点》(2015)

就是这样。比特币的用户应该运行自己的全节点,以阻止监管者和大公司尝试改变比特币的共识规则。

1.3 中立性

比特币是中立的,或者,用人们常见的说法:它是免许可的。这意思是说,比特币不在乎你是谁、你用它来做什么。

比特币是中立的,这是一个优点,也是它能够工作的唯一方式。如果它被某一个组织控制了,那它就只是另一种虚拟物品,我就不会有任何兴趣了。

—— wumpus 在 freenode 在线聊天中(添加了标点符号),#bitcoin-core-dev 2012-04-04T17:34:04 UTC

只要你遵守它的规则,你就可以自由地用它来做你想做的事,无需向任何人请求许可。这包括:挖矿交易、在比特币上 开发协议和服务

  • 如果挖矿需要申请许可,我们就需要一个中心权威来选择谁能挖矿。这很有可能会让矿工不得不签订法律合同、同意根据这个中心权威的心血来潮来审查交易,而这就已经违背了挖矿的初衷。
  • 如果人们用比特币来交易需要提供个人信息、申明自己的交易的目的,或者,如不申明表要证明自己的交易是值得的,那我们就需要一个中心权威来批准用户和交易。再说一次,这样又会带来审查和排外。
  • 如果开发者需要请求许可才能在比特币上开发协议,那就只有中心开发者委员会所批准的协议才会得到开发。由于政府的介入,这将不可避免会排除所有保护隐私的协议以及所有提升去中心化的尝试。

在所有层面上,尝试对谁能使用比特币、出于什么目的而使用比特币的限制,都会伤害比特币,使之不再符合其价值主张。

Pieter Wuille 在 Stack Exchange 网站上回答了一个关于区块链与常规的数据库有何关系的问题。他解释了免许可性是符合通过使用工作量证明以及经济激励来实现的。他的结论是:

使用工作量证明(PoW)这样的免信任的共识算法,确实给了你一些别的算法无法给你的东西(免信任的参与权,意味着没有参与者团体能够审查你的变更),但也带来了一项高昂的成本,它的经济假设使之几乎只适合于定义自己的密码货币。这可能也是为数不多真正使用过它的地方。

—— Pieter Wuille,Stack Exchange (2019)

他解释道,为了实现免信任性,这个系统很可能需要自己的货币,从而 “限制了其用途,几乎只剩密码货币”。这是因为免信任的参与,或者说挖矿,需要系统自身有内置的经济激励。

1.4 理解去中心化

比特币的一个引人注目的方面是,人们很难理解它不是由谁来控制的。比特币中没有委员会,也没有执行官。Gregory Maxwell,在另一个论坛帖子中,以一种有趣的方式,将它与英语作比:

许多人都要艰难跋涉一段时间才能理解自治的系统,但他们生活中也有这样的东西,比如英语 —— 只是人们当它是理所当然的,从来没有将它理解成一个系统。他们被困在一种思维方式中,以为他们思考的所有 “东西” 都有一个权威来控制它。

比特币没有目标。许多采用它的人都是出于自己的自由意志而推动它,而他们为什么要这样做则纯粹是他们自己的事。执迷于权威思想的人可能会以为这全部都是出于某个比特币权威的操纵,但这样的权威并不存在。

—— Gregory Maxwell,r/Bitcoin subreddit (2022)

比特币通过去中心而得以生存的方式,类似于在自然界的许多物种中形成的非凡集体智慧。计算机科学家 Radhika Nagpal 曾经在一个 Ted 演讲中讲到鱼群的集体行动,以及科学家们如何使用机器人来模仿它们。

fishschool

- 图 1. 鱼群没有领导。 -

其次,也是一件我认为最了不起的事情:我们知道鱼群是没有领导的。相反,这样令人难以置信的集体思维活动,完全是从一条小鱼与另一条小鱼的互动中出现的。一定程度上,正是这些相邻的小鱼之间互动,或者说它们之间的约会规则,使得它们的集体活动成为现实。

——Radhika Nagpal,《智能机器可以从鱼群中学到什么》 (2017)

她指出,不论自然的还是人工的,许多系统都能在没有领导的模式下工作,而且它们是强大且有韧性的。每一个个体都只跟自己邻接的个体交互,就这样集合在一起形成了巨大的东西。

不论你怎么理解比特币,它的去中心化属性使得它难以被控制。比特币存在,对此你无计可施。它是值得你学习的东西,不是等待你否定的东西。

1.5 结论

我们区分了全节点去中心化和矿工去中心化。矿工去中心化是一种实现审查抗性的工具,而全节点去中心化则让网络的共识规则难以脱离用户的广泛支持而变更。

比特币的去中心化属性允许面向开发者、用户和矿工的中立性。任何人都能自由参与,无需请求许可。

去中心化系统可能难以理解,但有一些思维模型可以帮助你,比如英语,比如鱼群。