对于比特币,林鸿寄予厚望,在他的未来规划中,比特币占据着非常重要的位置,故而他希望比特币能够顺利地发展起来。
这是一次货币实验,一次足以对整个世界造成极为深远的影响,就算比特币失败了,林鸿也不会停止对电子货币的探索,他会吸取经验教训,继续开始另外一次,并且一直这样下去。
51的攻击,即如果有人掌握了比特币全网超过51的计算力,那么他就可以操纵整个网络实现自己的一些“非法”的目的。例如发送自己的虚假交易信息,在合法的确认信息还没有到达之前,就将自己伪造的确认信息发送过去,这样一来就相当于伪造了货币。
这个道理就相当于某个人的钱包接受了别人的一笔支付款项,然后他等待这笔款项的合法来源确认,一旦有超过五个人给他发送了确认信息,说这笔钱是合法的,那么他就认为这是一笔有效的交易。
但是一旦有人掌握了全网超过百分之五十一的计算力,那么他就可以伪造这些确认信息,让别人误以为自己收到了合法的比特币,而实际上是这个人自己伪造的。
此外,如果掌握了全网超过百分之五十一的计算力,挖起矿来更是容易无比,可以在众多矿工的挖矿行动中取得明显优势,将绝大部分产生的比特币收归自己所有。
按照比特币的设计,大概每十分钟会有一个比特币“金块”产生(前四年一个金块为50个比特币,此后每四年减半),这个速度是林鸿早就设定好的,无论你的计算力多大,在十分钟的时间内,也只能和全网的所有矿工来争夺这个“金块”。
为了达到这一效果,林鸿另外设计了一个难度参数,这个难度参数是会根据全网的总体计算力进行随时变化的,计算力越大。难度也就越大。
而如果有人掌握了超过百分之五十一的计算力,这种公平性就被打破了。
长此以往,比特币绝对公平的原则就彻底毁了,自然,比特币也就被毁了。
林鸿开着车,以最开的速度回到了四合院。然后立刻打开电脑,查看起比特币的全网运算速度曲线图。
这是一个以时间为横坐标,以全网运算速度为纵坐标的二维曲线图。全网运算速度的单位是hash/s。即每秒可以尝试运算多少组散列值。
现在最好的cpu的运算速度,一个cpu的运算速度大概在01兆hash/s左右,也就是一秒钟可以重复尝试运算大概一百组左右的散列值。
刚开始的时候,全网的运算速度只是林鸿一个人贡献的,现在在图上几乎看不出来,只是贴着底部前行,而过了一段时间之后,有了全世界的一些比特币爱好者和支持者的加入,全网的运算速度已经攀升到了10兆的量级。但是现在,这个数值却已经极速提升,突然之间翻了至少三倍以上。超过了37兆……这意味着有着大量的计算力接入比特币网络,也达到了林鸿之前设定好的预警条件。
这原本是一件值得高兴的事情,毕竟计算力越大越好,可是现在这种计算力突然之间猛增的情况却让林鸿有些高兴不起来。
刚开始的时候猛增一下可以理解,毕竟基数比较小,翻倍容易,可是这些天来,速率增加的速度已经稳定,基本上是一条缓慢上升的曲线。而现在,这条曲线变为了陡然爬升的直线,却又没有什么特别的因素导致很多人关注比特币,这就有些值得可疑了。
如果这些猛然增加的计算力都是同一个人贡献的话,那么他现在所掌握的计算力已经超过一半。也就是说51攻击正在进行。
对方到底是谁?
有什么目的?
使用了什么方式接入才拥有如此大的计算力?许多台电脑?亦或者是超级计算机?
现在一切都还不确定。
或许这个攻击并不是故意的,也许这个人只是一个比特币爱好者,他并不知道会存在这种攻击,正好他手中掌握了这么大的计算力并将其用于比特币挖矿。
一切还有待了解和挖掘。
林鸿坐于电脑前,开始着手展开调查。
他设计比特币客户端的时候。其架构和比特币差不多,矿工的具体ip是保密的,也就是说杜绝了被人进行追踪定位的风险。
不过,却有一种方式可以大致统计这些计算力到底来自什么区域,因为吸取了比特币设计的经验,全世界布置了一些主要的p2p的骨干节点,这些节点完全由比特币支持者免费无偿提供,负责完整地保存所有数据,并且处理大量的计算力数据交换。
所有的这些数据都是有记录可查的,通过统计这些节点的运算能力,就可以知道来自某个地区的总体运算速度多大。
林鸿立刻编写了一个功能,对这些主要节点的计算力进行统计,然后和之前的数据进行对比,看看到底是哪些节点的计算力突然猛增。
最终的看到的结果让林鸿心中松了一口气,因为他发现这些计算力主要来自五个节点,并且计算力都非常地接近。
也就是说,这些计算力分别来自五个不同的地方,则是同一个人所贡献的概率变得非常小。
比特币的所有东西都是开源的,这些数据,不但是林鸿能够看到,其他人也能够看到,只要对方连入网络,然后对这些按照特定格式保存下来的数据进行分析,统计即可。
林鸿进一步分析发现,这五个节点的计算力变化的时间是不同的。
来自美国的一个节点的计算力首先出现猛增现象,很快,又一个美国的和一个英国的两个节点分别出现异动,接着,原先美国的那股计算力再一次持续突变增加,超过了后面那两股的总和,而这个时候,芬兰和和俄罗斯也分别出现了一股强大的计算力。
此后,这五股计算力持续进行调整壮大,最终逐渐达到了一种相当的状态。
林鸿看着这些日志记录,心中有种奇怪的感觉,就仿佛是比特币网络中突然出现了一个搅局者,然后引发了一系列的关联反应。
林鸿有种感觉,这五股强大的计算力当中,肯定至少有两股是正面的力量,即为了保护比特币网络不被恶意者攻击而出现的。
有人比他早一步对攻击进行了防御。
见到这个情况,他松了一口气同时心中也很高兴,毕竟他设计的东西被别人认可,并且花极大的心思对其进行呵护,这种感觉相当不错。
这说明还是有人认可比特币,他并不是一个人孤军奋战,还有一些未知的盟友。
林鸿猜测,这后面几股计算力当中,应该有一股是属于essi的,毕竟她最早知道比特币的这个缺陷并且发邮件提醒自己,如果他没猜错的话,他觉得应该是首先应对的第二股计算力,也就是来自英国的那股计算力。
林鸿统计了一下这五个主要节点的计算力总和,结果发现,只占了新增计算力的大概一半比例,也就是说,还有大概10兆哈希每秒的运算力是由其他人贡献的。
这个发现让林鸿有些疑惑,他继续对比了一下其他节点的记录,发现这部分运算力竟然是来自多达四千多个节点。
难道是新增了四千多个矿工加入挖矿的行列?
这个现象让林鸿有些奇怪。
他查看了一下比特币开源社区上的讨论,有人也发现了计算力急速攀升的现象,大家都纷纷在讨论这件事情,其中也不乏有人猜到说有可能有谁在针对比特币网络进行攻击。
虽然有一些人表示自己会用实际行动支持比特币,可是林鸿根据这些帖子的发表时间和浏览数来看,远远达不到四千个的数目。
最近又没有什么比较大的新闻,例如某个用户群非常大的社区对比特币进行了宣传之类的。这四千多个计算力是在全网的计算力发生异常变动的很短的时间内接入的,分别来自世界各地。
这10兆的计算力,看上去非常像是来自自然的矿工,但是林鸿总是觉得有什么地方不对劲。
林鸿仔细分析了这些记录,他终于看出可疑之处了,那边是这部分的接入的计算力实在是太微弱了,并且每一个接入的计算力速度都非常的均匀,几乎每一份都相等,如果按照现在计算机正常的运算,要想达到10兆的运算力,根本用不着四千多个cpu,计算速度也根本不会如此地均匀。
林鸿想了想,要想实现这种方式,只有一种可能,那便是利用肉鸡进行挖矿。
肉鸡在黑客领域指的是傀儡机器,是指可以已经被入侵成功,并可以被远程控制的机器,黑客或者骇客可以随意操纵这些机器完成一些功能。
最常见的就是利用这些机器来用于分布式拒绝服务攻击……如果林鸿没有判断错误的话,肯定是有人利用大量的肉鸡在进行挖矿。(未完待续)