「区块链基础概念100」:51%攻击 | 021
「区块链基础概念100」由火星财经「学习区块链」频道出品,在区块链基础概念之上延展深度阅读,并紧密连接产业,关注产业发展热点和趋势。
1. 基础概念
51% 攻击/ 51% attack
51% 攻击,是指利用比特币以算力作为竞争条件的特点,凭借算力优势篡改或者撤销自己的付款交易。如果有人掌握了50% 以上的算力,他能够比其他人更快地找到开采区块需要的那个随机数,因此他能够比其他人更快地创建区块。
2.深度解读
租赁算力实施 51% 攻击,中本聪没能预见的流动挖矿市场问题
导读:随着全球算力池不断增长,也更具流动性,加密货币可能需要抵制其他潜在威胁,因为攻击者可能会针对某个特定挖矿算法租用全球算力。
70来万美金即可对BTC发起1小时的51%攻击?天方夜谭!
昨日一则76万美金即可对BTC发动51%攻击的消息传遍全网,此外ETH、BCH、BSV等知名币种均中枪,发起一次51%攻击的所需成本似乎远远没有我们想象的高。因此不少“聪明人”根据此消息迅速想到,是否对BTC搞一次51%攻击,顺便在期货市场做空,以谋取暴利。可惜,这只是一个美好的梦想。
为什么大币种51%攻击几乎不可能实现?
首先需要说一下这个76万美金实现51%攻击的数据来源:crypto51。
Crypto51(网址www.crypto51.app)是一个上线已久的网站,提供的数据也很有意思,均为各币种51%攻击相关的数据。在这里我们可以看到BTC目前1小时51%攻击的成本约为77万美金。

但是这个数字真的能买到BTC上51%算力1小时吗?并非如此。
该网站的算力价格来源为国外知名算力市场Nicehash的数据,而Nicehash的算力租售页面是这样的:

可以很清楚的看到,算力租赁是有市场行情没错,但是当前总共可供租赁的算力(350PH)也不足全网算力(6.7万PH)的1%,何况你在大量租赁的过程中,算力价格就会被你给买上去,实现攻击的成本会远超当前报价。其次,要成功实现一次双花攻击,仅仅控制1小时的51%算力是远远不够的,整个过程可能需要数天时间,成本非常巨大。
那么如果更阴谋论一些,联合市场上几大矿池来干这个事,可行?
如果你真能说服前市场上前几大矿池联合发起,那是可行的。可是我不认为有人会愿意为这点小利而摧毁整个行业。

目前BTC算力较为分散,要获取51%以上算力需联合前四大矿池才可实现
可能有人要问了,去年不是出现过几次51%攻击,这个隐患还会一直存在吗?
去年5-6月期间,确实接连出现过数次小币种的51%攻击,但当时刚好赶上特殊的时间节点才让发起51%攻击的成本较低,也比较容易。
当时共有BTG、XVG、ZEN等币种被攻击,他们有个共同特点,均采用和ZEC相同的Equihash算法,但在整体市值和币种整体算力上都比ZEC小得多,并且都在币安上有交易,交易深度还行,通过攻击进行双花有利可图。因此黑客可使用数量不算太夸张的挖ZEC的新款矿机用于对这些小币种发动攻击,攻击成本不高且能获得利润。具体可以看大毛去年写的这篇文章:
51%攻击狂潮来临,POW币种的黄昏,还是ASIC矿机的末日?
在接连发生51%攻击后,各PoW币种的开发人员也都渐渐对抗51%的实现作为一个开发重点,例如ZEN在接下来的几个月时间内就完成了版本升级,实现了从根本上对51%攻击的防御。
此后到今年的过程中,同样的故事只出现在ETC上,他在今年1月遭受过一次51%攻击。好在这几次攻击事件上黑客虽成功进行攻击并达成双花,但事后统计表明攻击造成的损失并不是太夸张,多在百万美元级别。不过一旦遭遇攻击,该币种随之而来的暴跌是免不了的。
不难看出,之前包括未来可能遭受51%攻击的币种有以下特点:
1. 采用和某个市值高得多的币种相同的哈希算法,攻击者可使用用于挖大币种的矿机在小币种上发动攻击;
2. 该币种尚未在底层实现抗51%攻击的功能,同时市值也并非太低,有良好的交易深度,黑客攻击有利可图。
今年随着市场整体好转,一些小矿币又伴随着喊单群的火热冒了出来。但大毛想提醒各位投资者,对矿币的投资最好能对他的算法和技术层面有一些了解,以免成为黑客的提款机。
导读:昨日一则76万美金即可对BTC发动51%攻击的消息传遍全网,此外ETH、BCH、BSV等知名币种均中枪,发起一次51%攻击的所需成本似乎远远没有我们想象的高
国外技术大神想出一个大招,能让51%攻击者付出惨重代价

众所周知,在区块链中,只有大部分人受利益(挖矿奖励等)的驱动表现出诚实行为整个区块链才能正常运行,但如果诚实行为获益低于欺骗行为,就会有人铤而走险,如果铤而走险的人占据大多数,整个区块链就会出现各种各样的问题,最典型的莫过于 51% 算力攻击。
那么问题来了,去中心化实现了权力的下放,而下放后权力又该如何制衡保证不作恶?
国外大神Tomaz Kariz受到矿池的启发,提出在选择区块链时将区块链中的“诸侯”矿池作为一个影响因素,引入区块链评分机制以及惩罚机制,奖惩结合从而让51%攻击的成本更高。
那么,矿池与区块链的选择如何结合?效果又会怎样?让我们跟着大神一探究竟!
作者 | phyro — Tomaz Kariz; 译者 | Guoxi; 出品 | 区块链大本营(blockchain_camp)
前段时间,以太坊经典( ETC )区块链遭受了51%算力攻击,这引起了我深深的思考。
从理论上来说,我认为 51% 算力攻击并不是区块链网络设计的败笔,但我们是否有办法让这些 51% 算力攻击的攻击者付出更昂贵的代价?
当一个区块链节点客户端发现同时存在多个区块链时,它必须决定选择哪个区块链,这时节点客户端会分别计算每个区块链的评分 chainScore ,然后选择分数最高的区块链。
在PoW共识的区块链中,选择区块链的规则通常被称为“最长链规则”,其中区块链的评分 chainScore 等于该区块链上完成工作量的总和。这种根据评分来选择区块链的好处在于它是完全客观的。
一个主观评分的例子是,区块链节点客户端对区块链的打分标准不仅根据在该区块链上完成了多少工作量,还考虑到了如果切换到该区块链时将从本地维护的区块链中删除多少个区块,即对那些可能需要你更改本地维护区块链的区块链带有偏见。

基于将从本地维护区块链中删除的区块数量的主观区块链评分
另一个主观区块链选择规则的例子是照常计算区块链评分 chainScore ,但只有在切换到它需要从本地区块链中删除的区块数不超过 20 个时才切换到这个具有更高评分的区块链(该规则通常被称为最大化重组覆盖,max reorg cap )。
这个规则不仅会出现“新节点问题”(如上图所示),而且即使所有节点都运行着相同版本的客户端程序,它也可能会导致硬分叉。
所以我们要避免主观地对区块链进行评分,因为这样做我们的区块链选择逻辑就会很难解释,并且即使每个客户端节点都遵循相同的规则也可能会导致硬分叉。
区块链选择规则
以太坊经典使用的区块链选择规则是选择完成工作量最多的区块链。假设一个名叫 Bob 的以太坊经典客户端正在第一次连接以太坊经典网络,Bob 必须在多个区块链之间做出选择,不过这并不是问题,他所要做的就是计算每个区块链上完成了多少工作量并选择完成工作量最多的区块链。
即使我们有任意多 Bob 这样的新入网以太坊经典客户端,对每个区块链它们都会计算出完全相同的评分 chainScore 。
在区块链系统中给定 N 个节点,这 N 个节点构成一个完全图(每个节点都连接到其他所有节点),区块链选择规则应具有以下属性:
每个节点都应将同一个区块链视为最佳选择。
区块链选择规则还应为区块链 C 提供相同的评分 chainScore ,不论任意时间点以及任意高度 H ,这意味着评分 chainScore 应该仅取决我们正在评估的区块链上的数据。
这些属性确保 Bob 和长寿命节点就需要追随的区块链达成一致,并使它们随时间的推移逐渐收敛到同一个区块链上。
需要注意的是,正如我们上面提到的,当下以太坊经典中评分chainScore最大的区块链是那些完成工作量最多的区块链。
区块链挖矿
对于单独挖矿的矿工而言,除非他掌控相当大的哈希算力,否则他不太可能会挖出区块。
矿池就是为了解决这个问题而被发明的,矿池借鉴了“众人拾柴火焰高”的思想,大量原本单独挖矿的矿工聚在一起抱团取暖,共同挖矿,共同分享收益,所以即使某些矿工可能都没有挖出一个区块,但始终能获得稳定的工作回报。
假设区块链网络中有多个矿池,它们总共占据网络中的大部分哈希算力。
每一个区块都包含一个被叫做 coinbase / etherbase 的数值,它用来指代挖出该区块的矿工,表示应该接收挖矿奖励的地址。
大多数区块都是由矿池开采的,每个矿池通常都会指定一个用来接收挖矿奖励的地址。
下面是以太坊经典区块链上从高度 7283680 到高度 7283695 开采出的 16 个连续区块,以及它们接收挖矿奖励的矿工地址:

以太坊经典区块链上高度 7283680 到高度 7283695 的区块,以及它们接收挖矿奖励的矿工地址
正如预期的那样,绝大多数区块都是由以太坊经典网络中运营的矿池开采出的,其中矿池 Ethermine 开采了 5 个区块,矿池 MiningPoolHub 开采了 4 个区块,矿池 NanoPool 开采了 3 个区块。
在灰色的区块中挖矿奖励被发送到我不知道所有者是谁的地址,但它们很可能也是矿池。
这似乎给了我们一点启发……
利用矿池降低51%攻击?真的!
假设我们有能连续挖出新区块的矿池,我们应该能经常看到区块的产出。当攻击者进行 51% 算力攻击时,他通常会离线连续挖掘 N 个区块,然后发布一个比当前共识链更长的区块链,从而导致当前共识链的重组。
攻击者开采的区块通常不使用我们过去观察到的矿池的地址。
如果对矿池挖矿的前后不一致性进行惩罚,我们就可以在共识规则大致不变的前提下大大增加攻击者发动攻击的成本,从而保护我们免受 51% 算力攻击。
在这里,我们需要先明确一下 51% 算力攻击是如何发生的:
-
使用算力租赁服务(例如 NiceHash )来执行攻击(假设 NiceHash 并不是矿池)。
-
一些矿池暗中勾结执行攻击。
-
上面两者的结合:矿池暗中勾结+算力租赁服务执行攻击。
-
使用专用集成电路(ASIC)执行攻击。
矿池前后一致性指数
区块链选择规则不仅可以考虑已完成的工作量,还可以考虑矿池的前后一致性。我们可以通过将 chainScore 的定义更改为以下公式来加入矿池的影响:
chainScore = parentChain.score +(block.PoW_score * PCI)
其中 parentChain.score 为前序区块链的评分,block.PoW_score 为该区块链所做的工作量, PCI(矿池前后一致性指数,Pools Consistency Index)为介于0和1之间的值。
这里的 PCI 表示矿池的前后一致性。让我们来看一个使用矿池信息来评估区块链“健康”程度的一个实现。

在最后 3000 个区块上使用滑动窗口来衡量工作量前后一致性的示例。
chainScore 函数的代码实现如下所示:

滑动窗口矿池前后一致性增量的参考实现
当网络中多个区块链共存时,我们认为最可能成为共识链的会是那些矿工在持续挖矿的区块链。这种说法并不是百分百正确,但对于大多数情况都是如此,除非出现掌握超过 51% 哈希算力的矿池叛变的情况。
这种结合矿池信息的方法可以预测区块链的未来是什么样的,并惩罚那些恶意行为者,而这些在过去是不可能实现的。当我们对矿池的前后不一致设置非常高的惩罚时,会出现以下两种情况:
-
网络中仅存在一个区块链,一些矿池停止挖矿。由于对于所有的矿工而言,他们的 PoW 值都会相应的降低,所以这对矿工来说无关紧要,因为区块链评分 chainScore 很低并不会影响他们的挖矿收益。
-
网络中多个区块链共存,在这种情况下,矿池前后一致性较低的区块链(通常是 51% 算力攻击)将受到惩罚。
那么,这种方法在上面所提到的几种51%算力攻击面前效果如何?
使用算力租赁服务(例如 NiceHash )来执行攻击
由于其他矿池不会在他的区块链上继续挖矿,随着时间的推移攻击者会受到矿池前后不一致惩罚。
两个共掌握全网 60% 哈希算力的矿池联合执行攻击
为了解决这个问题,我们不仅需要考虑矿池的哈希算力,还需要考虑在区块链上挖矿的矿池的数量。如果我们有大于 10 个具有大致相同哈希算力的矿池,那么这个问题就会变得更容易解决。
两者的结合
例如一个掌握全网 40% 哈希算力的矿池又租用了全网 30% 的哈希算力执行攻击。
随着时间的推移攻击者会受到矿池前后不一致惩罚。值得注意的是,即使攻击者将租用哈希算力挖出区块的矿工地址设置为原本矿池的地址也无济于事,因为我们会查看已挖出区块过去的数据。
使用专用集成电路(ASIC)执行攻击
这看起来像是长期的 51% 算力攻击。攻击者会随着时间的推移受到矿池前后不一致惩罚,但如果他能继续坚持下去,他就可能会成为我们参考的“过去的矿池”。在这种情况下,问题演变成了如果一个矿池叛变。
虽然这种方法并没有解决 51% 算力攻击,但它能使攻击者的攻击成本变得更加高昂,因为攻击者会在很长一段时间内持续受到惩罚(很多个区块时间)。
如果几个矿池突然停止挖矿,监控系统可以发觉这种情况,社区会有一些时间来做出反应,例如开始自己挖矿(但由于惩罚机制的存在他们必须小心)或者只是在发生这种情况时等待更多后续区块的确认。
基于这些情况,我们先做了以下假设:
-
将矿池作为网络的一部分从而加强区块链的安全性。当然了如果一个矿池可以通过各种手段掌握全网 51% 的哈希算力,那么他还是可以执行 51% 算力攻击,不过这并不是我们引起的新问题,就我目前的了解,业界还没有针对这种问题的解决方案。
-
一旦矿池 A 挖出了一个区块,所有接下来的 29 个区块都将获得矿池 A 的前后一致性奖励,无论这些区块是由谁挖出的,因此,与其他人相比,矿池 A 并没有获得任何优势。
-
“墙头草”矿工仍然受欢迎,但如果他们突然开始挖出大量区块,他们可能会受到惩罚。如果他们有些前后一致性,我们不会对他们进行大量惩罚,他们可以轻松地挖出新的区块。有人可能会说这样会降低安全性,但我的预感是,你从获得矿池前后一致性指数获得的收益远远超过没有“墙头草”矿工而失去的收入。
-
只要每个新区块保证为区块链添加一些积极价值,挖矿就可以在没有矿池存在的情况下继续运行。
-
由于独自挖矿的矿工很难开采出一个区块,因此惩罚对他们的影响基本上为零。我认为他们中的大多数人都希望参与到矿池之中。
-
新来的更大的矿池将不得不逐渐加入区块链中,否则它们会因为矿池挖矿前后不一致导致其挖出的区块受到惩罚。
-
矿池前后一致性公式( PCI )以及区块链评分 chainScore 可以有多种定义方法。
-
对于具有较低区块间隔时间的区块链,这种方法可以更好地工作,因为同样的一段时间里这种区块链可以获得更多有关矿池一致性的信息。
接下来,我们需要用博弈论的方法来对这个假设进行验证。需要注意的是,可以考虑不调整 PoW 的值,而是使用 PCI 作为附加值来保持 PoW 一致。
滑动窗口矿池前后一致性增量测试的结果
我通过模拟出一个理想的区块链从而在一系列的连续区块中检测矿池前后一致性的想法。
虽然结果显示,使用滑动窗口矿池前后一致性增量与最长区块链机制(当前被大部分区块链采用)相比, 51% 算力攻击的成本会更加昂贵,但应该注意的是,由于测试过程中可能存在瑕疵,代码中可能存在错误,或者是模拟出的环境过于理想/简单/错误,这样的结论可能会存在问题,因此离在区块链上实际使用可能还有很长的路要走。
在这次实验中我创建了大约 5500 个区块(过程持续了 5500 * 14 秒),攻击者在高度为4850的区块处进行分叉。默认情况下,区块的间隔时间约为 14 秒,在代码上我做了很多的简化,并没有完全符合在当前区块链中使用的逻辑(例如,区块时间的计算不一样,没有叔块)。
尽管存在差异,但我认为这个实验足以检验我们的想法。实验结果如下所示,结果中 Ratio (比值)表示主链和攻击者在区块高度 4850 处生成的分叉链之间区块链评分 chainScore 的比值,如果这个比值低于 1.0 意味着主链的区块链评分 chainScore 的总和低于攻击者分叉链的总和。
我们还可以从图中看到两个区块链达到的高度。

实验结果
从图中我们可以看出,较传统的最长链方法,滑动窗口矿池前后一致性增量方法更容易选中主链,不过即使这种方法获胜很多,在真实的区块链环境中这种方法的效用还有待检验。
从上面这个结果表中我们可以看到,在所有的情况下分叉链最终都挖出了更多的区块,但在滑动窗口评分方法中分叉链的评分 chainScore 从未超过主链(这并不完全正确,因为它可能在开始时获得了更高的分数,但在这次测试中,分叉链最少领先主链 30 个区块,并且评分也更高)。
如果攻击者能够坚持足够长的时间,他就有可能成为“矿池历史”的一部分,随着时间的推移分叉链的评分chainScore 会超过主链。
当然了,这次实验代码除了我以外还没有任何人检查过。如果你发现了代码中存在的问题,请向我提交。
已知的攻击向量
51%算力攻击
尽管如此,攻击的成本可能要贵得多。
矿池冒充攻击
攻击者可以挖出更长的区块链并在其中插入其他矿池的矿工地址,从而将攻击者挖出区块的矿池分布调整为与攻击前大致相同的分布。
为了防范这种情况,我们需要为矿工提供某种形式的身份证明。这可以通过在区块头中添加名为 minerSig (矿工签名)的身份验证信息来解决。 minerSig是使用矿工私钥签名的前序区块哈希值 parentHash 和该区块的随机数 nonce ,为了使区块有效,我们需要检查这个验证。
攻击者加入主网络
攻击者可以加入主网络并挖出一些区块,以避免以后被识别出突然大量挖矿。这种情况可以参考如果一个矿池叛变。
改进措施:摆脱矿池假设
在协议级别上实施矿池机制可以保证矿池确实存在。但即使我们没有矿池,协议也能够针对这种情况进行相应的优化。
就比如说,我们可以鼓励矿工聚集起来,组建一定数量的矿池,具体的方法就是根据每个矿池的哈希算力给予挖矿奖励,从而汇聚成总共 N 个矿池。假如我们想要大约 20 个矿池,那么对于占据全网哈希算力 5% 的矿池,挖矿奖励最高(4 ETC)。
如果矿池的算力多于/少于这个值,那么矿池获得较低的奖励,剩余的奖励将根据其他矿池的哈希算力分配给他们。由于我们最终为每个区块创建了相同数量的挖矿奖励(在这种情况下为 4 ),因此它并不会改变货币政策中定义的流通中的总货币。激励措施需要正确完成,以便矿工按照我们的想法聚集。
这里要提醒开发者以下,即使一个人拥有 5 个矿池,每个矿池都掌握全网 5% 的哈希算力,这也没有问题,因为它增强了矿池的前后一致性,从而为我们提供了额外的安全性。
如果已经存在矿池,就比如说当下的以太坊经典,那么如果需要,也可以在稍后阶段实施。
其他可能的矿池前后一致性定义
矿池前后一致性公式可以执行以下操作。
-
基于矿池数据和相似分析的线性回归。
-
惩罚哈希算力的增长(无论是对单独的矿工还是对整个网络)。对网络惩罚的想法是,如果没有恶意区块链,那么对每个人的惩罚都是相同的,如果存在一个想要抢占先机的恶意区块链,那么它将受到更多的惩罚。由于区块时间戳可能是伪造的,因此仅从区块链数据中很难给出这样的客观分数。
-
如果独自挖矿的矿工或矿池在给定的区块窗口内过快地增加挖掘区块的比值,则给他们“超速罚单”。
-
对矿工的数据进行统计分析。
协议级矿池的矿池前后一致性示例
假设我们有一个区块链,它具有内置的激励机制,用于让每个矿池的哈希算力收敛到全网的 1% ,从而形成总共约 100 个矿池。
为了使矿池能够对矿池前后一致性指数做出贡献,它需要在最后 3000 个区块上以大约 1% 的哈希算力进行一致地挖掘。矿池前后一致性指数将是通过此标准的矿池的比值。
比如说,如果最后 100 个区块由 50 个不同的矿池挖出,则矿池前后一致性指数将等于 0.5 ,因此贡献 0.5 难度。
在这种情况下,如果攻击者想要进行攻击,他需要挖最后 3000 个具有不同矿工地址的区块中的 50% 才能开始获得与主链相同的矿池前后一致性指数。除此之外,我们还可以对矿池发“超速罚单”。
假设我们有 100 个具有相同哈希算力的矿池,我们也可以做一些统计分析。所有矿池都具有相同的“被选择”的概率,这意味着我们可以计算最后 100 个区块状态的可能性,假设它们是随机选择的,那么我们可以对结果不太可能发生的事件进行惩罚。
写在最后
说了这么多,我并不是说人们应该改变他们的共识算法,而是应该有一个很好的理由来推进共识算法的改进,并且在考虑任何变动之前都应该很好地研究替代方案。
这只是我对共识算法改进的一些思考,我的想法能降低网络51%算力攻击发生的可能性。
无论如何,矿池将成为区块链网络的一部分,所以为什么不物尽其用来为区块链增加安全性呢?
我们仍然可以将这种方法看作一种最长链机制,不同之处在于我们改变了测量区块链长度的方式。我更青睐于人们使用更通用的描述,例如最大区块链评分规则。
导读:去中心化实现了权力的下放,而下放后权力又该如何制衡保证不作恶呢?
3.产业动态
数字货币51%攻击简史
安全一直是数字货币最重要的要素,自比特币诞生以来,数字货币世界可谓是历经风霜,先后发生过各种安全事件,而最严重的安全事件莫过于51%攻击。运行工作量证明的数字货币其交易数据实际上是矿工通过算力竞争来打包记录。“算力”指的是每秒钟可以计算哈希值的次数,算力越大矿工的计算速度就越快。理论上来说,当一个人掌握了51%以上的算力,那么他计算出正确哈希值的速度就会比全网其他矿工更快,因此只要他从包含自己想要篡改的交易数据之前的一个区块开始继续向下挖矿,那么他就有可能创造出一条比当前主链更长的区块链。
而所谓51%算力攻击,就是指利用自己的算力优势来篡改区块链上的记录,从而达到撤销已付款交易的目的。
回顾历史,我将数字货币十年以来重大的51%攻击事件做一个总结,以史为鉴,希望社区的人们能从这些事件中吸取经验和教训。

Coiledcoin - 2012年1月6日
Coiledcoin复制了比特币的代码,它支持联合挖矿以及操作码OP_Eval。Coiledcoin的客户端发布于2012年1月5日,但短短一天后,比特币开发者Luke Dash Jr.在比特币论坛上发帖:Coiledcoin现在结束了,祝各位生活愉快。
由于Coiledcoin使用Sha-256算法,允许联合挖矿,这就意味着在挖比特币的矿工同时也能挖Coiledcoin,这就会导致它非常容易被51%攻击。

当时,Luke运行着Eligius矿池,这导致一些社区成员指控他贡献了算力来攻击Coiledcoin,尽管他否认了。有人认为Luke攻击Coiledcoin的主要动机是他认为Coiledcoin是一个庞氏骗局,会“损害比特币的名誉”。
对此比特币的另一位核心开发者Peter Todd当时评价说:“Luke不应该杀害Coiledcoin,但Coiledcoin也没有能力做一条联合挖矿的侧链。”
Coiledcoin攻击事件耐人寻味的点在于它不是经济驱动的,而是纯粹政治的。虽然这一举动引起了社区的一些抗议,但它表明,使用SHA-256算法的低算力加密货币非常容易受到攻击。

Feathercoin - 2013年6月8日
Feathercoin是一个以莱特币为原型创造的Scrypt算法加密货币,于2013年4月16日发布,中文名叫做羽毛币,羽毛币与莱特币十分相似,只有两个不同点。一是羽毛币的总量由莱特币的8400万上升到3.36亿,二是羽毛币的挖矿难度调整的更加频繁。
在诞生7个星期后,同年6月8日,羽毛币受到51%攻击。在攻击前,Feathercoin的总算力为 0.2GH/s,而在受攻击的时间里,算力翻了7倍,达到1.5GH/s。
31小时后,一个调查显示攻击者通过在交易所发动双花攻击卷走了58万的羽毛币,当时价值6.38万美金。
目前不清楚攻击者在什么地方双花了该币,一些比特币论坛的用户指出发生类似的事件交易所本该停止该币的交易,但交易所的反应很慢,导致攻击者得手后快速完成了交易。现在已经停止运营的BTC-E交易所在攻击发生后处理过几笔大额订单。
有趣的是,羽毛币的价格不但没有受51%攻击的影响,还在接下来几个月持续上涨。在攻击发生时,Feathercoin价格为0.11美元,到了2013年年底,其价格达到了历史新高1.29美元。
羽毛币的创造者Peter Bushnell表示这次攻击的算力可能来自莱特币矿池或者其它挖Scrypt算法代币的矿池。
和一个主流币种运行相同的算法容易受到51%攻击,几年之后,随着云挖矿的崛起,这种缺点被放的更大了!

Krypton - 2016年8月26日
Krypton项目的代码复制于以太坊,拥有几乎完全一样的功能:智能合约、脚本等。Krypton声称自己比以太坊的交易费用更低,但这基本上是因为Krypton比以太坊的价值更低,同时在Krypton上运行程序的成本也更低。
就像许多算力低的山寨币一样,Krypton非常容易受到51%攻击,16年8月26日Krypton被发动了51%攻击。攻击者在发起51%的同时发起了DDOS攻击。
他们通过双花交易从Bittrex卷走了价值21465韩元的代币。这次攻击是有组织和详细计划的,它利用了以太坊山寨币的漏洞,勒索对象不仅有Krypton还包括Shift和Expanse。

攻击者给Krypton团队发送了一条勒索信:
我们拥有一条随时可以分叉的Krypton区块链。自从bittrex钱包两天前被攻击,我们已经挖到7000-8000个区块,但我们的目的只是要比特币,而不是毁了一个项目。
今天,我们卖了剩余的20000韩元,并将给你们一个机会来结束我们的闹剧。我们将给你们一个机会结束这场危机,我们不要多的,拿回成本即可,给我们7个比特币,我们就停止分叉。
如果你们同意,联系我们,我们将停止攻击,不然我们就会分叉8000个区块。
Krypton拒绝支付赎金,并且在攻击发生后Krypton的创始人Stephanie Kent宣布将转向PoS共识机制来阻止未来的攻击。
遗憾的是这个项目没有成功:几个月之后项目就被迫终止了。

Verge - 2018年4月4日和2018年5月22日
Verge是唯一一个经历两次了51%攻击的项目,它分叉自狗狗币,被设计成具备隐私功能的匿名币。
2018年4月4日,Verge被第一次51%攻击,对Verge的攻击相当复杂,Verge为了避免算力的集中化使用五种算法,项目在五种算法间不断切换,攻击者正是利用Verge算法的漏洞,修改了区块链的时间戳,从而降低了Verge的难度,并使用远低于51%的算力攻击成功。
攻击前,Verge的难度在139093左右;而攻击发生时,难度暴跌至0.00024414。
为了回应这次攻击,Verge团队升级了协议,但意外导致一次硬分叉使得网络不得不回滚。团队修复协议的努力并没有什么作用,在5月22日,相同的攻击再次发生在Verge上,涉及金额比之前更大,达到3500万Verge,换算成美元约合170万。
Verge项目被51%可以归咎于协议过于复杂,允许矿工使用五种不同的哈希算法,但越是复杂就越容易出现漏洞,这是一种天然的硬伤。

比特黄金 - 2018年5月16日
比特黄金是比特币的一个分叉币,目的是通过抗ASIC避免算力中心化。
比特黄金使用Equihash算法进行挖矿,和ZCash一样。Equihash是一种重内存的算法,比特黄金选择它来促进网络上的显卡挖矿。
不幸的是,就和之前的51%攻击一样,这也使得比特黄金特别容易受到51%攻击。攻击者不需要自己购买硬件矿机,只需在攻击期间从算力租赁市场租用显卡算力,一旦算力达到比特黄金算力的51%,即可发动攻击。
5月16日,攻击者对比特黄金发起了第一次攻击,最后一次攻击发生在3天后的5月19日。这些攻击的目的是在交易所双花比特黄金,大约有12239 BTG被交易,当时价值约1800万美元。

在发现第一次攻击后,比特黄金团队建议交易所等待25个区块或者更多区块确认后再恢复交易,但两天后,开发团队建议增加到50个区块确认后再恢复交易。
作为对攻击的回应,比特黄金团队最终决定使用ZHash算法并进行了硬分叉,ZHash是加强版的Equihash算法,具有更强的抗ASIC能力。但这并不能解决比特币黄金的根本问题。
显卡矿机照样可以运行ZHash算法,而比特黄金的网络算力较低,只有2.85 MH/s,因此其依然存在被51%攻击的可能性。

以太经典 - 2019年1月5日
以太经典是以太坊的原链,在2016年DAO事件后,以太坊执行硬分叉从原来的链中分离出来,但社区中的部分人认为这违背了区块链的精神,故而继续在原链上开发和挖矿。
2019年1月5日ETC发现被执行了51%攻击,攻击者总共获得219,500 ETC,当时价值110万美元左右。
根据调查数据显示,攻击的成本大约是每小时5,473美元。攻击发生后,数字货币交易所比特儿宣布损失了40000 ETC。
与以太坊一样,以太坊Classic使用Ethash挖掘算法,这使得它特别容易受到攻击。在攻击发生时,以太坊的网络哈希值约为183 TH / s,比以太经典的8.75 TH / s算力高了接近25倍。
这意味着攻击者可以轻松地从云服务商租用算力攻击以太经典,但却不需要投资任何硬件设备,这种方式极大的降低了攻击者的成本。

51%攻击就如同一把悬在加密社区头顶的利剑,督促人们要警惕随时可能出现的危险,这会压迫社区的人不断的去尝试改变和创新,对算法的发展会起到一个促进作用,能够适应的项目继续存在,否则就会被市场所淘汰。
51%攻击也有它的双面性,对于交易所而言,那些在攻击期间迅速反应停止交易的交易所得到了保护,而反应迟钝的交易所则受到惩罚,所以这是去中心化共识的一种体现。
物竞天择,适者生存,这是自然世界的生存规律,也是鞭策加密社区不断进步的达摩克里斯之剑。
导读:物竞天择,适者生存,这是自然世界的生存规律,也是鞭策加密社区不断进步的达摩克里斯之剑。
BCH实施了一次善意的51%攻击,但“以暴制暴”真的好吗?
本月中旬,比特币现金网络一次硬分叉升级过程中发行了一个漏洞,结果导致在区块高度582,679停止出块,还引发了部分矿工挖掘出了一批空区块。然而这件事情并未结束,因为“一部分存有不良企图”的矿工利用了这次漏洞拿走不属于他们的钱。

知名比特币播客主持人 Guy Swann 在推特上发文表示,由于比特币现金于2017年从比特币区块链分叉出来之后并未兼容交易签名,也不支持隔离见证,因此一些比特币现金被“意外地”发送到了部分特殊地址上,有的比特币交易也被重播到了比特币现金网络上。随着5月15日硬分叉漏洞引发一个代码变更被删除,部分矿工发现自己竟然可以花费这些特殊的比特币现金,因此就有人试图拿走这笔资金。
然而,这些怀有不良企图的匿名矿工引起了BTC.com和BTC.top两大矿场的注意,他们决定立即阻止这些矿工。但如何才能在短时间内迅速阻止他们呢?BTC.top和BTC.com想到的办法就是“以暴制暴”,他们希望使用51%攻击重组区块链并删除这些交易,一方面保护自己的交易,另一方面在支付同样的 P2SH 条件下让其他人受益。
事实上,在比特币现金这样的加密货币网络环境下,实施 51% 攻击意味着将一家实体(或一批实体)将控制很一大部分网络算力,此时攻击者就能实施一些所谓的“非法”行为,比如尝试重写网络交易历史。
社区有何看法?
不可否认,并不是所有人都带着善意去实施51%攻击,而且这种做法在行业内也一直饱受争议,一些市值较小的加密货币曾遇到过此类攻击。当然,金色财经和大家都知道这次BTC.com和BTC.top实施51%攻击并不是为了自己,而是在为社区做好事,因为他们没有撤销其他交易并拿走别人的钱,也没有把撤销的钱占为己有。据悉,BTC.top其实已经控制了比特币现金网络内超过50%的算力,但为了这次可以顺利实施攻击,他们最终还是选择了与BTC.com合作。
不过,虽然本次攻击没有恶意,但社区还是形成了两种对立的看法,比特币现金支持者 Jonathan Silverblood认为这次攻击非常正确,他表示:
“这其实是一个非常不幸的情况,但也是工作量证明算法需要面对的问题。在这种情况下,矿工不得不选择放弃推进挖掘区块,而且据我所知,BTC.top 和 BTC.com认为其中一些交易时无效的。”
另一方面,也有人认为 BTC.top 和 BTC.com 实施 51% 攻击对比特币现金来说是个坏兆头,因为这么做说明了比特币现金还是过于中心化了。一个自称名叫“Kiarahpromises”的比特币现金开发人员解释说:
“协调重组以恢复未知交易,这就是 51% 攻击,甚至可能是最糟糕的攻击,而且在白皮书中也有过阐述。对于矿工和开发人员来说,比特币现金还能算是去中心化并抵制审查的加密货币吗?或者,只有在方便的时候才算是?遇到特殊情况就不是了吗?”
的确,51% 攻击是现阶段大多数工作量证明区块链普遍存在的问题,区块链统计数据网站 Blockchain的数据显示,当前一半比特币全网算力被三家矿池控制。
文章翻译自 CoinDesk
导读:比特币现金网络一次硬分叉升级过程中发行了一个漏洞,结果导致在区块高度582,679停止出块,还引发了部分矿工挖掘出了一批空区块。
Vitalik提案:在网络中加入监听节点,51%攻击将变为99%攻击?
Vitalik 在一篇技术文章中提出,如果加入检查节点,容错率将提升至 99%,这也意味着网络中只需要 1% 的诚实节点,这究竟是怎么回事呢?
原文标题:《Vitalik Buterin Proposes a Consensus Algorithm That Requires Only 1% to Be Honest》
文章来源:Trustnodes
翻译:蓝狐笔记 LS

「如果你增加更多的假设,具体来说,这要求观察者也积极监察共识,而不只是在事后下载输出,那么,你可以将容错率一直提高到 99%。」
在一篇由 Emin Gun Sirer 评论的高度技术性文章中,V 神提出,这表明可以不要求 50% 以上的矿工或者权益质押者是诚实的,只需 1% 的人诚实即可。
因此,令人害怕的 51% 攻击在这种共识算法情况下,成为 99% 攻击,这也意味着攻击实际上变成不可能。
从高阶视角来看,它的运行方式,按照我们的理解,它是通过要求监听节点或独立观察者来运作。
你可能熟悉比特币中最先看到的规则。如果不熟悉,这是中本聪在 2010 年 7 月 17 日的解释,我们完整引用过来:
「我相信,对于一家支付处理公司来说,提供快速分发交易服务是可能的,并且能够在 10 秒甚至更短时间内完成足够充分的检查。」
网络节点只接收他们收到的第一个交易版本,以便合并到他们试图生成的区块中。当你广播一个交易,如果其他人同时广播一个双花交易,这是关于谁先广播到大多数节点的竞赛。如果一个人稍微先行开始,通过网络进行几何扩散它会更快,并率先抵达大多数节点。
一个粗略的示例:

这意味着,如果双花的交易必须等待即使只是一秒钟的时间,那么,它也有巨大的劣势。
支付处理商跟很多节点有连接。当它收到交易,它就会将其大力扩散,同时监控网络的双花交易。如果它在任何一个监听节点上收到一笔双花交易,它就会警示该交易是坏的。如果没有其中的监听者听到,双花交易不会走太远。
双花交易将不得不等待,直到监听阶段结束,但到那个时候,支付处理商的广播已经抵达大多数节点,或者它在广播方面遥遥领先,双花交易没有任何希望能够超越。
Buterin 提出类似的东西,但是针对区块的。Buterin 后来澄清说,正如他在原始提案中明确指出的一样,他没有发明 99% 容错共识算法,是 Leslie Lamport 发明的。Lamport 是计算机科学家,曾因为其在分布式系统领域的贡献而获得图灵奖。
「我恰好写了一个解释器并将其改编为区块链语境」,Buterin 说。在以太坊开发者 Conrad Barski 的高级别解释中,他指出:
「Vitalik 建议,如果网络流量的独立观察者(也就是用户运行的区块链客户端,不是矿工 / 验证者)观察实时发生的事情,并注意信息何时出现,他们可以监测到矿工发起的 51% 攻击的「犯规行为」,这可以提供额外的安全保障,可以防止这种攻击。」
Buterin 后来补充道:「另外一个用例是它可以用作检测 51% 审查攻击的工具,并协调使用少数软分叉来摆脱它们,而不需要靠太多人为驱动的社会协调工具,以在边缘情况下选择一个行为或其他。」
这听上去像欺诈证明,一些比特币核心开发者表示并不存在的这样的神秘生物。然而,中本聪的白皮书,提到这样的欺诈证明,以解释为什么不需要保留特定的数据,或为什么轻节点可以是非常安全的。
简单来说,顾名思义,欺诈证明是欺诈、欺骗或不当行为的证据,或未达成共识的证据。
如果你运行全节点,你在验证所有内容,因此节点会拒绝不当行为。但是,如果你不是验证所有内容,假说你使用的是智能手机,那么,在极少数情况下,你可能会接收到不正确的数据,而你无法知道它们是不正确的。
欺诈证明提供了这种方式,这里的建议是,如果我们理解非常好,似乎是因为独立观察者在监测,所以你可以知道数据是不正确的。
当然,所有这些都是由软件或代码本身完成的。如在代码中「知道」一些数据不正确,由此,它会自动拒绝它。Buterin 说:
「如果 5% 的验证者是诚实的,那么,在 512 个随机选择的节点中没有一个是诚实的,这种概率大约只有万亿分之一。因此,只要网络延迟加上时钟偏差小于 D/2,上述的算法就会有效,它能就某些单个最终值上正确地协调节点,即使在最终值上存在多个冲突(由于阀值相关算法的容错被破坏)也能正确解决。」
这里的重点当然是 Casper,这个提议似乎是建议将其纳入 PoS。如果它在这种背景下有效,那么,以太坊区块链可能会变得更加安全。
导读:51%攻击在这种共识算法情况下,成为99%攻击,这也意味着攻击实际上变成不可能。
来源:学习区块链
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。

币网讯



