在改进区块链去中心化之前,我们必须能够衡量它。
比特币和以太坊相对于其传统替代品的主要优势被 广泛 认为 就是去中心 化。尽管这一属性的重要性得到广泛认可,但大多数关于该主题的讨论都缺乏量化。如果我们能够就量化衡量达成一致,它将使我们能够:
衡量给定系统的去中心化程度
确定给定的系统修改在多大程度上改善或减少了去中心化
设计优化算法和架构以最大限度地去中心化
在这篇文章中,我们提出了最小 Nakamoto 系数作为系统去中心化的简单、量化的度量,其动机是众所周知的Gini 系数和Lorenz 曲线。
基本思想是 (a) 列举分散系统的基本子系统,(b) 确定需要破坏多少实体来控制每个子系统,以及 (c) 然后使用这些实体中的最小值作为衡量系统的有效去中心化。这个最小 Nakamoto 系数的值越高,系统越去中心化。
为了激发这个定义,我们首先介绍了基尼系数和洛伦兹曲线的相关概念的一些背景,然后显示一些图表和计算,以根据这些衡量标准来查看整个加密货币生态系统中的中心化状态。然后,我们讨论了衡量去中心化作为比特币和以太坊基本子系统的综合衡量标准的概念。最后,我们将最小 Nakamoto 系数定义为系统范围内去中心化的建议度量,并讨论改进该系数的方法。
洛伦兹曲线和基尼系数
它们通常是不同政治派别的关注点,但“过度不平等”和“过度集权”的概念之间存在惊人的相似之处。具体来说,我们可以将财富的不均匀分配视为高度不平等,将权力的不均匀分配视为高度中心化。
长期以来,经济学家一直使用两种工具来衡量人口中的不均匀性:洛伦兹曲线和基尼系数。洛伦兹曲线的基本概念如下图所示:
洛伦兹曲线如上图红色所示。随着累积分布偏离直线,基尼系数 (G) 从 0 增加到 1。图来自Matthew John。
基尼系数的方程可以从洛伦兹曲线和所谓的“平等线”下的面积计算出来,如下所示:
洛伦兹曲线和基尼系数。
该系数也可以从连续和离散分布的实体的各个份额中计算出来。
直观上看,资源分布越均匀,基尼系数越接近于零。反之,资源分配越偏向一方,基尼系数越接近1。
这抓住了我们直观的中心化概念:在 G=1 的高度中心化系统中,为了破坏系统,需要捕获一个决策者和/或一个实体。相反,在 G=0 的高度去中心化系统中,需要捕获大量决策者才能破坏系统。因此,低基尼系数意味着高度去中心化。
加密货币:基尼系数和洛伦兹曲线
为了建立直觉,让我们看一下洛伦兹曲线和基尼系数作为一个简单的例子:财富在加密货币市值中的分布。为此,我们在 2017 年 7 月 15 日对前 100 种数字货币的市值进行了快照,计算了每种数字货币的市场份额百分比,并将其绘制为带有相关基尼系数的洛伦兹曲线:
来源:https ://coinmarketcap.com/
如果我们衡量前 100 种加密货币的市值集中度,则基尼系数为 0.91。这符合我们的直觉,因为截至 2017 年 7 月,大约 70% 的市值由前两种加密货币持有,即比特币和以太坊。
去中心化系统由子系统组成
要将这一概念应用于公共区块链空间,我们需要区分去中心化系统和去中心化子系统。具体来说,去中心化系统(如比特币)由一组去中心化子系统(如挖矿、交易所、节点、开发人员、客户端等)组成。以下是构成比特币的六个子系统:
我们将使用这六个子系统来说明如何衡量比特币或以太坊的去中心化。请注意:你可能会决定使用不同的子系统,具体取决于你认为哪些子系统对整个系统的去中心化至关重要。
现在,有人可以争辩说,其中一些分散的子系统可能比其他子系统更重要。例如,比特币的运作绝对需要挖矿,而交易所(尽管它们很重要)实际上并不是比特币协议的一部分。
然而,让我们假设给定的个人可以画一条线来识别去中心化系统的基本去中心化子系统。然后我们可以规定,如果一个人可以破坏一个去中心化系统的任何一个子系统,那么这个人就可以破坏整个去中心化系统。
量化比特币和以太坊去中心化
鉴于这些定义,现在让我们计算比特币和以太坊挖矿、客户端、开发人员、交易所、节点和所有者子系统的洛伦兹曲线和基尼系数。根据基尼系数和洛伦兹曲线测量,我们可以看到它们各自的中心化程度。
以下是比特币的曲线:
它们是针对以太坊的:
让我们通过参考上面每幅图中的六个面板依次讨论这些子系统。
挖矿去的中心化程度
如图左上图所示,以过去 24 小时的区块奖励衡量,比特币挖矿出人意料地去中心化。以太坊挖矿更加集中。这些值存在相当大的差异,因此我们可以随着时间的推移对其进行跟踪,或者通过取 7 或 30 天的平均值来平均结果。
客户的去中心化的程度
如每个图的顶部中间面板所示,大多数比特币用户使用比特币核心,比特币无限是第二受欢迎的客户端。这意味着以不同客户端代码库的数量衡量出相当高的集中度(Gini = 0.92) 。对于基于代码库的以太坊客户端,大多数(76%)客户端运行 geth,另外得 16% 运行 Parity,这也得出了 0.92 的基尼系数,因为两个代码库占了生态系统的大部分。
开发的去中心化程度
在右上角的面板中,我们可以看到 Bitcoin Core 参考客户端有许多已经提交的工程师。尽管原始提交肯定是对贡献的不精确衡量,但从方向上看,似乎相对少数的工程师已经完成了比特币核心的大部分工作。对于以太坊的 geth 参考客户端,开发更加集中,两个开发人员完成了大部分的提交。
交易所的去中心化程度
跨交易所交易的比特币和以太坊的交易量差异很大,相应的基尼系数也是如此。但我们计算了过去 24 小时的基尼系数快照,以便在左下角的面板中进行说明。
节点的去中心化程度
去中心化的另一个衡量标准(底部中间面板)是确定比特币和以太坊在不同国家/地区的节点分布情况。
所有权的去中心化程度
在右下角的最后一个面板中,我们看看比特币和以太坊所有权是如何去中心化的,这一指数是以地址来衡量的。重要的一点:如果实际上我们包括地球上所有 70 亿人都在内,其中大多数人的 BTC 或以太坊为零,那么基尼系数基本上是 0.99+。如果我们只包括所有余额,我们包括许多 dust balances,这将使基尼系数再次达到 0.99+。因此,这里需要某种阈值。我们选择的不完美阈值是每个地址≥185 BTC,每个地址≥2477 ETH 的账户的基尼系数。因此,这是截至 2017 年 7 月拥有超过 50 万美元的比特币和以太坊的所有权分布。
像这样的阈值度量在什么样的情况下会很有趣?也许在类似于正在进行的IRS Coinbase 问题的情况下,IRS 正在寻找余额 > 20,000 美元的所有持有人的信息。从攻击的角度来看,高基尼系数意味着政府只需要围捕几个大持有者即可获得大部分优秀的加密货币——并因此有能力降低价格。
话虽如此,两点。首先,虽然人们不希望 BTC 或 ETH 的基尼系数正好为 1.0(因为那时只有一个人拥有所有数字货币,而且没有人有动力帮助提升网络),但实际上似乎非常高水平的财富中心化仍然与去中心化协议的运行兼容。其次,如下文所示,我们认为 Nakamoto 系数比 Gini 系数更适合衡量持有人集中度,特别是因为它避免了任意选择阈值的问题。
最大基尼系数:区块链去中心化的粗略衡量标准
我们能否将这些子系统去中心化的样本度量组合成系统去中心化的度量?第一种简单的方法就是在所有基本子系统上取最大基尼系数,如下所示:
因此,通过这一衡量标准,比特币和以太坊的最大基尼系数约为 0.92,因为它们都有节点,其客户端高度集中在一个代码库中(比特币的比特币核心,以太坊的 geth)。
至关重要的是,基本子系统的不同选择将改变这些值。例如,人们可能认为单一代码库的存在不会阻碍实际的去中心化。如果是这样,那么比特币的最大基尼系数将提高到 0.84,新的去中心化瓶颈将是各国的节点分布。
我们当然不认为这里的六个子系统的特定选择是衡量去中心化的完美选择;我们只是想收集一些数据来展示这种计算的样子。我们确实认为,最大基尼系数指标开始指向识别可能的去中心化瓶颈的正确方向。
最小 Nakamoto 系数:区块链去中心化的改进措施
然而,最大基尼系数有一个明显的问题:虽然高值符合我们直观的“更集中”系统的概念,但每个基尼系数都被限制在 0-1 范围内这一事实意味着它不能直接衡量破坏系统所需的个人或实体的数量。
具体来说,对于给定的区块链,假设你有一个交易子系统,其中有 1000 个参与者,基尼系数为 0.8,另一个子系统由 10 个矿工组成,基尼系数为 0.7。事实证明,仅损害 3 名矿工而不是 57 个交易所可能足以损害该系统,这意味着最大基尼系数将指向交易所而不是以矿工工作为去中心化的瓶颈。
有多种方法可以克服这个困难。例如,在组合它们之前为不同子系统的基尼系数提出原则性权重。
另一种方法是根据计算基尼系数的洛伦兹曲线定义一个精神上相似的指标,我们称之为“中本系数”。视觉效果如下。在此示例中,给定子系统的 Nakamoto 系数为 8,因为它需要 8 个实体才能获得 51% 的控制权。
也就是说,我们将 Nakamoto 系数定义为给定子系统中达到总容量的 51% 所需的最小实体数。通过取子系统中最小值的最小值来聚合这个度量,然后得出“最小 Nakamoto 系数”,这是我们需要妥协的实体的数量,达到这个数才足以破坏整个系统。
Nakamoto 系数表示危害给定子系统的最小实体数。最小 Nakamoto 系数是所有子系统中 Nakamoto 系数的最小值。
如果 51% 不是每个子系统的有效阈值,我们还可以定义“修正中本系数”。例如,可能需要 75% 的交易所被破坏才能严重降低系统性能,但只有 51% 的矿工。
我们现在可以使用上一节中的洛伦兹曲线来计算以太坊和比特币的 Nakamoto 系数。这是以太坊的参考客户端 geth 的计算示例。正如我们所见,如果有 2 个开发人员,我们获得了对geth的 51% 的提交,因此 Nakamoto 系数为 2。
这说明了这个概念。以下是比特币和以太坊所有子系统的图表,这次是计算 Nakamoto 系数:
这是一张我们汇总了每个子系统的 Nakamoto 系数的表格:
正如我们所见,鉴于这些基本子系统,我们可以说比特币和以太坊的 Nakamoto 系数都是 1。具体来说,Bitcoin Core 或 geth 代码库的泄露将损害超过 51% 的客户端,这将导致其各自网络的泄露。
为以太坊增加这一点意味着为 Parity 等非 geth 客户实现更高的市场份额,之后开发人员或挖矿中心化将成为下一个瓶颈。为比特币增加这一点同样需要广泛采用 btcd、bcoin 等客户端。
最小 Nakamoto 系数取决于子系统定义
我们认识到,有些人可能会争辩说,比特币的单一参考客户端的高度集中不会影响其去中心化,或者这种中心化是必要的。我们对这个问题不持任何立场,因为通过替代基本子系统定义,可以得出不同的去中心化措施。
例如,如果有人认为“创始人和发言人”是一个重要的子系统,那么以太坊的最小 Nakamoto 系数将微不足道地为 1,因为 Vitalik Buterin 的妥协将损害以太坊。
相反,如果将“具有大量采矿能力的不同国家的数量”视为一个重要子系统,那么比特币的最小 Nakamoto 系数将再次为 1,因为一些国家对采矿持有打击的态度,将导致超过 51% 的采矿受到损害。
选择哪些基本子系统最能代表特定的去中心化系统将是我们在本文范围之外考虑的一些辩论主题。但是,值得注意的是,“创始人兼代言人”和“禁止采矿的政策”是针对两条不同链的两种不同类型的攻击。因此,如果考虑比较各种加密货币之间的最小 Nakamoto 系数,某种程度的生态系统多样性可能会在数量上改善去中心化。
结论
许多人说去中心化是比特币和以太坊等系统最重要的属性。如果这是真的,那么能够量化去中心化是至关重要的。最小 Nakamoto 系数就是这样一种衡量标准;随着它的增加,破坏系统所需的最小实体数量也会增加。我们认为这符合直观的去中心化概念。
量化去中心化的明确措施很重要的原因有三个。
测量。首先,像这样的定量测量可以明确计算,随着时间的推移记录,并显示在仪表板中。这使我们能够跟踪子系统内和系统级别的去中心化历史趋势。
改进。其次,就像我们衡量绩效一样,像 Nakamoto 系数这样的衡量标准使我们能够开始衡量去中心化的改进和/或减少。然后,这使我们能够开始将去中心化的变化归因于代码的单独部署或其他类型的网络活动。例如,在资源稀缺的情况下,我们可以衡量部署 1000 个节点或雇用两名新的客户端开发人员是否会在去中心化方面提供更大的改进。
优化。最后,也是最重要的,一个可量化的目标函数(在数学意义上)决定了任何优化过程的结果。表面上相似的目标函数可以产生非常不同的解决方案。如果我们的目标是优化去中心化系统之间和内部的去中心化水平,我们将需要像洛伦兹曲线、基尼系数和中本系数这样的量化指标。
我们认识到,对于去中心化系统的哪些子系统是必不可少的,有很大的争论空间。然而,给定一个提议的基本子系统,我们现在可以生成洛伦兹曲线和中本聪系数,看看这是否是整个系统的去中心化瓶颈。
因此,我们认为最小 Nakamoto 系数是量化去中心化的有用的第一步。