比特币出现漏洞,手把手带你发起攻击,万一暴富了呢
针对所有的支付系统,有一种攻击方式叫作双花攻击。所谓双花攻击就是指一笔资金被花费多次,攻击者先将资金转出,获得收益后通过攻击的手段撤销该笔转账,让资金重新回到攻击者的账户上。那么我们能否对比特币发起双花攻击并从中获利呢?答案是肯定的!下面让我带你一起对比特币系统发起攻击。
比特币系统的转账原理在带领大家发起攻击之前,我们需要先了解一下比特币的转账原理,这是我们发起攻击的预备知识。
在比特币系统中,用户想要发起一笔转账,首先要把转账信息组装好,就像填写银行支票一样,写好付款方账户,收款方账户,转账金额,然后使用加密技术对转账信息签名,我们把这种签名好的转账请求叫作交易。交易被比特币系统处理以后,付款方的账户就会被扣除指定金额,收款方的账户就会增加指定金额。
用户的交易会被发送给比特币系统中的节点,节点收到交易后将其放在一个新的区块中,然后对这个区块进行哈希计算,也就是之前文章所说的计算数学题。哪一个节点优先计算出了这个区块的数学题答案,就获得了这个区块的打包权,被这个节点打包进区块的交易就相当于成交了,然后所有的节点会在新区块的基础上开始计算下一个区块的数学题。
知道了比特币的转账原理,下面我们就来看一下比特币的漏洞到底在哪里!
系统漏洞:最长链原则刚才我们说谁先算出答案谁负责打包区块,那如果有两个节点同时做出了同一个区块的答案该怎么办呢?为了解决这个问题,比特币系统设计了一个特殊的机制,叫作最长链原则。
现在假设有两个节点A和B同时计算出了区块N的答案,那么他们就会同时把自己的答案向外广播由于网络传输的问题,离节点A比较近的节点就会先收到A的答案,验证后发现A的结果是正确的,然后就会在A的基础上继续计算区块N+1的答案离节点B比较近的节点会优先收到B的答案,验证后发现B的结果也是正确的,然后就会在B的基础上继续计算区块N+1的答案此时区块链有两个尾巴,分别是A打包的区块和B打包的区块,我们把这种情况叫作区块链分叉。但是由于区块答案的计算量很大,下一个区块几乎不会同时被计算出来。此时如果区块N+1的答案是在A的基础上计算出来的,那么A的这个分叉就要长一些,在B的基础上计算区块N+1答案的节点就会停止作答,而是在新区块的基础上开始计算区块N+2的答案。此时所有节点都回到了A的那个分叉上继续向下计算,B之前计算出来的区块N就被废弃了。通过上面的描述我们可以看出,比特币的这条链是有可能分叉的,分叉以后会以最长的链为准,那么在较短的分叉上的区块就被废弃了。这不正为我们攻击比特币系统带来了可能性吗!
对比特币发起攻击你可能已经想到了,既然比特币系统只认最长的那条链,我们是不是可以通过这样的方式对比特币进行双花攻击:
首先发起一笔正常的比特币转账交易,用来和对方交换其他的东西交易在区块N中被打包后,对方就收到了你的转账,然后将东西给你你在得到自己想要的东西后,开始收买节点重新创造一个区块N,把你之前发的转账交易删除掉,此时你成功地将比特币进行了分叉。由于比特币系统只认最长链,所以你收买节点一直在你的分叉上继续工作,直到让你的分叉的区块长度超过正常区块的长度,那么系统中所有节点就会在你的分叉上继续工作。包含你转账的区块N及其后面一直到N+n的区块都被你的新分叉废弃了,你的分叉成为了主链,在这条链上没有你的转账记录。至此,你之前转出的比特币还在你的账户上,并且得到了你想要的东西,所以你的攻击成功了。
比特币中的博弈论对比特币的攻击真的这么简单吗?答案当然是否定的!虽然我们说可以通过上述方法对比特币发起攻击,但是攻击是要付出代价的。
首先,无论你是在主链上工作还是自己创建一个分叉去工作,区块答案的计算难度都是一样的,所以你仍然需要计算10分钟左右才能生产出一个区块。其次,难题的计算是随机的,只和节点的计算能力有关,计算能力越强,优先计算出答案的概率就越大,并且还只是概率。所以,如果你想要创建一个新的分叉,并且超过主链的区块长度,那么你需要比主链上所有节点的计算速度加在一起都要快。要想实现这样的结果,唯一的做法就是你要收买比特币系统中超过51%的节点算力,这就是比特币的51%攻击原理。
想要攻击比特币系统并不是不可能,但是需要付出的代价可能远远超过作恶所获得的收益。在比特币系统中,节点越多,算力越强,攻击比特币系统的成本就越高,比特币系统就越安全。比特币越安全,它的价值就越高,就会吸引更多的节点加入来竞争比特币奖励。更多的节点进一步促进了系统的安全性,这是一个正向循环。
后记51%攻击不只是针对比特币的,所有采用工作量证明共识算法的区块链都面临着这个问题。对于已经日趋成熟的比特币系统来说,攻击比特币确实是不划算的,而且随着系统节点的越来越多,攻击比特币几乎成为了不可能的事情。但是一些新的链,在其刚起步的时候节点和算力还不多,这种攻击确实是真实有效的,并且这种攻击事件时有发生。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。