区块广播:
· 巴比特媒体开放平台海盗号正式上线:让我们改变潮向,不止于头条
· A股区块链板块行情丨整体上涨0.99%
· 浙江省网信办网评处处长:建立建全相关法规是出于对区块链风险防范的需要
· 报告:6个月内Compound Finance加密货币抵押贷款发行总额接近900万美元
· 比特大陆发布蚂蚁矿机新品Z11,性能提升显著
· 中国人大法学院教授杨东谈科创板:监管部门可利用区块链等技术构建科技驱动型监管体系
· 分析:近期加密市场的反弹或由人民币推动
· 哈希图进入主流使用只是时间问题?Hedera CEO何来底气“大放厥词”
· 巴比特午间要闻一览
· 分析:近期加密市场的反弹或由人民币推动
· TradingView组件存在缺陷,多个交易所可被利用实施钓鱼攻击
· 日本交易所GMO Coin调查:超过一半的用户预计XRP将是今年上涨最多的币种
· 火币前高管臧成都等加入新加坡WBF数字资产交易所,全球豪华团队意打造全球前十交易所
· 报告:韩国加密货币场外交易规模约占交易总量的25%,达400亿美元
· Circle CEO Jeremy Allaire:加密货币业务下滑,但去年仍在增长
· 北航教授蔡维德:未来我们的金融秩序一定是共识机制、共识经济
· 巴比特《8问》| 北航教授蔡维德:你以为摩根大通只是发了币?
· 韩国政府机构发布“2018年韩国金融科技企业手册”,区块链和虚拟货币企业占比9%
· 韩国区块链协会会长Daeje Chin辞职
· 币世界熊市中完成A轮融资,今年发力攻坚英文市场
· 巴比特媒体开放平台海盗号正式上线:让我们改变潮向,不止于头条
· A股区块链板块行情丨整体上涨0.99%
· 浙江省网信办网评处处长:建立建全相关法规是出于对区块链风险防范的需要
· 报告:6个月内Compound Finance加密货币抵押贷款发行总额接近900万美元
· 比特大陆发布蚂蚁矿机新品Z11,性能提升显著
· 中国人大法学院教授杨东谈科创板:监管部门可利用区块链等技术构建科技驱动型监管体系
· 分析:近期加密市场的反弹或由人民币推动
· 哈希图进入主流使用只是时间问题?Hedera CEO何来底气“大放厥词”
· 巴比特午间要闻一览
· 分析:近期加密市场的反弹或由人民币推动
· TradingView组件存在缺陷,多个交易所可被利用实施钓鱼攻击
· 日本交易所GMO Coin调查:超过一半的用户预计XRP将是今年上涨最多的币种
· 火币前高管臧成都等加入新加坡WBF数字资产交易所,全球豪华团队意打造全球前十交易所
· 报告:韩国加密货币场外交易规模约占交易总量的25%,达400亿美元
· Circle CEO Jeremy Allaire:加密货币业务下滑,但去年仍在增长
· 北航教授蔡维德:未来我们的金融秩序一定是共识机制、共识经济
· 巴比特《8问》| 北航教授蔡维德:你以为摩根大通只是发了币?
· 韩国政府机构发布“2018年韩国金融科技企业手册”,区块链和虚拟货币企业占比9%
· 韩国区块链协会会长Daeje Chin辞职
· 币世界熊市中完成A轮融资,今年发力攻坚英文市场
· 巴比特媒体开放平台海盗号正式上线:让我们改变潮向,不止于头条
· A股区块链板块行情丨整体上涨0.99%
· 浙江省网信办网评处处长:建立建全相关法规是出于对区块链风险防范的需要
· 报告:6个月内Compound Finance加密货币抵押贷款发行总额接近900万美元
· 比特大陆发布蚂蚁矿机新品Z11,性能提升显著
· 中国人大法学院教授杨东谈科创板:监管部门可利用区块链等技术构建科技驱动型监管体系
· 分析:近期加密市场的反弹或由人民币推动
· 哈希图进入主流使用只是时间问题?Hedera CEO何来底气“大放厥词”
· 巴比特午间要闻一览
· 分析:近期加密市场的反弹或由人民币推动
· TradingView组件存在缺陷,多个交易所可被利用实施钓鱼攻击
· 日本交易所GMO Coin调查:超过一半的用户预计XRP将是今年上涨最多的币种
· 火币前高管臧成都等加入新加坡WBF数字资产交易所,全球豪华团队意打造全球前十交易所
· 报告:韩国加密货币场外交易规模约占交易总量的25%,达400亿美元
· Circle CEO Jeremy Allaire:加密货币业务下滑,但去年仍在增长
· 北航教授蔡维德:未来我们的金融秩序一定是共识机制、共识经济
· 巴比特《8问》| 北航教授蔡维德:你以为摩根大通只是发了币?
· 韩国政府机构发布“2018年韩国金融科技企业手册”,区块链和虚拟货币企业占比9%
· 韩国区块链协会会长Daeje Chin辞职
· 币世界熊市中完成A轮融资,今年发力攻坚英文市场

区块链共识安全:51%攻击浅析

55fed80889水手发布在 技术文档
 438  2

0x01 背景知识

区块链作为一种去中心化的分布式公共数据存储系统,其并没有中央管理机构进行管理工作,而是通过分布式节点共同利用密码学协议共同维护,而各个节点在维护整个系统的时候要通过底层的共识协议来保证账本的一致性。区块链在不同的现实场景中发挥的实际用途不同,比如公链,私链,联盟链,不同的链使用的共识算法也有所不同,比如比特币使用的PoW共识,以太坊使用的PoW共识,EOS使用的DPoS共识,而不同的共识算法所涉及的安全性又有所区别。

本文将详细介绍比特币和以太坊使用的PoW共识协议中存在的攻击风险。

0x02 PoW共识机制

首先让我们来看看什么是PoW共识协议。

从去中心化账本系统的角度看,每个加入这个系统的节点都要保存一份完整的账本,但每个节点却不能同时记账,因为节点处于不同的环境,接收到不同的信息,因此需要有共识来达成哪个节点有权记账。比特币和以太坊区块链通过竞争记账的方式解决去中心化的记账系统的一致性问题, 即以每个节点的计算能力即“算力”来竞争记账权的机制,在竞争记账权的过程就是“挖矿”。

然而,在一个去中心化的系统中,谁有权判定竞争的结果呢?比特币和以太坊区块链系统是通过一个称为“工作量证明”(Proof of Work,PoW)的共识机制完成的。

PoW(Proof of Work),即"工作量证明",简单地说,PoW就是一份确认工作端做过一定量工作的证明。工作端需要做一定难度的工作得出一个结果,验证方通过结果来检查工作端是不是做了相应的工作。

在通过工作量证明共识进行的挖矿行为中,需要遵守三个规则:

一段时间内只有一个人可以记账成功

通过解决密码学难题(即工作量证明)竞争获取唯一的记账权

其他节点验证并复制记账结果

举个例子,给定字符串“blockchain”,我们给出的工作量要求是,可以在这个字符串后面连接一个称为nonce的整数值串,对连接后的字符串进行SHA256哈希运算,如果得到的哈希结果(以十六进制的形式表示)是以若干个0开头的,则验证通过。为了达到这个工作量证明的目标,我们需要不停地递增nonce值,对得到的新字符串进行SHA256哈希运算。

Hash(上一个Hash的值, 交易记录信息集合) = 29329385BNDH749

Hash(上一个Hash的值, 交易记录信息集合, 随机数nonce) = 000029329385BNDH749
比如比特币中区块高度为512884的区块的Hash为:

000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69
通过记账产生此区块的工作量证明为16**18次hash计算,这是一个非常大的计算量。

0x03 51%攻击

通过简单介绍了通过记账来打包区块以及PoW的简单原理之后,回到我们的问题上来,什么是51%攻击,什么是双花攻击?

双花攻击,简单来说就是指将一个代币通过多次支付手段发起的攻击,也就是指同一个货币被花费了多次。发起双花攻击的方式有很多,包括以下几种形式:

  • 51%攻击

  • 种族攻击

  • 芬妮攻击

  • Vector 76 攻击

  • 替代历史攻击

也就是说如果攻击者掌握了全网超过50%的计算能力时,可通过51%攻击造成双花问题。

这里我们只分析51%攻击过程。

51%攻击,又被称为Majority attack。这种攻击是通过控制网络算力实现双花。如果攻击者控制了网络中50%以上的算力,那么在他控制算力的这段时间,他可以将区块逆转,进行反向交易,实现双花。

在PoW共识协议里,区块链系统同时允许存在多条分叉链,而每一条链都可以对外申明自己是正确的,但是在区块链的设计理念中有一个最长有效原理:“不论在什么时候,最长的链会被认为是拥有最多工作的主链。”

下面我们简单模拟一下51%的攻击过程:

如果存在这样一个攻击者,它刻意把第一笔交易向一半网络进行广播,把第二笔交易向另一半网络广播,然后两边正好有两个矿工几乎同时取得记账权,把各自记账的block广播给大家,此时选择任意一个账本都可以,这时候原来统一的账本出现了分叉,如下图:

接下来,下一个矿工选择在A基础上继续记账的话,A分支就会比B分支更长,根据区块链的规则,最长的分支会被认可,短的分支会被放弃,账本还是会回归为一个,交易也只有一笔有效,如下图:

此时A分支被认可,相应交易确认,如果攻击者拿到商品之后,立刻自己变身矿工,争取到连续两次记账权,然后在B分支上联系增加两个block,如下图所示:

于是B分支成为认可的分支,此时A分支被舍弃,A分支中的交易不再成立,攻击者在A分支的支付货币重新有效,但攻击者已经拿到商品,至此成功完成一次双花攻击。问题了,在B分支落后的情况下要强行让它超过A分支,现实中难度很大,成功的概率很低,但是,攻击者如果掌握了全网50%以上的计算力,那么,即使落后很多,他追上也只是时间问题,这就是上面所说的“51%攻击”。

0x04 攻击案例

在区块链的现实世界里发送过很多次因为51%攻击导致的双花。

比如Bitcoin Gold 发生的双花问题就属于51%攻击,攻击过程如下:

  1. 攻击者控制Bitcoin Gold网络上51%以上的算力,在控制算力的期间,他把一定数量的BTG 发给自己在交易所的钱包,这条分支我们命名为分支A。

  2. 同时,他又把这些BTG 发给另一个自己控制的钱包,这条分支我们命名为分支B。

  3. 分支A 上的交易被确认后,攻击者立马卖掉BTG,拿到现金。这时候,分支A成为主链。4. 然后,攻击者在分支B 上进行挖矿,由于其控制了51%以上的算力,那么攻击者获得记账权的概率很大,于是很快分支B 的长度就超过了主链(也就是分支A 的长度),那么分支B 就会成为主链,分支A 上的交易就会被回滚,将数据恢复到上一次正确的状态位置。

  4. 也就是说,分支A 恢复到攻击者发起第一笔交易之前的状态,攻击者之前换成现金的那些BTG 又回到了自己手里。

    最后,攻击者把这些BTG,发到自己的另一个钱包。就这样,攻击者凭借51%以上的算力控制,实现同一笔token 的“双花”。

据此次攻击区块链数据报道,攻击者成功逆转了22个区块,涉及此次攻击的比特币黄金地址已收到超过388200个 BTG,假设所有这些交易都与双花相关,攻击者可能已经从交易所窃取了价值高达1860万美元的资金,涉及此次攻击的比特币黄金记录如下图所示:

除了Bitcoin Gold 发生的双花问题之外,还有很多由于51%攻击导致的双花攻击案例:

匿名数字货币verge曾在短短几个小时内恶意挖掘了超过3500万个XVG,价值约175万美元。

日本加密货币monacoin在一名矿工获得高达57%的网络算力后明显遭到扣块攻击。

莱特币现金(LCC)官方消息,LCC曾遭到了51%攻击。

数字货币ZEN也遭受到了51%攻击。

近日的以太坊经典ETC遭受51%攻击。

来说说近日以太坊经典ETC的51%攻击,据区块链安全情报显示,一个地址以0x3ccc8f74开头的私人矿池算力发生了较大波动,这个私人矿池的算力目前占比ETC整个网络算力的63%。也就是说,该矿池目前控制ETC网络的大部分算力,这是51%攻击的先决条件。针对此次攻击的分析见coinbase的文章:https://blog.coinbase.com/ethereum-classic-etc-is-currently-being-51-attacked-33be13ce32de

文章说在1 月 5 号监测到第 1 次双花攻击,之后又发现了 8 次双花攻击,总共涉及到 88,500 枚 ETC (约$460,000),但是文章中未说明这次双花攻击的目标是谁,已经是谁发起了这次双花攻击。

0x05 总结

根据以往发生的51%攻击案例,51% 攻击一旦成为真实场景下的成熟攻击方法,各个公链都需要小心,虽然通过51%攻击需要很大代价,但是在小币种公链网络中呢?况且,没有50%以上的算力,还是有机会成功的,只是概率低而已。

无论工作量证明的PoW,还是权益证明PoS,还是委托权益证明DPoS,只要在共识问题里面,理论上讲都无法避免出现 51% 攻击情况,在不同共识机制的实现中还可能存在各种其他问题,而且在熊市的这段时间里,算力下降,币价大跌,主网相对更加脆弱的,更容易出现51%攻击问题。

目前,零时科技安全团队针对51%攻击的解决方案主要有如下几种:

提高确认次数。比如近日的以太坊经典ETC 51%攻击中建议将确认次数提高为 500 个以上。

在共识机制方面改善。比如 当时莱特币LCC受到51% 攻击之后官方表示引入PoS机制。

升级新的算法。比如Bitcoin Gold遭受51%攻击之后表示,将开发新的 PoW 算法以替代原有的 Equihash 算法。

与交易所实时沟通信息对称。比如Bitcoin Gold遭受51%攻击之后立即与合作交易所合作,阻断黑客的套现渠道。

通过第三方专业区块链安全团队应急处理。

根据以往发生的51%攻击案例,51% 攻击一旦成为真实场景下的成熟攻击方法,各个公链都需要小心,虽然通过51%攻击需要很大代价,但是在小币种公链网络中呢?况且,没有50%以上的算力,还是有机会成功的,只是概率低而已。

无论工作量证明的PoW,还是权益证明PoS,还是委托权益证明DPoS,只要在共识问题里面,理论上讲都无法避免出现 51% 攻击情况,在不同共识机制的实现中还可能存在各种其他问题,而且在熊市的这段时间里,算力下降,币价大跌,主网相对更加脆弱的,更容易出现51%攻击问题。

目前,零时科技安全团队针对51%攻击的解决方案主要有如下几种:

提高确认次数。比如近日的以太坊经典ETC 51%攻击中建议将确认次数提高为 500 个以上。

在共识机制方面改善。比如 当时莱特币LCC受到51% 攻击之后官方表示引入PoS机制。

升级新的算法。比如Bitcoin Gold遭受51%攻击之后表示,将开发新的 PoW 算法以替代原有的 Equihash 算法。

与交易所实时沟通信息对称。比如Bitcoin Gold遭受51%攻击之后立即与合作交易所合作,阻断黑客的套现渠道。

通过第三方专业区块链安全团队应急处理。

本主题由 Linkea 于 2019-03-12 16:11:38 加入精华
  • 正序
  • 最新
只看帖主楼层直达
  • 周宇盛 船员 2019-03-14 17:52:43 来自PC 沙发
    赞?
    攻击者51%攻击主要是为了通过回滚区块,使得已经套现的币又重新归自己所有。
    一条公链对攻击者的吸引力,与51%攻击所能够获得的回报成正比

    攻击是有成本的,成本就是调动矿机的机会成本,这些矿机本来可以用来正经挖矿获取激励的。
    所以,攻击回报 = 双花套现获得的收入 - 机会成本

    对于不同的链,攻击带来回报会不一样,被攻击的可能性也就不一样。
    - 如果攻击回报是正数,那就是值得攻击的,正值越大,这条链就越危险;
    - 如果攻击回报是负数,那就是不值得攻击的,负值越大,这条链就越安全;

    如果一条安全的公链总算力逐渐下降,而价格却没有明显变化,或者总算力下降的速度快于价格下降的速度,那么攻击回报就会增加。当攻击回报由负数转为正数,就会有被攻击的危险。
  • 周宇盛 船员 2019-03-14 17:54:07 来自PC 板凳

    前面一条的问号本来是“赞”的emoji,但是论坛没法显示,转成为了问号,不要误会。
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐节点 更多
热帖榜 本周最热本月最热