虚拟币开发专题(山寨币的区块链中什么是51%攻击)
来源:互联网 发布:datamap 软件 编辑:程序博客网 时间:2024/06/07 00:08
区块链爱好者(QQ:53016353)
一、什么是51%攻击?
一提到对山寨币的区块链的攻击,大部分人想到的就是51%攻击。所谓51%攻击,就是利用比特币使用算力作为竞争条件的特点,使用算力优势撤销自己已经发生的付款交易。如果有人掌握了50%以上的算力,他能够比其他人更快地找到开采区块需要的那个随机数,因此他实际上拥有了绝对哪个一区块的有效权利。
矿池发动51%攻击的可能是否微乎其微©
他能够:
1、修改自己的交易记录,这可以使他进行双重支付
2、阻止区块确认部分或者全部交易
3、阻止部分或全部矿工开采到任何有效的区块
但是他无法做到:
1、修改其他人的交易记录
2、阻止交易被发出去(交易会被发出,只是显示0个确认而已)
3、改变每个区块产生的比特币数量
4、凭空产生山寨币的区块链
5、把不属于他的山寨币的区块链发送给自己或其他人
二、一个典型51%攻击案例
如果我有整个网络51%的计算速度,我可以计算出一个这样的区块链,包含我发送所有的比特币到我的私人账户上这个交易信息。这个区块链的长度为10,但是我不向网络广播。同时,我把所有的山寨币的区块链在交易市场换成美元并提取出来。这笔交易记录在正常的那个区块链中。
当我的美元提取正在进行中的时候,那个正常的区块链的长度是9,而我的区块链长度是10。现在我向网络广播出去,然后观察,网络会确认我的区块链是正确的。
但是美元已经被我提取了,损失的是交易市场。
我也可以用这种方式拿比特币买任何东西。如果这样的事情发生个几次,对比特币将是致命的,至少会严重的伤害人们对这个系统的信任度。
比特币发动51%攻击具体思路大致如下:
准备工作:
1. 既然是51%攻击,就必须首先掌握足够的算力,无论是控制矿池,还是利用其它计算资源,总之必须使你的算力领先与现在网络总算力,领先的幅度越大,成功的可能性越高;
2. 拿到足够的BTC作为筹码,无论是自己挖到的,还是从任何渠道买的,都可以;
攻击步骤:
1. 将手中的BTC充值各大交易所,然后卖掉,提现;或者也可以直接卖给某人或某一群人;
2. 运用手中的算力,从自己对外付款交易之前的区块开始,忽略自己所有对外的付款交易,重新构造后面的区块,利用算力优势与全网赛跑,当最终创建的区块长度超过原主分支区块,成为新的主分支,至此,攻击完成;
攻击结果: 由于撤销了所有对外付款交易,等于收回来所以已卖掉的比特币。
可行性评估: 现在比特币全网算力差不多90T,而且还会快速增长,现在看来只有现在的几大矿池联合,才具有发动51%攻击的实力,普通个人或机构实施此攻击的可能性越来越小。
三、51%攻击成功可能性大吗?
过去几年比特币网络的算力悄无声息的增长到了无比之大,这大大增加了比特币成功的可能性。反之也可以解释为什么山寨币不靠谱,太容易被51%攻击啦。在依赖密码学的数字货币领域,先发优秀是非常明显的。所以51%攻击对于比特币来说并不是一个什么大问题(早在2013年7月,比特币全网算力已经达到世界前500强超级计算机算力之和的20倍),即使有政府集全国之力秘密造出一台超级计算机,用来击溃比特币来挽救自己的货币发行体系,它会发现使用该能力进行挖矿便可垄断比特币的发行权,其收益远大于击溃比特币,动机也就不复存在了。
阅读全文
0 0
- 虚拟币开发专题(山寨币的区块链中什么是51%攻击)
- 虚拟币开发专题(区块链技术中山寨币核心是什么?)
- 虚拟币开发专题(山寨币的区块链的手续费是怎么计算)
- 虚拟币开发专题(关于山寨币的区块链你了解多少)
- 虚拟币开发专题(什么是山寨币算法?什么是山寨币矿机?)
- 虚拟币开发专题(山寨币怎样通过RPC命令实现区块浏览器)
- 虚拟币开发专题(山寨币怎样用Qt命令行分析区块信息)
- 虚拟币开发专题(区块链中使用的技术专业名词解释)
- 虚拟币开发专题(什么是第一代山寨币钱包(轻钱包)?)
- 虚拟币开发专题(二代币区块链专业名词解释)
- 虚拟币开发专题(钱包无法下载区块链解决办法)
- 虚拟币开发专题(区块链中使用到金融合约与智能合约)
- 虚拟币开发专题(自己动手制作山寨币教程)
- 虚拟币开发专题(盘点山寨币交易平台排行榜)
- 虚拟币开发专题(山寨币白皮书如何起稿)
- 虚拟币开发专题(山寨币都有哪些平台可以交易)
- 区块链技术中从 0 到 1 建立自己的开发山寨币
- 山寨币开发专题(虚拟币的挖矿机制是怎样的?)
- 深入理解JVM内幕
- 9 个你可能感兴趣的 ARKit 虚拟现实小项目
- 71
- Docker容器化todaytaxi服务
- java List学习过程的一些记录
- 虚拟币开发专题(山寨币的区块链中什么是51%攻击)
- java基础1
- Eclipse jsp页面javax.servlet.jsp.PageContext cannot be resolved to a type 错误解决办法
- 【LeetCode】6. ZigZag Conversion
- 磁盘管理
- 模块度与Louvain社区发现算法
- A problem is easy
- 新的开始
- java基础2