天天看点

《我学区块链》—— 三十二、以太坊安全之 探矿中心化漏洞三十二、以太坊安全之 挖矿中心化漏洞

三十二、以太坊安全之 挖矿中心化漏洞

下文为翻译自 Jimmy Song 个人博客。

1、什么是「挖矿中心化」

首先,需要定义一下大家口中的「挖矿中心化」是什么意思。

事实上,挖矿中心化有两种不同的解释:

  • 矿机的生产大部分都掌握在一家公司手中
  • 大部分的哈希算力都被一家公司掌握

上述这两种情况是完全不同的。

当人们说起挖矿中心化的时候,实际上并没有说清楚到底是指上述哪种情况。所以,分析会分别从上述两种情况下展开,分别分析上述两种不同情况下的风险,以及可能受到的攻击。

![btc-calc][] > 机架上是比特币网络上的部分算力,新的矿机从上架即开始吞噬电力并产生价值

2、矿机制造中心化的风险

比特币矿机生产商比特大陆确实生产了大部分的 Double-SHA256 这是比特币、比特币现金以及其他一些数字货币背后的 PoW 哈希算法 挖矿装备,同时,比特币网络上大部分哈希算力大部分来自于比特大陆制造的矿机。这是现实,但是我的观点是,尽管比特大陆生产了绝大部分的矿机,他们并不一定控制着这些设备。

为了证明我的观点,不妨做一个最大胆、也是最坏的假设:想想看,如果单一厂商生产了大部分网络运行所的需资源设备,究竟有哪些风险?

2.1、风险之一:后门

在这种可能下,假设比特大陆售出了网络内绝大部分设备。这时的风险就是比特大陆在挖矿设备中通过隐藏硬件、韧体、软件设置了某种后门。这些后门可能会具有以下某些功能:

  • 强迫矿机联通到比特大陆控制的矿池,挖比特大陆选择的特定币种;
  • 改写区块参数,以将奖励发至比特大陆控制的区块地址;
  • 废弃 PoW 产出,除非矿工连接了比特大陆控制的矿池;
  • 使用预定信号关闭矿机。

前两种潜在的后门对于留心该风险的人来说,其实非常明显。而且一个简单的登录过程就能证明这种后门的存在。这种后门如果被发现,后果将是极大地比特大陆的声誉,而且会让该公司成为集体诉讼的被告。这无异于对于比特币自杀式的攻击,只能在短期内影响到比特币,但是这会完全摧毁比特大陆这个设备制造商。

第三与第四种后门可以被更巧妙的隐藏,但是这并不意味着不能被发现。废弃 PoW 产出会延迟区块确认时间,同时也会使得非比特大陆矿池显得产出率更低。使用远程开关会让设备失灵。两种方式的直接影响其实对比特大陆都是有害的,因为他们必须在这两种情况下面对退款以及设备失灵的投诉。同时,这样的行为还存在被竞争者发现并利用的风险。

需要明确说明的是,这些后门是任何矿机制造商都可能放在他们的设备里的。硬件是很难被监督的,更何况你从某个制造商那里购买矿机,代表着你对他们有足够的信任。

在经营的这 4-5 年里,比特大陆并没有使用这些旁门歪道,他们也没有理由使用这样的后门。这种后门需要周密的计划,有很大的暴露风险,实际回报也不高。

2.2、风险之二:设计缺陷

这种情况的假设和上一个情况一模一样,但是设备是有致命缺陷的。或许设备会在一定温度以上起火,或许设备计算错了时间戳。

这种情况下,最坏可能是设备创造出了错误的能被网络其他部分看到的区块。这种情形同样只会伤害到设备制造商,因为他们需要面对客户投诉并负责。

2.3、风险之三:价格飞涨 / 限制购买 / 运输延迟

在这种场景下,设备制造商利用自己在行业内的上游地位增加购买者的额外支出。这种支出可能包括提高产品价格、强迫使用一定的支付手段、延迟发货甚至限制产品用途。

所有的这些手段是不能被容忍的,因为设备总价不能高于竞争市场中的均衡价格,否则会被友商抢去订单,所以定价策略必须要明智。这种情况下带来的额外收入都是以长期损害声誉为代价的。

3、哈希算力中心化的风险

尽管上文说到的制造商行为可能会导致一定的坏结果,但是相比之下哈希算力中心化的危害更大。具体来讲,就是一家公司可能会控制整个网络超过一半的算力。

这种情况可以被细分为两种:

  • 一家公司掌握了超过 50% 算力的矿池;
  • 一家公司掌握了超过 50% 算力的机器。

![machine-bug][] > 透过软件监控矿机的运行状态,并在故障时向员工及时发出警报

这两种情况潜在的威胁大致相似,但是应对这两种威胁的方式其实有细微的差别。如果一个单一个体掌握了很多的矿池,该矿池的其他个体可以通过转向未受控制的矿池来应对威胁;如果单一个体控制了大量的机器,就无法解决了。

下面来讨论掌控大量哈希算力的个体攻击整个网络的方式。

3.1、风险之一:个体主导整个区块链

显而易见的是,拥有大多数哈希算力可以轻而易举的拒绝认证其他人产生的区块,本质上就是将所有区块的产出占为己有。他们可以否决自己不喜欢的交易,并且也可能会使用双花套利。

如果掌控的算力不是大幅超过 50% 的话,从数学角度看,这种攻击其实并不像听起来那么容易实施。

为了证明这一点,假设有一个制造商叫做「Mitbain」,这个制造商控制了 60% 的哈希算力,并且打算执行区块否决的攻击。网络上剩余算力发现一个存在区块的可能性是 40% 。很明显,因为少数算力群体仍然有一定的哈希比例,所以在某一时点,Mitbain 掌握的区块有可能比网络其他的算力少 1 个区块。

为了夺取控制权,「Mitbain」需要比其他算力再多找到 2 个区块,但这个并没有听起来那么容易。

即使在拥有绝大部分算力和大量时间的条件下,再多找到 2 个区块是可能的,但是这不会很快发生。占据比剩余网络算力更多的区块,「Mitbain」必须获得更多的区块,这个数量实际上非常多,远不止 2 个。这个问题在 math.stackexchange.com 网站上有过讨论。如果拥有全网 60% 的哈希算力,在比其他网络算力少 1 个区块的情况下,完全超过对方预计需要获取 6 个区块。具体的计算公式可以参考

https://math.stackexchange.com/questions/2201391/what-is-the-expected-number-of-flips-of-an-unfair-coin-until-you-have-2-more-hea

注意,此处只有全网 60% 算力,所以对应的时间并不是 60 分钟,而是 100 分钟。不仅如此,即便是在对攻击者最有利的条件下,整个网络会因为攻击者这 6 个新区块而废除之前的 5 个区块。前 5 个区块中包含的交易都会被作废,就好像支付没有存在过,而攻击者的 6 个区块将被作为事实陈列。这被称为区块重组,说明了双花是怎么产生的。当然,攻击者可能会「好心」地包含同样的交易信息,但是这并不能被保证信息没有丢失。

在这样的假设情景中,没有一个理性的商户或者交易所会接受少于 30 个确认。

![calc-table][]

上图说明了每次网络剩余算力找到一个区块,攻击者预计要获得多少个区块才可以重组区块。可以看到,即使拥有全网 70% 放入算力,执行这样的攻击也是十分费时费力的。就算有足够的算力找 6 个全新的区块,攻击者此时可能还是会落后 2-3 个区块。这种情况下攻击者还会继续攻击吗?

而且,当剩余网络算力发现有区块重组的迹象时,可能会检查这些有嫌疑的新区块。很有可能节点操作员直接将这些区块作废,并将剩余网络算力发现的区块作为准则加入,这种情况下,攻击者无疑浪费了巨大的算力,并向全网宣布了自己恶意攻击的倾向。

此外,在攻击过程中,每次非攻击者发现一个区块都会引发区块重排,这会导致攻击的产出十分有风险。除非有超过 80% 算力,这种攻击产生的比特币都不能用。

这种攻击从经济学角度考虑并不合理,因为对攻击者而言,并没有很好的收益。而且即使成功,比特币仍会存活,因为暂时性的破坏并不能导致所有的比特币拥有者出售资产。

3.2、风险之二:关闭算力

当拥有超过 51% 的哈希算力,并不需要攻击网络也能造成影响。超过 51% 的哈希算力,可以简单地拒绝挖矿,或拒绝向全网提供相应的安全措施,对整个区块链产生影响。假设 80% 的哈希算力出于某种原因拒绝挖矿,这就和饥荒很类似了。这种情况会导致全网出现问题。区块确认时间可能会从 10 分钟增加到 50 分钟。内存池会很快被填满,同时交易会变得十分缓慢。这会导致更高额的手续费。

但是,这种攻击对于攻击者来说,付出的代价更加昂贵。在这种攻击中,他们每天会损失 1437 枚比特币,按当前价格计算,超过 1000 万美元。即使其设备被用来在其他网络上挖矿,收益和机会成本也会大幅受损。

而且,比特币网络确认时间会在几周内恢复,但是攻击者损失的收益是一去不返了。

即便拥有 51% 以上的算力,也不是为所欲为

回顾一下,即便拥有了超过 51% 的大规模算力,也有一些事情是做不到的:

  • 超过 51% 的算力没法夺走你已经拥有的比特币。你所有的比特币都是你的资产,最坏情况也是攻击者可以双花或者拒绝你的对外交易。
  • 算力集中没法改变比特币的规则。他们可以创造新的认证规则,但是那只是硬分叉,会要求网络中的每个人更新规则。他们可以试图说服网络中剩余参与者,相信他们的规则更好,但是作为拥有权力的个体,比特币的使用者没有义务一定同意这些规则。
  • 攻击者没法在不伤害自己的情况下侵犯你的权益。攻击者可以破坏网络,但是他们一定会有大量的机会成本。他们可以试着双花但是有着巨大的被各节点列入黑名单的风险。

应该如何看待比特大陆?

人们对比特大陆意见不小,但是不能忘记,这些制造商出现之前整个比特币网络的样子。Butterfly Labs、CoinTerra 以及 KnC Mining 都是这个行业一些早期玩家,都有着许多严重的问题。

比特大陆为整个挖矿行业带来了前所未有的专业化发展。他们自 2014 年开始出售组装好随时可用的矿机,而当时其他同行们总是要延误数月甚至数年才能交付矿机。比特大陆的这种竞争力就是其他厂商破产的原因。

![calc-factory][]

当然,没有理由相信比特大陆会一直占据行业主导地位。

首先,行业内已经出现了很多的竞争者。就我所知,至少四家公司正在进入该领域,并且试图颠覆比特大陆的地位。同时,一些大公司,比如三星、英特尔、英伟达,也在进入这片蓝海。

其次,矿机制造并不像比特币本身具有强网络效应。矿工们或许会留意矿机是哪个厂家生产的,但是他们更关心的应该是他们能用矿机挣多少钱。换句话说,比特大陆的客户并没有很强的复购意愿。

第三,比特大陆现在是一家非常大的公司。他们正在研发机器学习芯片、比特币之外其他加密货币的 ASIC 矿机,同时展开收购,并投资各种类型的项目。大公司通常不如小公司业务能力出众,时间久了,很多大公司病也会暴露出来。

这并不是说比特大陆一定会将他们大部分市场份额拱手让人,但可以确定的是,整个市场还有巨大的竞争空间。

如果你和我一样相信自由市场,很容易就会想到任何的不平衡都会最终被消灭。目前矿机生产和挖矿市场上就存在这样的不平衡。矿机制造中心化只会是一个短期问题。

我必须说,挖矿中心化一直是整个比特币社群中吓人的鬼故事。更糟糕的是,许多人仍然相信挖矿中心化会让一部分人控制整个网络。

去中心化的各种特点帮助比特币成为一种能够抵御中心化控制的资产。而且,挖矿中心化并不是一种能够持续的经营方式。长期来看,矿机作为一种商品,大家都会降低价格。很明显,比特大陆会非常努力维持市场份额,但是如果没有过硬的产品,这种努力昂贵又短命。