51%攻击解析

近期都在说51%攻击,有夸大其词的,也有不屑一顾的,本人认为夸大和看轻都不是正确的,以下是本人对51%攻击的看法,不一定正确,仅供参考,欢迎探讨。

51%攻击是指掌握了比特币全网的51%算力之后,用这些算力来重新计算已经确认过的区块,使块链产生分叉并且获得利益的行为。

一、如何发动51%攻击?

假定发动51%攻击的人是一个理性的人,攻击的目的为了利益,而不是为了其他,因而攻击者在发动攻击前有两个条件:

1、掌握了比特币全网的51%算力 2、手里持有大量比特币

攻击者发动攻击

1、把比特币转到交易所或某个机构或个人,卖出所有比特币,并且收到钱、把钱提现到银行帐号(提现目的是为确保收益,也可不用提现)。这个时间越短越好,能大大节省攻击时间。

2、用51%算力从还没向交易所转币的区块开始重新生成区块

比如:向交易所转币的区块为第30万个区块,攻击者就在第29万9999个区块开始重新生成区块。

3、因为攻击者有51%算力,而且假设他能在攻击过程中保证一直51%算力,所以他的攻击一定成功,也就是说他生成的攻击块链一定能追上原块链。

4、当攻击块链的长度超过原块链2个区块,所有的客户端将丢弃原块链,接受攻击块链。至此,51%攻击成功。

二、造成后果

原块链上29万9999个区块之后交易全部作废,有以下影响:

A   29万9999个区块之后没有交易的客户的币数量没有任何影响。 B   29万9999个区块之后转出比特币的人会发现:币回来了。 C   29万9999个区块之后接收到比特币的人会发现:币消失了。 D   最重要的后果是:人们对比特币网络的信心降到冰点,比特币的币值将受到重创。

三、51%攻击方法说明如下

1、这是一种能够获得最大利益的51%攻击方法,因为我们假定攻击者是理性的、为获得利益而攻击,而非一心置比特币于死地而不求任何回报的疯子。

2、无需51%算力就可以发动51%攻击,比如45%算力,有成功可能性,但非确定性成功。有这么一个场景:原块链长度30万,攻击者具备45%算力,从29万9999个区块开始计算,运气好的话,攻击块链延长到30万零2个,而原块链还是30万长度,攻击就成功了。这种攻击影响的区块数量少,如果币数量小,则被发现的可能性很小。目前大家担心的是这种情况。本人认为,虽然连续产出3个区块的可能性不大,但不是没有出现过,ghash.io就出现过连续产出5-6个区块的情况。因而这种非51%攻击的可能性完全存在,比特币世界要时刻监控、密切注意。

3、有人说多等几个确认就能避免51%攻击。这话有严重问题。如果是非51%算力的攻击,多等几个确认是有效的,数量特别大的比特币转帐应该等几天。但是如果是51%算力攻击,就应该知道,如果攻击者能一直保持51%算力,他可以从比特币最近检查点之后的区块开始重新计算,攻击块链能追上原块链,成功只是时间问题。如果攻击花费了1年时间,也要等1年的确认吗,因而这种认识不全面。

4、攻击块链可以隐藏地计算,直到比原块链多两个块链后才放出,按照目前的比特币网络协议,可以马上取代原块链,因而整个攻击可以不为人所知,直至最后一时刻。

四、51%攻击悖论

我们原先假定发动51%攻击的人是为了利益,我们可以来计算一下攻击者的成本和收益。先回顾一下理解攻击者发动攻击的前提条件:

1、掌握了比特币全网的51%算力

分析第1点,掌握了比特币全网的51%算力,得需要多少钱。全网算力按照100P计算,矿机价格按照1T/8600元计算(这是目前最低的价格)

51P矿机购买费用=100P * 51% * 1024 * 8600元=449,126,400=4.5亿

要布署51P的算力以及发动攻击,我们精力估算额外需要1亿的其他费用和电费,因而计算为5.5亿。

2、要卖掉多少比特币

到底要卖掉多少比特币才能获得更多的利益呢。至少要获得至少5.5亿的收益,才能在帐面上收支平衡,但要做这么大的攻击,而且攻击后的币值会降低很多,因而一定要非常大的利益才能让攻击者这么做,因而我们按照卖掉比特币能获利20亿估计。

持有比特币=20亿/4000=50万个比特币

我们假设攻击者以1000元的成本拥有比特币,他原先的买币成本是2.5亿。 如果在短时间卖出50万个比特币,会把价格从4K打到谷底1K-2K了。 我们姑且假定,这是场外交易,对比特币价格没有影响。

3、成功实施51%攻击后的比特币价值

成功实施51%攻击后,我们认为在一段较长的时间内,人们对比特币的信心降低到冰点,比特币的价格会处于较低水平,如500元甚至更低,直至技术永远解决了51%攻击的可能性。

因而,即便攻击者成功实施了攻击,他的50万比特币的价值也将处于一个较低水平=50万 * 500=2.5亿。

4、攻击者的收支估算

攻击者以4K卖掉50万个比特币,获利20亿。

投入=5.5亿矿机+2.5亿比特币=8亿 收益=20亿-2.5亿-8亿+2.5亿=12亿

投入8亿,净收益12亿,这对比特币行业,绝对不是好收益。

5、8亿投资能获得多少收益

目前每天产出3600个比特币,如果一直保持51%算力可得到1836个,每月获得55080个比特币,按照4K计算收益为2亿。

攻击者持有的50万个比特币,当一个季度内比特币价格从4K到6K时,可以多获得10亿收益,这种价格上涨我认为是很正常的。

6、两种投资的收益对比

攻击是一种投资,诚实持币和挖矿也是一种投资。

攻击冒了巨大风险,获得12亿,如果在交易所大量抛售,获利还会更低;

诚实持币和挖矿,没有任何风险,一个季度内轻松获得收益=10亿+6亿=16亿。

我们假定的有理性的人,为了获得更大收益而攻击的人,实际上是不会发动这样的攻击的,这就是51%攻击悖论。

不过,如果是疯子或者国家,不惜血本只为毁灭比特币,我们没有办法阻止,也就没有必要讨论。

五、关于双花和虚花

关于这点已经在微博上说过多次,双花是指把一份币花了两次,且两次交易都被确认至少一次,其中一次交易一定是在孤立块中。目前大家所说的双花是交易可塑性问题:第一次交易不加交易费,被矿池排斥,欺骗某些无需确认的网站入帐后,再把币花到其他地方去。

双花是需要算力来保证的,可以是51%算力,也可以是45%算力,具体情况请看本文的第三部分的第二点,但要再次提醒的是:某个矿池连续产出3个区块,就有可能产生非51%算力的双花攻击,ghash.io出现过连续产出5-6个区块的情况,完全有能力发起这种攻击,因而比特币世界要时刻监控、密切注意。一旦出现孤立块,而且里面的交易输入在接下来几个块中重新出现,那很可能就是双花。我们看到:从今年4月份开始,孤立块出现得越来越多,应该有些情况。不过,我奇怪的是为什么blockchain.info关于孤立块的页面一直有BUG,一直不显示具体的孤立块内容,我10天或半月前向blockchain.info提过BUG,但是到现在为止还没有正常,但愿这是BUG,而非因其他原因而隐瞒数据。防范方法是多等几个确认,大额交易建议等1天(在这一点上,比特币天空网的多等几个确认的说法是对的)。

上文提到的交易可塑性问题,我们可以称之为虚花(这个名称从比特天空网的文章中借用而来,我觉得比较合适),第一次交易未被纳入区块,第二次交易会被纳入区块,这种攻击无需算力,谁都可以发起攻击,接收方的防范也很简单,只需至少一个确认。

六、本文小结

1、真正的51%算力攻击一旦发生,后果会很严重,但51%攻击有悖论,使得它事实上难以发生,除非疯子或疯子国家。 2、双花攻击无需51%的算力,ghash.io的45%算力已经具备了双花攻击的条件,事情没有我们想像得那么乐观,比特币世界要重视这个事情。 3、双花和虚花可以多等几个确认来防范,真正的51%算力攻击多等几个确认也难以防范。

BTC地址:1faVxBp2KmST98p3tJjx2MQP98JLLnF2Q

文章标签: 比特币 51%攻击
评论(60)
登录 账号发表你的看法,还没有账号?立即免费 注册
  • 沣述 2014-06-09
    短暂少量(交易额小)的双花或51%攻击可能不太引人关注,大量频繁的51%攻击会彻底破坏市场秩序,对市场信心是毁灭性的打击。我觉得这里值得研究的细节应该不少,或许可以再写写
    • 大猫(bitPaul): 2014-06-09
      也就是说,目前存在的、所谓的“诚实链”——其实也有可能存在“少量虚假账务的历史记录”?
  • chehw 2014-06-10
    参考https://bitcoil.co.il/Doublespend.pdf, 46%算力下,6次确认后双花攻击的成功概率约为78.6%。 那么,理性攻击者在什么情况下是否才会发起攻击呢? 注意:单次攻击的成功率只有0和100%,只要算力不超过50%,就必然存在双花攻击失败。 46%算力下,双花攻击失败率为11.4%,如果失败的损失将至少损失6次(及以上)挖矿的收入,6×25=150BTC,这意味这攻击者至少有11.4%的概率损失150BTC以上。 因而,理性攻击者必定会有风险评估,只有当单次交易额大于某一数时才可能有利可图。 根据交易额的大小,只要等到足够的确认次数(比如10-100个确认),基本上可以视为安全。
    • 大猫(bitPaul): 2014-06-11
      好像明白了!多谢指点。
  • 得先有块地 2014-06-12
    关于51%攻击,有一个通过限制算力来阻止攻击的想法,请博士看看,点评一下是否可行。帖子:http://8btc.com/thread-5764-1-1.html
  • 巴比特资讯 2014-06-23
    d946bec5c467cb2ce5790e46a72f498cc97c2222780820c7d9f4ec982399c45a
  • 中国比特币 2014-06-09
    有个人花了巨资堆砌算力,经过长时间谋划终于有了51%的算力,于是某个夜黑风高的夜晚这兄弟冷笑一声:终于可以同归于尽了!
  • danielsocials 2014-06-09
    回复@suiyia:有道理
  • BTC_Yu 2014-06-09
    //@中国比特币:有个人花了巨资堆砌算力,经过长时间谋划终于有了51%的算力,于是某个夜黑风高的夜晚这兄弟冷笑一声:终于可以同归于尽了!
  • 水小瓶座的我 2014-06-09
    前2天还信誓旦旦说必须51%才能双花,今天又来长文了。真搞明白了?//@danielsocials: 回复@suiyia:有道理 //@suiyia:死多无所谓的,骑墙派会认为君子不立危墙之下。死理性派表示,对于45%这种高算力攻击,教主的泊松分布假设改成原味的二项分布比较好,因为泊松分布此时已经不满足对二项分布的近似条件
  • 米爸coin 2014-06-09
    某国央行动动脚趾头,轻松做到51%,然后冷着一声:收拾你个b崽子还不容易//@中国比特币:有个人花了巨资堆砌算力,经过长时间谋划终于有了51%的算力,于是某个夜黑风高的夜晚这兄弟冷笑一声:终于可以同归于尽了!
  • BTS熊 2014-06-09
    [good]卖空
  • MX20122712708855 2014-06-09
    其实pow也可以避免51%攻击想hot币那样排队挖矿就行。还是就是btc开发zu要从数学协议上杜绝!而不是希望寄托于人类的道德约束。人要是靠得稳,就不会有btc的诞生了@Ryan_XxOo @赵乐天 @btcrobot @我看比特币 @比特人社区
  • 米爸coin 2014-06-09
    各国央行在印钞抢劫权受到威胁时,十分乐意轻松毁掉比特币,这TM就是一为央行们准备的大后门[怒]//@Harvey老狼:一篇介绍51%攻击的翔实文章. 同意文章大部分观点, 不过在计算攻击者收益的时候只考虑了卖币这一项. 但实际上有还有通过做空比特币 获利的渠道. 例如预先在期货市场上大额卖空比特币
  • Harvey老狼 2014-06-09
    回复@中国比特币:算力还可以租
  • 点点币中国社区 2014-06-09
    点点币可以抗51%攻击,更安全更环保,推荐看@石头剪刀币 写的《我为什么选择Peercoin》
  • cubits 2014-06-09
    掌握了51%的算力,你就是比特币的央行。
  • 癫痫小蒙牛 2014-06-09
    回复@浮云-曾:[亲亲]
  • 石头剪刀币 2014-06-09
    这种观点是错误的。目前可能正在发生的孤立其它矿池挖到的块,对同业者攻击,自己还有利,而且无风险。//@昌用: 51%攻击者配合做空的风险也很大,因为难以评估做空的价格影响。做空必须低位接回才能赚。总之,风险很大,不如挖矿。算力中心化怕的还是疯子和天敌。
  • wguo3 2014-06-09
    什么攻击 DDoS?
  • 石头剪刀币 2014-06-09
    我本人十分同意火星人的观点。比特币是可以升级到PoS或者PoW+PoS的。Peercoin 的技术已经给比特币铺好了路,51%是杀不死比特币的。//@Ryan_XxOo: 博士果然厉害,但是火星人不同意51%就是比特币的世界末日这个说法,51%就是一个大号的交易延展性漏洞,SSL漏洞,通过硬分叉POS完全可以解决问题。
  • 昌用 2014-06-09
    我是说51%配合市场做空风险大,可能性小。并没有否认算力中心化造成挖矿垄断、记账偏向、政府干涉等风险。理论上,有垄断就会有利用垄断获得额外收益而损害系统的机会。应当重视矿池的权力集中问题。
  • 1
  • 2
  • 3