BTC.com手机客户端

重放攻击和比特币区块扩容

tan90d 发布在 比特币 3 2098

 

20150602111624622

第0章 引言

以太坊现在深陷重放攻击的危机,比特币会不会这么有一天呢?

 

第1章 比特币硬分叉升级协议的过程分叉出两条链的可能性是很低的

 

以太坊硬分叉产生两条链时,当时我还觉得有问题。因为挖矿有难度的存在,小算力很难在高难度链上挖矿,所以我认为ETH Classic chain会因为算力小而挖不出来。但以太坊难度是调整很快,是逐块调整,而且以太坊的出块时间又是超级快,15秒以内就出一块。ETH Classic chain很快就将难度和算力匹配了。

比特币在硬分叉过程产生双链的可能性要远低于以太坊,比特币的算力太大了,1400P,挖矿难度也非常大,难度调整时间是2016个区块。如果比特币硬分叉升级过程中,即使有25%的算力坚持挖旧链,程序锁定升级时间一般会被设定为难度刚被调整过的那一个块开始升级,也就是升级被锁定时,下一个难度调整要到2016个区块后。那新链和旧链要挖多久才能熬到正常的平均10分钟出一块呢:

  1. 新链在难度调整前出块时间是:10分钟/75%=13.33分钟。
  2. 新链在难度调整前需要挖多久是: 13.33*2016/60/24=18.662 天。
  3. 旧链在难度调整前出块时间是:10分钟/25%=40分钟。
  4. 旧链在难度调整前需要挖多久是: 40*2016/60/24=56.0 天。

我们假设新链和旧链价格是按算力来分配的,假定分叉前比特币的价格是4200元,

  1. 新链挖出来的币的价格是 :4200*75%=3150元。
  2. 新链矿工挖一个区块获利 :12.5*3150=39375 元。
  3. 新链矿工平均每分钟获利 :39375/13.33=2953.86 元,约3000元。
  4. 新链一P算力平均每分钟获利: 2953.86/(1400*0.75)=2.8132 元,约2.8元。
  5. 旧链挖出来的币的价格是 :4200*25%=1050 元。
  6. 旧链矿工挖一个区块获利 :12.5*1050=13125  元。
  7. 旧链矿工平均每分钟获利 :13125/40=328.125 元,约328元。
  8. 旧链一P算力平均每分钟获利: 328.12/(1400*0.25)=0.9375 元,约1元。

新链收益是旧链收益的2.8倍,那坚持挖旧链的矿工基本上就属于情怀兵种了,连电费也挖不出来,而且还要连续挖56天哦,连续亏56天。并且这56天里,你还要保证队友不撤走算力,叛逃去挖更有利可图的新链。更不想说还存在被大算力51%攻击的情况。如果矿工都是理性的,那旧链基本上是没有生存条件的。

而如果按90%的算力来硬分叉升级,更旧链更没有机会了。

但还有一种情况旧链是可以生存下来,并且还可以利用重放攻击威胁到新链的,那就是旧链自己再发起一次硬分叉修改难度。

 

第2章 如果旧链修改难度继续对抗升级

 

如果旧链通过修改难度的方式来对抗,那基本上就是放弃了自己的“正义”了。因为这违背了抵制硬分叉的初衷。如果连难度你都敢修改,那潜在的连2100万BTC的上限你也会修改吧,你什么都敢改。这样分叉出来的分支是很难得到用户的支持的,从而变成一种无所谓的存在。

但我们不能停留在假想,还需要仔细思考里面的威胁。对比特币协议确实有完全执不同理念的人存在,这种硬分叉成本又很低。出现的概率并不小,或许一定会出现。我们假想出现下面这种情况:

现在比特币区块大小是1M,而且社区为此争吵可不是一天两天了,基本上叫闹翻了吧。如果有人执意扩容到更大的区块呢?比如通过修改难度的方式只需要很小的算力,比如现有的10%算力,就可以发起硬分叉,将区块直接扩到2M,甚至是8M,甚至是unlimted。

那会出现什么情况?

 

第3章 重放攻击小区块比特币主链的思想实验

 

我们来做下这个思想实验,如果出现了第2章里的小算力硬分叉到更大的区块,那会发生什么:

  1. 我们称硬分叉出来的新链叫Bitcoin bigger,而原有链还叫Bitcoin core。前者代币叫BTCg,后者叫BTC。
  2. 依据ETH和ETHc的经验,肯定会有交易所上线BTCg。因为对小交易所来说,这是剑走偏锋,难得的出名,抢流量的好机会。
  3. 肯定会有交易量,BTCg的投机机会大。看看市面上各种山寨币,再烂的币都有人买。
  4. 因为Bitcoin bigger和Bitcoin core的交易格式完全一样,地址和私钥也是一样的,那就会发生重放攻击。在Bitcoin bigger链上的交易是可以重放到Bitcoin core链上的。
  5. 因为现在Bitcoin core区块已经被塞满了1M。现在加上Bitcoin bigger上的交易被重新广播到Bitcoin core链上,那妥妥地堵屎了。鉴于1M区块已经超长时间运行,加上重放攻击后,这种拥堵将会是严重的。但Bitcoin bigger因为区块更大,可以容纳更多的交易量,所以不会拥堵。
  6. 因为拥堵,Bitcoin core链上的用户为了获取更快的确认不得不加大手续费,手续费水涨船高。而Bitcoin bigger上的手续费并不会高,因为不堵嘛。
  7. 用户就可以在Bitcoin bigger上发起更多的交易,甚至是恶意的粉尘攻击,那Bticoin core区块将面临长期而严重的拥堵。
  8. 挖Bitcoin core的矿池的内存池将面临打爆的压力,这时不得不设置上限值,达到上限就删除低交易费的交易。而Bitcoin bigger则没有这个问题。
  9. 随着时间的推移,高昂的交易费和不稳定的确认时间,Bitcoin core的用户体验越来越差。而Bitcoin bigger,这个小算力修改难度硬分叉出去的链的用户体验竟然更好。那BTCg的投机价值就会越来越高。
  10. BTCg的价格就会上涨,BTC的价格就会下跌。然后恶性循环。

 

最终Bitcoin bigger就会占得一席之地,除非Bitcoin core能够升级到更大的区块,以解决交易拥堵问题。

Bitcoin core的任何交易格式的修改,以试图避开Bitcoin bigger的重放攻击都是难于凑效的,因为Bitcoin bigger也可以跟着修改。唯一的办法就是Bitcoin core上有算力切到Bitcoin bigger上去发动51%攻击,彻底消灭他。但这不符合矿工经济利益,甚至面临道义上的压力。有这样牺牲精神的矿工,而且必须是大算力矿,很难找到。即是有这样的矿工阻止了第一个Bitcoin bigger,那下一个呢?毕竟发起Bitcoin bigger项目的成本很低。

如果这个思想实验的推理成立,这意味着Bitcoin core将会面临被迫提高区块大小上限。这将不是共识推动的结果,而是被攻击后的防御的办法。如果真有那么一天,我们还是现在就去升级吧。

重放攻击在以太坊上并且没造成上面的思想思考啊,ETH链没有被ETHc攻击啊。这是因为以太坊区块不像比特币区块那样有这么大交易量压力问题,以太坊每秒可处理量远超过比特币。

 

第4章 结束语

有没有办法阻止这个思想实验的实施呢?如果没有,那就意味着小区块比特币会被大区块链分支链通过重放攻击放倒。如果真有那么一天,我们现在该做的就是去升级到更大的区块。

 

发文时比特币标准价格 买价:¥4079 卖价:¥4078
作者:tan90d(微博@闪电HSL 微信tan90d 微信公众号 闪电HSL)
我的BTC地址:14mhzjkJ71oMAMkKu3dy98dnUpkyQBHL1r
版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:3

您需要登录后才可以回复 登录|注册
    Author Image
    yuanzhongrui 126 天前

    现在做的基本都是仿BTC来做的,真正要重新开发一个新型的货币,成本先不说有多大,技术也没几个能做的出来。
    我们公司就是做虚拟币山寨币这方面开发,技术方面不算顶尖水平,也可以算是不错的了;在这块虽说不能和那些大佬比但是也知道这一点的。

    +1
    +1
    我要点评
    Author Image
    cndx 126 天前

    我提几点吧:
    1、BTCg只认为是山寨币,几乎没有人会认同其是比特币
      看贴子《★调查卷★新比特币~~~》http://8btc.com/thread-30024-1-1.html《【新比特币将全面兼容QT,CORE,CLASSIC,XT钱包】》http://8btc.com/thread-30590-1-1.html
      你的BTCg的构想,其实早在几个月之前,三胖早就已经有类似“新比特币”了。
      但是主流的观点会视为一个山寨币而已,不会视为比特币的分叉币。

    2、肯定会有交易所上线BTCg
      要看BTCg的影响力,若BTCg只是山寨币规模,那就视为山寨币即可。且主流平台不会上线。
      但是ETC上线P网后,交易量甚至超过ETH的。这种情况就是ETC和ETH的分裂了。
      比特币圈不会像以态圈那么平和。若真有某个大平台上线BTCg,那么很多比特币爱好者,会发起DDOS攻击,让这个大交易平台处于瘫痪状态,直到其承诺下线BTCg。

    3、有手续费调节不会堵死
      “现在Bitcoin core区块已经被塞满了1M。现在加上Bitcoin bigger上的交易被重新广播到Bitcoin core链上,那妥妥地堵屎了。”
    这句话表现了你对当前5.9区块满而未堵状态的不清楚。
      再多的交易被重放广播到BTC链也不会顿屎,每十分钟左右,依旧会有约1MB的数据打包出来,这个速度不会因交易量增多而改变,就是说一直是有交易被确认的,唯一可能的是提高交易手续费,但是在Bitcoin bigger上的交易一般不会给高手续费的,就不可能催高,BTC主链上的手续费。

    4、矿池内存池的自动调节
      “挖Bitcoin core的矿池的内存池将面临打爆的压力”
      这个就更加不清楚mempool了。目前即使粉尘攻击时最大时也才50MB左右,而内存大小往往几GB,怎么可能面临打爆压力。另外矿池节点将哪些交易放入内存池,本来就是可以有自己独立的选择的。就算设了低手续费不进内存池那也没有什么问题。

    5、两币的优劣分析错误
      “高昂的交易费和不稳定的确认时间”要知道在BTC主链上是可以有低价的闪电侧链或者甚至免费的链下第三方钱包。另外足够手续费就会及时地下个区块确认,并没有不稳定的确认时间。
      BTCg虽然可能不会真的51攻击,但是时刻面临着被51攻击的风险,此风险下,使其交易即使6确认了,也有可能被孤立6确认而无效的风险。因此相反,是BTCg因缺乏算力其上的交易更加不稳定。

    6、Bitcoin core不会去做交易格式的修改
      太搞笑了,BTC是不会为了某山寨币来自己系统重放,而做任何交易格式改变的。重放攻击,损失的只是那些去碰BTCg的人。只要完全不碰BTCg(也别去想抛BTCg砸盘),那么就完全不会受到重放攻击而损失。

    +1
    +1
    我要点评