区块链深V系列二|以太坊矿工中心化了吗?

转载
2398 天前
18168
链闻

火讯财经注:区块链深V系列一全面分析了挖矿及矿机生意的本质之后,今天,我们把目光聚焦在最近最受关注的以太坊挖矿领域。


如之前报道,比特大陆的以太坊挖矿机已经发布,其他几家较大型的矿机制造商也都披露了制造以太坊挖矿机的计划,这让部分矿工担心,这样很容易导致以太坊挖矿中心化,存在市场份额较大的厂商发起 51% 攻击的风险。Alethio 团队成员通过以太坊上数据,深入分析了以太坊目前挖矿现状。不过,尽管该团队的结论认为:「以太坊网络中,无论如何都很难实现部分矿工所担心的攻击」,但是不可忽视的一点是,一个攻击者只需要统一全网 1.5% 最强大的节点,就能控制整个以太坊网络。

作者:Danning Sui, Saulo Ricci and Johannes Pfeffer

编译:周恒宇

来源:链闻ChainNews

以太坊背后的本质是一个 p2p 网络结构,每个以太坊的参与者都是这个巨大结构中的一个节点。在这个分布式的网络中,每个节点都和其他节点相互连接,并且,为了保持整个区块网络的可持续发展,所有的节点都需要达成一致。其中一部分的节点实际上属于矿工们,他们的工作就是不断的贡献算力来确认接下来要上链的区块。

为了增加挖矿的成功率并获得更高频次的回报,矿工们之间经常相互合作来汇聚他们的哈希算力,进行挖矿活动。这种哈希算力的组合就是我们所熟知的矿池。矿池巨大的算力会对整个区块链网络产生影响。

近期的学术研究中都以各个矿池的哈希算力作为判断以太坊中心化的标准,但我们认为这种判断方式不仅把问题过于简化了,还会给对算力中心化的讨论带来一些分歧。

我们希望带领读者深入了解目前各个矿池的运行状态,以及他们的算力能力。此外,我们还会通过分析矿池向矿工支付报酬的方式,深入了解以太坊上的算力分布情况。

先说我们的结论,在以太坊生态中:

矿池是中心化的吗?这个问题的答案是:「是的」,矿池本来就是高度中心化的组织;

矿工们是中心化的吗?其实不是;

此外,在以太坊网络中,无论如何都很难实现部分矿工所担心的攻击;

不过,一个攻击者只需要统一全网 1.5% 最强大的节点,就能控制整个网络。

且看我们的详细分析。

挖矿究竟有哪些方式?

让我们从普及最基本的知识开始。对于常规的个人矿工来说,一般有三种挖矿方式:

1. 自己挖矿

矿工可以自己组织算力去挖矿。尽管在这种方式下矿工可以自己享有全部收益,但是对于只有一两台矿机的业余矿工,这种方式在现实中并不可行,因为在这些类似以太坊的热门区块链网络中,这种利用微弱算力的方式找到一个区块可能会花上几年的时间。

这些矿工不得不面对来自大矿池以及有大量电力资源与算力资源的合作群体的算力竞争。这种方式只有一个好处,即矿工可以掌握挖矿中的所有流程。

2. 加入一个矿池

矿工还可以通过加盟矿池的方式进行挖矿。通过把自己的哈希算力加入矿池的算力集合,矿工增加了自己认证一个区块的可能性。一旦矿池中的某个矿工发现并认证了区块,整个矿池中的矿工按照自己的算力贡献比例共同分享挖矿收益。

3. 「云挖矿」

除了拥有自己的硬件去挖矿这种方式 包括自己挖矿和矿池挖矿,矿工还可以从拥有自己矿机的那些矿工手里租用空闲机器挖矿。尽管需要向第三方支付费用,但是在这个过程中,云挖矿的矿工避免了在前期投入过多的购买与维护矿机的成本。

我们研究所用的数据

我们研究所使用的数据库包含了从 2018 年 4 月 21 日到 28 日一整周以太坊的区块数据,其中包含了以太坊的转账数据等。


(图注:数据集整体状况)

结论一:

以太坊矿池是中心化的吗?是的

为了佐证我们的分析,我们先来讲讲算力在所有的矿池之间是怎么分布的。

如下图所示,在本周之内,前五名的矿池挖到了 84% 的新确认区块。所以从某种意义上来说,矿池本来就是高度中心化的组织。

但其实在现实世界中,每个矿池都是相对独立的个体。一个矿池会包含所有为了提升挖矿能力而投入自己的挖矿设备的个体矿工的利益。所以,我们在分析中会深入矿池内部,来证明以太坊是如何实现去中心化这个目标的。


结论二:

以太坊矿工们是中心化?其实不是

上面的图给人第一印象是以太坊挖矿的算力是非常集中的。然而,正如前文所说,矿池本质上并不拥有大量的矿机,它实际上是通过集合许多个体的算力去挖掘新的区块。

当我们从个体矿工的角度去看这件事的时候,我们会发现整件事并不像我们想象的一样。

矿池向矿工支付报酬的最直接方式是直接返还收益。在这种情况下,收益直接从矿池账户中转到矿工的账户地址里。这种分配是经常使用的分配方式,而且分配数额可以由掌握矿池分配账户的矿工设定。

有些情况下,这种报酬的支付不会直接从矿池的账户中发出,而是选择通过独立的账户 被称作代理账户 返还给参与挖矿的个体矿工们。但也有一些矿池使用不那么直接的支付方式:他们直接使用法定货币,把报酬支付给个体矿工。举个例子:我们前文提到的云挖矿就是这样支付报酬的,他们会把报酬打进整个挖矿过程的参与者的信用卡里。

下面的表格列出了我们分析的时间段内,排名最高的几个矿池的状况。他们的挖矿收益大体上和他们挖掘的区块数量成正比。数据上的不符主要来自于支付过程的个性化以及时间上的延迟。

我们会发现,表中最后那个叫「bitclubpool」的矿池支付的报酬明显和挖掘到的区块数量不成比例。Bitclubpool 就是我们所说那种不会直接从矿池账户返还报酬给矿工的矿池 这点我们可以从独立支付账户的数量上推断。我们认为这种操作报酬的方式非常的不透明,并且会降低矿工们对它的信任。


下面的图像描绘了矿池向每个矿工支付报酬百分比的累计分布函数 CDF。累计分布函数的图像主要说明的是样本的分布情况。曲线陡峭的地方说明,x 轴上的这个数值附近是样本比较集中的区域,并在 y 轴上说明了在这个数值以下的样本占总体样本比例。

该累计分布图像显示,向矿工小数额的报酬支付占了所有支付中的绝大部分。我们通过分析发现,前四大矿池给每个矿工支付的报酬平均只占他们总报酬的 0.04%。得到占总报酬比例最大的报酬的矿工是「nanopool」的一个参与矿工,他能够收到矿池整体收益的 3.7%,


矿池如何向矿工们支付报酬?

我们在分析过程中观察到了矿池三种不同的报酬支付方式:

1. 直接在链上使用加密货币支付,这么做的有 Ethermine、Ethfan、F2pool、nanopool 等等矿池。

特点:

  • 每笔支付金额很小,面对的支付账户众多
  • 大多数支付金额都小于 1 个 ETH
  • 支付的账户所有者都是实际参与挖矿的矿工

2. 通过链上的代理账户支付报酬。 比如以下这个账户就是链上的一个用于支付的代理账户 0xb75d1e62b10e4ba91315c4aa3facc536f8a922f5

特点:

  • 用于针对少量账户的大额支付
  • 每次转账平均向特定账户支付大概 100 个 ETH
  • 账户是代理账户,直接支付给实际参与的矿工
  • 通过非链上账户,例如信用卡支付,如 Bitclubpool
  • 大金额转账支付
  • 金额量大致是每笔 1000 ETH
  • 支付账户通常是矿池拥有者的个人账户

下图是一张收到付款的矿工数量以及平均支付金额的散点图。其中包含了不同的支付方式,并做了相应的聚类。


我们可以发现前五的矿池 miningpoolhub, f2pool, ethfans, nanopool 和 ethermine 都有一样的模式:大量的矿工以及小数额的支付。这说明他们直接向矿工支付报酬,这也符合矿池中矿工的去中心化结构。

但从另外的角度来讲,「bitclubpool」是一个在图像左边顶端的异常点,这意味着「bitclubpool」 只会向几个账户支付极大数量的报酬。这些账户并不从区块挖矿网络中收到他们的报酬,因为我们显而易见可以看到他们收到的 35,173 个 ETH 是远超过当周他们挖出的 1124 个区块的收益的。Bitclubpool 的网站上说他们通过法定货币使用支票账户来支付报酬。我们认为 Bitclubpool 上大量的链上支付其实是向其他矿池拥有者的转账。同时,有迹象表明,Bitclubpool 和 bw 在用挖矿来掩盖某些欺诈行为。

此外,我们仔细探究了上图中临近 Bitclubpool 和 bw 的点。地址 0x92e3f585ab699445fd7a809b5edf0c3dc88fb549 下的支付模式和 Bitclubpool 以及 bw 类似。

而上图中地址为 0xb75d1e62b10e4ba91315c4aa3facc536f8a922f5 的矿池支付也有一定特点。我们发现它每次支付报酬都价值约为 100 ETH,并且都转入同一个账户内。然后这个账户会用小于 1 ETH 的额度将收益转入其他账户,有点类似于前几大矿池使用代理账户的做法。

如果发动一次 51% 算力的攻击需要多少矿工?成千上万个

51% 算力攻击是一个在区块链生态中经常流传的一个问题。当攻击者掌握了全网超过一半的哈希算力,他就能最终创造全网最长的一条链,这条记录信息的链完全属于他,甚至可能不包含任何一个其他矿工之前挖出的区块。因为最长的链总是被认为是最优公信力的那条,所以攻击者就有了以下的特权:

  • 控制区块认证哪些转移支付 审查制度
  • 撤销稍短的竞争链 引起双花和其他攻击
  • 引起许多负面影响

我们收集了来此不同矿池的矿工信息,并按照他们调查当周收到的报酬,对他们做了排序,根据算力与收益的比例关系,我们可以判断他们掌握的算力大小。

为了能够实现过半算力,一个攻击者必须尽力说服超过 4484 个矿工合作才能发起攻击;也就是说,至少 4484 个矿工统一恶意攻击才能颠覆整个以太坊网络,而不是表面上看到的 3 个矿池就能颠覆网络。然而,这排名前 4484 的矿工只占全网矿工 按照支付地址计算 的 1.5%。下图说明了有 297443 名矿工掌握着剩下 50% 的算力。因此,从另外一个角度来讲,一个攻击者只需要统一全网 1.5% 最强大的节点就能控制整个网络。


一旦实现了 51% 算力的攻击,就会给整个加密货币市场造成巨大影响。如果竞争链条没有攻击链条长的话,一次持久的 51% 攻击甚至会阻止其他矿工从网络中挖出新的区块。假设矿工们都足够理性的话,他们会尽力保护他们投资与回报的价值。如果某一矿池达到了接近全网 50% 的哈希算力,或者和其他矿池协作达到了超过 51% 的算力,矿工们为了保护自己的收益,就会放弃这些矿池。