关于如何攻击比特币的研究(2) – 月光宝盒
之前提到的51%攻击已经被证明,可行性很小,所以我就在找其它思路。
声明:我研究这个,并不是真的要攻击比特币,而是希望找到比特币存在的缺陷,帮助比特币成长的更加健壮。
有一个比特币领域人尽皆知的假设,即:如果有一天,海底光缆断掉了,可能会把整个比特币网络分成2部分,由于无法和对方通信,这两部分的比特币区块将各自独立延伸,直到有一天,海底光缆修好,两个独立比特币网络重新融合,这时就会发生区块分支竞争,两个比特币网络中的比特币分支链条只有一个能被最终认可,这个认可的标准就是比特币分支链条的长度,长者胜。
在这个过程中,究竟哪个比特币子网的块链能成为主分支,好像取决于运气!真的是这样吗?
比特币网络为了保证趋近于每10分钟生成一个块,引入难度概念,而且每2016个块使用移动平均法根据算力变化或块生成的耗时长短,调整这个难度,保证从宏观角度来看,近似每10分钟找到一个块。
现实世界中,两个比特币的子网虽然通信是断开的,但时间是同步的。如果网络断开时间较短,算力较强的比特币子网由于能产生更多的块,会获得胜利,算力较小的比特币子网这段时间内的所有块将被忽略;如果网络断开时间很长,由于难度调整的因素存在,就无法保证哪一个比特币子网会获胜。
难度调整是这样的,每到一个调整时间点(每2016个块一次),评估生成区块的时间间隔,如果大于10分钟,就降低难度,如果高于10分钟,就降低难度。最低难度为1,基本上相当于7mhash/s的算力。
好了,如果我想让我所在的比特币子网获得胜利,也许这个比特币子网就是一个小小的局域网而已,把这个局域网与外网断开是很容易的事情。根据上面的难度调整原理,怎么能让我的小比特网创造更多的区块,来保证未来和外部比特币网络融合式获得胜利呢?对,有些人已经想到了,需要一个神器,类似于大话西游里的月光宝盒或者来自未来的时间机器,让我能从未来“借”时间,让我的小比特网拥有比外部比特网更多的时间,从而生成更多的区块。
幸运的是,在计算机上调整时间很容做到,虽然一开始局域网内算力有限,生成区块速度仍然很慢,但虽着每2016个数据块的难度调整周期,运算难度会快速降到1,对应的算力是7M,这样,我的小小游戏显卡HD7870所拥有的350M的算力也能轻松的创建区块。到此为止,使局域网内的时间的流逝速度比外部比特币网络快X倍,我就能生成X倍与外部比特币网络的区块数量。
经过慢慢的等待,确定局域网比特币已经创建了足够多的区块,在某一个阳光灿烂的日子,将局域网通过无线路由器和ADSL连上互联网的那一刻,比特币网络将发生惊天巨变。
大概思路,就是这样,我对BTC的相关概念理解的还不透彻导致了我错误的结论,或者BTC已经对这种方式进行了防范,请各位赐教谢谢。
对攻击比特币的研究还在继续……
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场