【转】量化去中心化

在提升区块链去中心化程度以前,咱们必须先知道衡量的标准。html

去中心化  广泛 认为 比特币和以太坊赛过传统同类方案的主要优点。(编者注:这里有四个超连接。其中第二个为 V神博文《去中心化的意涵》,中译本见文末超连接)然而,尽管人们普遍承认去中心化的重要性,大多数关于这个话题的讨论并无进行量化。若是咱们可以商定一个定量的衡量标准,咱们就可以:node

  • 衡量某一系统的去中心化程度
  • 判断系统的某个修改对去中心化程度的影响(提升或下降去中心化程度)
  • 设计优化算法和架构,使去中心化程度最大化

在这篇文章中,咱们提出了最小中本聪系数(minimum Nakamoto coefficient),做为系统去中心化程度的一个简单的定量衡量标准,该方法受著名的基尼系数洛伦兹曲线(劳伦兹曲线)所启发。python

个人基本思路为(a)列举出某个去中心化系统的各个基本子系统,(b)判断须要破坏系统中多少个体才能控制每一个子系统,以及(c)而后用该最小值来做为该系统的有效去中心化程度的一个衡量标准。该最小中本聪系数的值越大,该系统的去中心化程度就越高。git

为了更好理解这个定义,咱们首先交代有关基尼系数和洛伦兹曲线的相关概念的部分背景,而后根据这些衡量标准,展现一些图表和计算结果来看一看整个加密生态系统的去中心化现状。咱们接着会讨论衡量去中心化的概念,做为对比特币和以太坊基本子系统的综合衡量方法。咱们在结尾部分将最小中本聪系数定义为系统级去中心化的提议衡量方法,而且讨论改善这个系数的方式。github

洛伦兹曲线和基尼系数

尽管这二者一般受到政治派别的关注,但在“过于不公平”和“过于中心化”的概念上二者仍是有惊人的类似之处的。具体来讲,咱们能够把“财富的分配不均”视为高度不公平,而把“权力的分配不均”视为高度中心化。算法

经济学家很早以来就运用这两种工具来衡量某个群体内的不均衡性:洛伦兹曲线和基尼系数。洛伦兹曲线的基本概念以下所示:api

洛伦兹曲线在上图中以红色示出。随着累积分布偏离一条直线,基尼系数(G)从0增至1。图表来自 Matthew John网络

基尼系数的方程式能够由以下所示的洛伦兹曲线和所谓“绝对平等线(Line of equality)”如下区域计算得出:架构

-洛伦兹曲线和基尼系数-svg

同时基尼系数也能够由连续分布和离散分布的实体中我的份额计算而得(方程参见此处)。

直观上来讲,资源的分布越均匀,基尼系数就越接近于 0。反过来讲,资源的分布越是偏向一方,基尼系数就会越接近于 1。

这抓住了咱们中心化的直觉概念:在一个 G=1 的高度中心化系统中,只要占有一个决策者和/或一家实体就能破坏这个系统。反过来讲,在一个 G=0 的高度去中心化系统中,想要破坏该系统则须要占有多个决策者。所以,基尼系数小意味着去中心化程度高。

加密货币:基尼系数和洛伦兹曲线

为了有一个直观的感觉,让咱们来经过一个简单的例子看一看洛伦兹曲线和基尼系数:加密货币市场资本范围内的财富分配。为此,咱们展现了于 2017 年 7 月 15 日市值前 100 名的数字货币的市值分布,计算了各自的市场份额占比,并作出了与基尼系数相关的洛伦兹曲线:

-来源: https://coinmarketcap.com/ -

若是咱们衡量前 100 名数字货币市值的中心化程度,基尼系数是 0.91。这和咱们的直觉知识相符合,由于自 2017 年 7 月起,整个市值的 70% 被名列前 2 名的数字货币持有,即比特币和以太坊。

去中心化系统是由子系统组成的

为了将这个概念应用到公有链领域,咱们须要对去中心化系统和去中心化子系统加以区别。具体来讲,去中心化系统(好比比特币)由一系列去中心化子系统(好比挖矿、交易所、节点、开发人员、客户端等等)组成。如下为组成比特币的六个子系统:

-咱们将利用这六个子系统来阐述如何衡量比特币或以太坊的去中心化程度。请注意:你可使用不一样的子系统,取决于你认为哪些子系统对去中心化程度更重要。-

如今,人们可能争辩说这些去中心化子系统中的一些可能比其它子系统更必要;例如,挖矿对于比特币的运做来讲是绝对必要的,然而交易所(尽管很重要)实际上却不是比特币协议中的一部分。

可是,让咱们假设某一个体可以识别去中心化系统中的基本去中心化子系统。而后咱们能够规定,若是某人能够破坏某个去中心化系统的任何基本去中心化子系统,那么这人能够破坏这个去中心化系统。

量化比特币和以太坊的去中心化程度

有了这些定义,咱们如今针对比特币和以太坊挖矿、客户端、开发人员、交易所、节点和全部者这些子系统来计算系统的洛伦兹曲线和基尼系数。咱们能够根据基尼系数和洛伦兹曲线这两个衡量标准来判断各个系统的去中心化程度。

下面是比特币的曲线:

5

下面是以太坊的曲线:

6

让咱们以上面各个图表中的 6 个面板为参照,依次讨论一下这些子系统。

(编者注:原文的下列小节中没有单独的图表;为方便阅读,编者经过截图拼凑成对比图表加入文中。)

挖矿去中心化程度

如图表的左上角面板所示,经过测量过去 24 小时的区块奖励,咱们发现比特币挖矿的去中心化程度惊人。以太坊挖矿则更为中心化。这些数值的变化至关大,所以咱们能够进行持续追踪或者经过取过去 7 天或 30 天的平均值来稳定结果。

客户端去中心化程度

如每一个图表顶部中间位置的面板所示,大多数比特币用户使用 Bitcoin Core 客户端,而 Bitcoin Unlimited 则是第二大受欢迎的客户端。这意味着如按不一样客户端代码库的数量来衡量的话,比特币中心化程度至关高(基尼系数=0.92)。对于以太坊来讲,大多数(76%)客户端是 geth,另外有 16% 的客户端是 Parity,以太坊客户端代码库的基尼系数也达到了 0.92,这两个代码库占了大半个生态系统。

开发人员去中心化程度

在右上角的面板中,咱们能够发现 Bitcoin Core 客户端拥有大量为其作出代码贡献的工程师。尽管原始的提交数量对于贡献度来讲无疑是一项不精确衡量标准,但这彷佛仍是代表相对少许的工程师群体为 Bitcoin Core 作了绝大部分工做。以太坊 geth 客户端的开发甚至更为集中化,只有两位开发人员贡献了代码。

交易所去中心化程度

各个交易所比特币以太坊的交易量差别很大,相应的基尼系数也是如此。然而,咱们出于展现目的,在左下角的面板中计算了过去 24 小时的基尼系数快照。

节点去中心化程度

去中心化的另外一个衡量标准(底部中间位置的面板)是肯定比特币以太坊的在不一样国家的节点分布状况。

全部权去中心化程度

在右下角最后的面板中,咱们来看一看比特币以太坊全部权的去中心化程度,按地址的分布状况来衡量。有一点很重要:若是咱们要囊括地球上 70 亿的总人口,其中大多数是没有比特币或以太坊的,则基尼系数基本上就是 0.99+。若是咱们要囊括全部余额,也就会涵盖不少空的余额,也会再次得出 0.99+ 的基尼系数。所以,咱们在这儿须要某些阈值。咱们采用的不彻底阈值,是全部超过185 个 BTC 的帐户及超过2477 个以太币的帐户的基尼系数。所以,这是 2017 年 7 月以前比特币和以太坊富人(持有至关于 500,000 美圆以上代币)的全部权分布状况。

在什么状况下相似于此的定限度量标准会有意义呢?也许是碰到相似于当下的美国国税局vs.数字货币交易所 Coinbase 问题的场景时:美国国税局正搜集有关全部帐户余额大于 20,000 美圆的持有人的资料。从攻击者的角度看,基尼系数大意味着政府只须要拉拢少数大额持有人,就能得到大比例的未兑现加密货币以及控制价格的能力。

综上所述,得出两点结论。第一点:当一我的不想要 BTC 或 ETH 的基尼系数精确为 1.0 时(由于这种时候,将只有一我的拥有全部数字货币,那么就没有人会有帮助提高该网络的动机),实际上出现的状况是至关高的财富中心化程度仍然和去中心化协议的运做相兼容。第二点:以下所示,咱们认为中本聪系数尤为在衡量持有人去中心化程度时要赛过基尼系数,由于其排除了选择阈值时的任意性问题。

最大基尼系数:区块链去中心化程度的粗略衡量标准

咱们能够把子系统去中心化的这些衡量标准样例结合,来衡量一个系统的去中心化程度吗?一种简单的途径是简单地取全部基本子系统基尼系数的最大值,以下所示:

7

所以,经过这个衡量标准,比特币和以太坊的基尼系数最大值都约为 0.92,由于二者的节点所具备的客户端高度集中在一个代码库中(比特币的是 Bitcoin Core,以太坊的是 geth)。

相当重要的是,选择的基本子系统不一样,这些值也就不一样。例如,某人可能认为单一代码库并不是系统去中心化的阻碍。若是是这样的话,那么比特币的最大基尼系数将改进到 0.84,同时新的去中心化瓶颈将是国家间的节点分布状况。

咱们固然 不会 争论说这里特别选出的六个子系统就是衡量去中心化的最佳选择;咱们只是想要收集一些数据来展现这种计算的结果。咱们 确实 同意的是,最大基尼系数这个度量标准开始为识别出可能出现的去中心化瓶颈指明正确的方向。

最小中本聪系数:区块链去中心化的改进版衡量标准

然而,最大基尼系数存在一个明显的问题:虽然一个较高的基尼系数对应“更加中心化的”系统与咱们的直觉吻合,但因为每一个基尼系数被限制在 0-1 的范围内,意味着这个系数并不是直接衡量破坏某个系统所需控制的个体或实体的数量。

具体来讲,对于一个区块链来讲,假设你有一个交易所子系统,其中有 1000 名参与者,基尼系数为 0.8,还有一个有 10 名矿工的子系统,基尼系数为 0.7。结果多是只破坏 3 个矿工而非 57 个交易所就足以破坏这个系统的去中心化,这意味着利用系统的基尼系数最大值来寻找瓶颈可能会把瓶颈指向交易所,而非实际上的矿工分布。

有多种方式克服这种困难。例如,咱们能够在将不一样子系统的基尼系数结合起来以前提出这些系数的原则权重。

另外一种可替代方式为基于洛伦兹曲线来定义一种精神上相似的度量标准,经过这个度量标准来计算基尼系数,咱们称之为“中本聪系数”。以下图所示。在这个例子中,给定子系统的中本聪系数为 8,由于要达到 51% 控制将须要 8 个实体。

8

也就是说,咱们将中本聪系数定义为,得到某个子系统总容量中 51% 的控制权所需的实体最小数量。结合上述措施,经过取系统中每一个子系统基尼系数最小值的最小值就能获得“最小中本聪系数”,就是咱们为了从总体上破坏这个系统而须要破坏的实体数量。

9

中本聪系数表明破坏给定子系统所需的实体最小数量。最小中本聪系数是全部子系统的中本聪系数中的最小值。

若是子系统被破坏的阈值不是 51%,咱们还能够定义一个“修正中本聪系数”。例如,可能要使某个系统严重退化,须要操控 75% 的交易所,可是只须要 51% 的矿工。

咱们如今能够利用前面部分的洛伦兹曲线来计算以太坊和比特币的中本聪系数。这是计算以太坊的标准客户端 geth 的洛伦兹曲线的一个举例。如咱们所见,只要控制两名开发人员,就能操控 geth 开发中 51% 的代码贡献,因此中本聪系数为 2。

10

上图阐述了这一律念。下面是比特币和以太坊的全部子系统的图表,此次计算了中本聪系数:

11

12

在下面的表格中,咱们聚集了全部子系统的中本聪系数:

14

如咱们所见,有了这些基本子系统,咱们能够说比特币和以太坊的中本聪系数都是 1。具体来讲,Bitcoin Core 或 geth 代码库的破坏将破坏超过 51% 的客户端,这将形成它们各自网络的损坏。

那么想要改进以太坊,就意味着相似 Parity 的其余客户端须要得到更高的市场份额,在此以后,开发人员或挖矿的中心化将成为下一个瓶颈。相似地,比特币的改善也将须要相似 btcd、bcoin 等客户端得到更普遍的采用。

最小中本聪系数取决于子系统定义

咱们知道,有些人可能会争论说,比特币的单个标准客户端的高度集中化并不影响它的去中心化,或是说,这种程度的集中化是一个无可避免的。咱们不就此问题表态,由于在不一样的基本子系统定义下,获得的去中心化衡量标准是不一样的。

例如,若是有人认为“创始人和演讲人”是一个基本子系统,那么以太坊的最小中本聪系数就是 1,由于 Vitalik Buterin 和以太坊是一损俱损的连带关系。

相反,若是有人认为“拥有大量挖矿能力的不一样国家的数量”是一个基本子系统,那么比特币的最小中本聪系数又将是 1,由于……将致使 51% 的挖矿算力被破坏。

如何选择最能表明一种特殊去中心化系统的基本子系统将会成为一些争论的话题,咱们认为这超出了这篇帖文的讨论范围。然而,“创始人和演讲人”和“中国矿工”的破坏对于两种不一样的链来讲是两种不一样的攻击,这一点值得观察。正如此,若是某人想比较不一样加密货币的最小中本聪系数,生态系统多样化可能能够在某种程度上在量化的角度提升去中心化。

结论

许多人表示,去中心化是诸如比特币和以太坊之类的系统最为重要的属性。若是这当真的话,对去中心化的量化是很是关键的。最小中本聪系数就是一个这样的衡量标准;随着该系数的增长,破坏这个系统所需的实体的最小数量也在增长。咱们认为这和去中心化的直觉概念相对应。

量化去中心化的明确衡量标准之因此重要,缘由有 3 点。

  1. 衡量。第一,此类定量的衡量标准能够明确地计算出来,在一段时间内记录下来,并在控仪表盘上展现。这赋予咱们在子系统内系统级地追踪去中心化的历史趋势的能力。
  2. 提升。第二,就像咱们衡量业绩同样,诸如中本聪系数的衡量标准让咱们可以衡量去中心化程度的提升或下降。这让咱们可以开始把去中心化的变化归因于对代码的单独部署或其余类型的网络活动。例如,在资源紧缺的状况下,咱们能够衡量部署 1000 个节点或雇用 2 个新的客户端开发人员是否将对去中心化有比较大的提升。
  3. 优化。最后也是最重要的一点,可量化的目标函数(从数学意义上来讲)决定任何优化过程的结果。表面上类似的目标函数能够得出迥异的解决方案。若是咱们的目标在于既要优化跨系统的去中心化程度,又要优化系统内的中心化程度,咱们将须要相似洛伦兹曲线、基尼系数和中本聪系数的定量度量标准。

咱们认可,有关某个去中心化系统须要哪些基本的子系统的话题还有很大的争论空间。然而,在给定一个提议的基本子系统的状况下,咱们如今能够生成一个洛伦兹曲线和一个中本聪系数,而后判断这个子系统是否从总体上来讲真的是该系统的去中心化瓶颈。

照此,咱们认为最小中本聪系数为迈向去中心化量化的第一个有用步骤。


Vitalik 的评论:

关于比特币和以太坊的开发人员和客户端去中心化,我认为这 4 幅图表忽略了 2 点:

  • 许多所谓的“其余比特币客户端选择”其实是和 Bitcoin Core 相同的代码库的分叉,可是全部以太坊实现都是从零开始建立的彻底独立代码库。所以,Core 和 BU 是否应该算做两个彻底独立的客户端这一点有待讨论。

  • 以太坊并不真正具有“标准客户端”的概念。若是你从字面上理解为“人们为了加深对协议规则的理解而参考的客户端”,那么在许多状况下,那实际上是 pyethereum,由于 python 更易于理解。C++ 客户端是生成测试套件的客户端。所以在我看来,光计算对 Geth 的代码贡献数量对生态系统的去中心化来讲表述不充分。

以上只是阐述了“子系统”的概念是多么难以捉摸。在去年的拒绝服务(DoS)攻击中,Geth 有一段时间是没法使用的,同时大多数人就切换到了 Parity。所以,有些子系统并不是十分关键但也不可忽略。

同时,我认为你忽略了一个基尼系数并不彻底合适的缘由:在现实世界中,基尼系数一般用做衡量一个国家的全职居民之间的财富不均程度,所以实际上衡量的是结果的不平等,在加密世界里,帐户间的不平等可能源自两种状况:(1)在给定参与程度下,不一样用户在系统中成功的能力差别;以及(2)他们参与程度的差别。

全球人口范围内生产大提琴的基尼指数可能在 0.99 以上,但很明显,没有人在乎这个。就挖矿和财富而言,问题在于有如此一长串几乎不感兴趣的业余参与者,致使这里的基尼系数看起来是衡量横坐标的长度(计算用户数量),而非其余东西。(校注:因为有大量业余用户的参与,所以在“专业用户”的挖矿参与度和拥有的财富必定的时候,业余用户越多基尼系数就会越大。)所以,关注中本聪系数或诸如前 100 名数字货币份额的类似衡量结果确定是优选的。


原做者的回复:

固然,我赞成上述全部说法。我依然认为列举子系统并利用诸如中本聪系数之类的东西,这个大体的思路能让咱们对于去中心化的直觉变得明确。

做为一个类比,这有点像测评游戏网站:http://benchmarksgame.alioth.debian.org/why-measure-toy-benchmark-programs.html

咱们挑选的每一个子系统就像一个不一样的基准。任何单独的基准都有缺陷,可是一套基准就有助于咱们决定给定语言倾向于在何处变得快速或缓慢。

更详细的回复:

许多所谓的“其余比特币客户端选择”其实是和 Bitcoin Core 相同的代码库的分叉,可是全部以太坊实现都是从零开始建立的彻底独立代码库。

表示赞成,并且这是那个子系统度量标准的一次可能的改善(“真正独立的代码库”)。若是咱们使用那个定义,那么以太坊的客户端去中心化优于比特币的,所以诸如 btcd 和 bcoin 之类的真正独立的代码库在比特币中拥有的份额不如 Parity。尽管如此,这两个系统仍将经过这个衡量标准在很大程度上中心化。

以太坊并不真正具有“标准客户端”的概念。若是你从字面上理解为“人们为了加深对协议规则的理解而参考的客户端”,那么在许多状况下,那实际上是 pyethereum,由于 python 更易于理解。C++客户端为生成测试套件的客户端。所以在我看来,光计算对 Geth 的代码贡献数量对生态系统的去中心化来讲表述不充分。

固然,从“比较以太坊最流行的客户端与比特币最流行的客户端范围内,开发人员代码贡献分布”的意义上来讲,其基本上是选用于大概的同类比较。你能够利用另外一种定义,好比用于生产的全部独立代码库的代码贡献分布。或者有人争论说代码贡献的计算其实不重要。

虽然如此,就像评测游戏同样,这个讨论至少开始让衡量去中心化意义的具体且定量的标准变得明确。

就挖矿和财富而言,问题在于有如此一长串几乎不感兴趣的业余参与者,致使这里的基尼系数看起来是衡量横坐标的长度(计算用户数量),而非其余东西。

咱们确实想到过这个问题——你说得对,若是咱们在全部 ETH 或 BTC 地址范围内进行计算,那么这的确是个问题,同时基尼系数很是接近于 1.0(由于绝大部分地址拥有 0 BTC/ETH,世上绝大多数居民一样如此)。

在这种状况下,对于财富/地址的计算来讲,咱们将其限定为 ETH 和 BTC 的前 N 个地址,这样的话,任何人均可以拥有关于“前 N 个地址中财富的去中心化程度”的一个衡量标准。咱们不争论说这是个关键的度量标准,只是做为例证。尽管你不但愿 BTC 或 ETH 的基尼系数为 1.0(由于这种时候只有一我的将拥有全部数字货币,而且没有人会被激励去帮助提高该网络),实际上出现的状况是至关高的财富中心化程度仍然和某个去中心化协议的运做相兼容。

对于挖矿/区块奖励计算来讲,在时间窗口方面存在自然的限制。因此咱们没有在此深刻探究。

所以,关注中本聪系数或诸如前 100 名数字货币份额的类似衡量结果确定是优选的。

是的,中本聪系数在具有直观解读(“破坏系统所需的实体最小数量”)方面来讲也是有用的,可是基尼系数并无作到如此明确具体。

连接: https://news.earn.com/quantifying-decentralization-e39db233c28e