最近准备教材的时候,针对2018年5月的比特黄金(BTG)攻击,讨论了用图片辅助说明当时发生了什么。这次攻击比特黄金官方整理了解说攻击方法的报道Anatomy of a Double-Spend/51%attack,通过直接看这个句子可以知道发生了什么。 因为Medium上的BTC类似BTG,以下代称比特货币和比特黄金。 首先是比特由于黄金的整体计算力较低,攻击者已经掌握了比特黄金51%的计算力(即使是利用自用机器或计算力租赁服务NiceHash),所以可以发动这次攻击,需要花很多钱准备这些计算力因为得到的回报很高,所以有这样的攻击。 另一个关键是,在区块链协议中,同时有几条合法区块链的情况下,矿工们优先采用长度较长的。因为他花费的工作量很高。 假设我们现在在block号20000,攻击者在自己的钱包A里有1000比特的黄金,目标交易所确认10个街区后,将交易设定为合法交易。 攻击者有51%的计算能力,所以我们可以看到这里有两群矿工。一群是好矿工,另一群是攻击者拥有的坏矿工,这两群矿工生成两条不同的区块链。 攻击者在block200001钱包A的1000比特黄金转移到交易所的钱包,好的矿工广播。同时,广播了从钱包A向另一钱包B转账1000比特的钱的另一交易。这笔交易只存在于坏矿工发生的区块。 在这种情况下,block#20001包含两个完全不同的事务处理,不存在于另一个块链中。此外,这两项交易都是合法的。 好矿工:转帐到交易所 不良矿工:转账给攻击者的钱包B 接下来,当交易所等待在好矿工那里通过10个区块确认这笔交易时,同时攻击者利用自己51%的计算力让坏矿工做了比好矿工更多的区块。然后在这个区块链的记录中没有把这1000比特的钱交给交易所,而是转到了攻击者的钱包B。 在确认了10个街区,交易所确认汇款已完成后,攻击者立即利用这1000比特款兑换成比特美元,并立即收到了自己的比特美元钱包。 此时攻击时机成熟,假设此时好矿工算出#200011至#200012区块,但由于差矿工计算力强,已算出#200014区块攻击者把自己拥有的坏矿工手上的拦网播到所有矿工手中。 这时,好矿工发现坏矿工的区块链长度比自己手上的长,而且是合法的区块链。根据协议中矿山工会采用较高工作量、区块长度较长的区块链这一规则,相信不良矿山工人释放区块链是正确的区块链可以将自己手中的#200012为止的区块链置换成不良矿工放出的区块。 在该不良矿工提供的区块链中,比特没有将黄金转帐给交易所,但来自1000比特黄金交易的比特美元此时已转帐给账户攻击者比特美元钱包。比特美元和比特黄金是不同的区块链,所以比特黄金区块链重组不会影响比特美元区块链。最后比特黄金网络会认为原本就很差的矿工区块链是正确的链条。这与攻击者在没有转帐交易所的情况下买了比特美元相同。 比特货币或以太货币是否可能受到同样的攻击? 不可能,比特黄金发动这起攻击事件的原因在于比特黄金的整体计算力过低,加上目前在NiceHash上可以借助计算力,这两个条件合在一起导致了这起事件。 根据crypto51上的数据,NiceHash上只能出租比特货币1%的计算力,所以不能通过出租计算力的方式来达到。如果要进行自行建矿机攻击而不是租赁计算力,根据gobitcoin上的成本估算,需要构建约80亿美元的硬件(这个金额会变动),每天电费500万美元就可以发起这种类型的攻击。 郑重声明:本文版权归原作者所有,转载文章如作者信息标记有误,请先联系我们修改或删除,谢谢。
© 版权声明
免责声明:以上内容(如有图片或视频亦包括在内)均为平台用户上传并发布,本平台仅提供信息存储服务,对本页面内容所引致的错误、不确或遗漏,概不负任何法律责任,相关信息仅供参考。
本站尊重他人的知识产权、名誉权等法律法规所规定的合法权益!如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到qklwk88@163.com,本站相关工作人员将会进行核查处理回复
THE END
喜欢就支持一下吧