“去中心化”不是单纯概念,也可以量化

怎样对“去中心化”进行量化?

区块链的一个重要特点是去中心化,或者说是分布式。但是关于什么是去中心化,还是非常有争议的。比如关于比特币的去中心化程度,关于EOS的去中心化的程度,很多人的看法都是不同的。那么,到底有没有办法在这一点上减少争议,甚至达成共识?

比特币和以太坊相比传统替代品,其主要优势是去中心化被广泛认可。然而,尽管这一财产的重要性得到了不少人认同,但大部分关于这个问题的讨论都没有从量化的角度进行。

如果我们能够形成一个量化的衡量标准,那将使我们能够:

a、衡量给定系统的去中心化水平;

b、确定对系统的某项修改将如何增加或减少其去中心化水平;

c、设计优化的算法和架构,以达到最大程度地去中心化。

受著名的基尼(Gini)系数和洛伦兹(Lorenz)曲线启发,我们在本文中提出“最小Nakamoto系数”作为一种简单的、定量衡量系统去中心化水平的方法。

其基本思想是:

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%。

去中心化系统由多个子系统组成

为将这一概念应用到公用区块链领域,我们需要区分去中心化的系统和去中心化的子系统。具体而言,一个去中心化的系统(如比特币)由一组去中心化的子系统(如挖矿、客户端、交易、节点、开发者、持币人)组成。下图展示了组成比特币的6个子系统:

“去中心化”不是单纯概念,也可以量化

我们将使用这6个子系统来说明如何衡量比特币或以太坊的去中心化。请注意:可能会根据子系统对整个系统的去中心化的重要程度来决定使用不同的子系统。

某些人可能会认为,其中一些去中心化的子系统可能比其他子系统更重要。例如,挖矿是比特币功能的绝对必要条件,而交易(尽管重要)则并非比特币协议的一部分。

然而,我们可以假设,一个给定的个体可以划分出一个界定去中心化系统中必要的去中心化子系统的界限。这样,我们就可以认为,如果可以控制任何必要的去中心化子系统,就可以控制由这些子系统组成的去中心化系统。

对比特币和以太坊去中心化水平的量化

鉴于这些定义,现在我们来计算比特币和以太坊挖矿、客户端、开发者、交易、节点和持有者这6个子系统的洛伦兹曲线和基尼系数。根据它们,我们可以发现这6个子系统有多么集中化。

比特币的曲线如下图所示:

“去中心化”不是单纯概念,也可以量化

以太坊的曲线如下图所示:

“去中心化”不是单纯概念,也可以量化

让我们依次参照上面每个图中的六个子图来讨论这些子系统。

挖矿算力分散程度

出乎我们意料的是,图x的左上角表明,如果以过去24小时的出块奖励来衡量,比特币挖矿算力是分散的,而以太坊挖矿则更集中。由于这些值之间的差异很大,所以我们可以跟随时间的推移来追踪它,或者取每7天或每30天的平均值。

客户端分散程度

从每张图的第2张子图可以看出,大多数比特币用户使用Bitcoin Core客户端,Bitcoin Unlimited是第二受欢迎的客户端。如果用不同客户端代码库的数量来衡量,这样的数据意味着相当高的集中度(Gini = 0.92)。

对于以代码为基础的以太坊客户端,大多数客户端(76%)运行geth,另有16%运行Parity。由于这两个代码库占据了大部分生态系统,所以基尼系数也为0.92。

开发者分散程度

在图的右上角,我们可以看到Bitcoin Core参考客户端有一些已经有过提交的工程师。尽管原始提交是一种不太准确的贡献度,但从方向上看,只有较少的工程师完成了Bitcoin Core的大部分工作。对于以太坊的geth参考客户端来说,开发更为集中,有两个开发人员负责大部分的提交。

交易分散程度

不同交易内,比特币和以太坊的交易量变化很大,相应的基尼系数也是如此。我们在过去24小时内计算了基尼系数的快照,并在左下方的小图中进行了说明。

节点分散程度

另一个衡量标准(如图中的第5张子图所示)是确定比特币和以太坊在各个国家的节点分布情况。

持有者分散程度

在右下角的子图中,我们可以看出如何通过地址来衡量比特币和以太坊的持有者分布。 重要的一点是,如果我们把全球70亿人口都计算在内,而其中绝大多数人没有比特币或以太坊,基尼系数基本上为0.99以上。

如果我们只考虑账户余额,我们就会将很多余额量很小的账户计算在内,这将使基尼系数再次达到0.99以上。

因此,我们需要在这里设置一些条件。我们设置的条件是大于等于185个比特币和大于等于2477个以太坊的账户的基尼系数,右下角的结果就是在2017年7月账户市值大于500万美元以上的比特币和以太坊持有者的分布情况。

这样的阈值指标在什么样的情况下会变得有趣呢?也许,在类似于正在进行的IRSCoinbase问题的情况下,IRS正在寻找所有余额大于20,000美元的持有者的信息。从攻击的概念来看,高基尼系数意味着政府只需要召集几个大型持有者就能获得大量优秀的加密货币,并且可以压低价格。

鉴于此,需要说明的有两点。首先,虽然人们不希望比特币或以太坊的基尼系数恰好为1(如果只有一个人拥有全部的数字货币,没人会有动力来帮助提升网络),但在实践中,高度集中的财富水平似乎仍然能与去中心化协议的运作并存。

其次,如后文所示,我们认为Nakamoto系数是一个比基尼系数更好的度量标准,因为它避免了任意选择阈值的问题。

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

我们是否可以将这些去中心化子系统的抽样方法与衡量一个系统的方法相结合?第一种简单的方法就是在所有必要的子系统上取最大基尼系数,如下图所示:

“去中心化”不是单纯概念,也可以量化

根据这一标准,比特币和以太坊的基尼系数最大值为0.92,因为他们的客户端和节点均集中在一个代码库中(比特币的集中于Bitcoin Core,以太坊的集中于Geth)。

关键的是,选择不同的必要子系统会改变这些值。例如,有人可能认为,单一代码库的存在并不妨碍实际的去中心化。如果是这样的话,比特币的最大基尼系数将降低至0.84,各国之间的节点分配情况将成为去中心化新的瓶颈。

我们并不认为这里的六个子系统是衡量去中心化水平的最佳选择,我们只是想收集一些数据来展示这种计算方法。我们坚定地认为,最大基尼系数指标为我们判断去中心化瓶颈指明了正确方向。

最小Nakamoto系数:改进的区块链去中心化水平的度量方法

然而,最大基尼系数有一个明显的问题:尽管该指标分数越高,代表系统更符合我们直观上认为的“更为集中”这一概念,但每个基尼系数的取值范围都是0-1,这意味着它不能直接度量要控制这个系统所需的个体或实体的数量。

具体来说,对于一个给定的区块链系统,假设你有一个基尼系数为0.8的交易子系统,它有1000个参与者;另一个子系统是基尼系数为0.7的10个矿工。

事实证明,只需控制3个矿工(而不是57个交易参与者)就可能足以危及这个区块链系统。这意味着,如果依照最大基尼系数指标,就会将交易而不是矿工作为去中心化的瓶颈(而这与实际情况是不符的)。

有很多方法可以克服这个问题。比如,我们可以在将子系统组合起来之前,指定不同子系统的基尼系数的权重。

另一种方法是根据计算出的基尼系数的洛伦兹曲线,定义一个本质上相似的度量方法,我们称之为“Nakamoto系数”。在下面这个例子中,给定子系统的Nakamoto系数是8,因为它需要8个实体来实现51%的控制。

“去中心化”不是单纯概念,也可以量化

也就是说,我们将Nakamoto系数定义为:在给定子系统中控制总容量51%所需的最小实体数量。

通过取所有子系统的Nakamoto系数的最小值,我们就能得到最小Nakamoto系数的值。它表示“至少需要说服多少实体来作恶,才能控制整个区块链系统”。

“去中心化”不是单纯概念,也可以量化

Nakamoto系数表示损害给定子系统的实体的最小数量。最小中本系数是系数中本上所有子系统的最小值。

如果51%不是每个子系统的操作阈值,我们也可以定义一个“修正的Nakamoto系数”。比如,也许可能要控制75%的交易才能控制某个区块链系统,但只需要控制51%的矿工就能达到同样效果。

现在我们可以使用前一节中的洛伦兹曲线来计算以太坊和比特币的Nakamoto系数。以下是以太坊客户端Geth的计算示例。正如我们所看到的,只需控制2个开发者,我们就得到了51%的控制权,所以Nakamoto系数是2。下图很好地说明了这个概念。

“去中心化”不是单纯概念,也可以量化

下面是比特币和以太坊的所有子系统的图表,这次是根据Nakamoto系数计算出来的:

“去中心化”不是单纯概念,也可以量化

“去中心化”不是单纯概念,也可以量化

下面是我们汇总的每个子系统的Nakamoto系数表格:

“去中心化”不是单纯概念,也可以量化

正如我们所看到的,给定这些基本的子系统,我们可以说比特币和以太坊的Nakamoto系数是1。具体来说,如果Bitcoin或Geth代码库被控制,会损害超过51%的客户,这将导致他们各自的网络被控制。

对于以太坊来说,想要增加这个系数就意味着像Parity这样的非geth客户会获得更高的市场份额。在此之后,开发者或挖矿的集中化将成为下一个瓶颈。对于比特币来说,想要增加这一系数同样需要广泛采用btcd,bcoin等客户端。

最小Nakamoto系数取决于子系统的定义

我们发现,有些人可能会认为,比特币中高度集中地使用单一客户端并不影响其去中心化,或者(反过来觉得)这种高度的集中显然是罪恶的。我们在这个问题上没有采取任何立场,因为在不同的基本子系统定义下,可以得出不同的去中心化度量方式。

例如,如果认为“创始人和发言人”是一个重要的子系统,那么以太坊的Nakamoto系数最小值将为1,因为一旦Vitalik Buterin被控制,对以太坊来说是一个巨大危险。

相反,如果把“具有大挖矿能力的不同国家的数量”作为一个基本的子系统,那么比特币的最小Nakamoto系数将再次为1,因为一旦中国政府取缔国内挖矿,51%以上的挖矿算力会受到威胁。

确定“哪个基本子系统能最好地代表一个特定的去中心化系统”不在本文讨论的话题范围之内。但值得注意的是,对“创始人与发言人”和“中国矿工”的控制是对两种不同区块链的两种不同攻击。

因此,如果考虑比较不同币种中Nakamoto系数的最小值,适当考虑一定程度的生态系统多样性可以定量地改善去中心化。

结论

很多人曾说过,去中心化是像比特币和以太坊这样的系统最重要的属性。如果这是真的,那么对去中心化进行度量至关重要。

最小Nakamoto系数就是这样的一个方法。随着它的增加,控制系统实体的最小数量也会增加。我们相信这符合去中心化的直观概念。

对去中心化进行量化的重要性体现在三个方面:

1.度量

首先,像这样的量化措施可以清楚地计算出来,随时间记录下来,并显示在仪表盘中。这使我们有能力追踪子系统和系统层面的去中心化的历史趋势。

2.改进

其次,就像我们度量绩效一样,像Nakamoto系数这样的度量标准使我们可以开始度量改善和/或降低去中心化水平。

这样,我们就可以开始将去中心化的变化归功于个别部署的代码或其他网络活动。例如,在资源稀缺的情况下,我们可以测量部署1000个节点或者雇用两个新的客户开发人员是否会在去中心化方面提供更大的改进。

3.优化

最后,最重要的是,一个可量化的目标函数(在数学意义上)决定了任何优化过程的结果。表面上类似的目标函数可以产生非常不同的解决方案。

如果我们的目标是优化去中心化系统内部和系统之间的去中心化水平,我们将需要量化的指标,如洛伦茨曲线、基尼系数和Nakamoto系数。

我们意识到,关于“一个去中心化系统中哪些子系统是必不可少的”这一讨论还有很大的空间。然而,一旦给定一个基本子系统,我们现在就可以生成一个洛伦兹曲线和一个Nakamoto系数,并确定该子系统是否会成为整体系统的去中心化瓶颈。

因此,我们认为最小Nakamoto系数是量化去中心化的有益的第一步。


分享到:


相關文章: