作者:SECBIT实验室
前言
作为地球不爆炸,我们不放假,宇宙不重启,我们不休息的区块链产业相关从业者,每天除了币圈、链圈,除了ICO、智能合约之外,烧脑之余谈论最多的大概就是美剧《硅谷》了,作为一部深入展现区块链创业故事的影视作品,成功的引起了当下广大区块链人的关注,第五季中更是围绕加密货币发生了一系列的故事,其中“理查德项目的投资人劳里是一个非常势力的人,因为各种原因,投资了一个“恶棍”团队,并对“花衣魔笛手”系统发动了‘51%算力攻击’”的情节在被观众当作故事来看的同时,现实世界中却不只一次的发生过该类事故。以下我们借助最近一次算力攻击事件剖析该类事件带给我们的是什么?
1 事件回顾
2018年5月24日CCN媒体报道称,Bitcoin Gold交易主管爱德华伊斯卡拉在5月18日首次向用户发出警告,称一名恶意的矿商利用双重支出漏洞从加密货币交易中窃取资金。
Bitcoin Gold目前总市值$769,279,381 USD,市场排名27位,市值排名前30的加密货币受到双花攻击引起了极大的关注,各个媒体争相报道了该次事件,“市值蒸发”、“何去何从”、“惊悚”、“恐慌”一系列博人眼球的词汇出现在了各个媒体的报道中。但是值得关注的是该次“双花”事件发生在2018年5月16日,最后一个“双花”转账发生在2018年5月18日,CNN关于该事件的报道发生在2018年5月23日,国内相关媒体的大量报道主要发生在2018年5月24日,即便媒体报道该事件的时间点距离该事件发生已经过去1周的时间,但依旧有众多人就此事件奔走相告、迫不及待关注Bitcoin Gold的币价是否出现断崖式下跌。但关于该次事件的带来的币价之外的影响却极少报道和关注。本文借着Bitcoin Gold受到“双花”攻击的事件,深入剖析一下“双花”影响。
相关调查证明此次Bitcoin Gold受到攻击属于区块链“51%算力攻击+‘双花’”的组合攻击事件。攻击者获取了Bitcoin Gold网络51%的算力,通过在交易平台存入BTG的同时向自己控制的钱包转账BTG,正常情况下区块链可以通过只打包第一次出现这些BTG的交易来解决这个问题,但是由于攻击者获取了该网络51%的算力,所以攻击者可以通过逆转区块,实施本次双花攻击。此次受到攻击地址如下:
图片来自CCN媒体平台
2 双花问题归纳
根据CCN报道称,BitcoinGold至少是过去两周内第三个遭受重大攻击加密货币网络。过去的不久,XVG网络中,一名矿工操纵加密货币XVG五种哈希算法中的2种,在短短几个小时内恶意地挖掘了3500多万XVG——价值175万美元;日本加密货币monacoin网络中一名矿工获得了该网络57%全网算力后,使得该网络受到重大打击。小规模公链网络频频受到“算力攻击”和“双花”问题的威胁不得不引发大众对公链安全的关注。区块链中实现双花的方式主要有三种:
1.Race attack
该方式主要通过控制矿工费用来实施,任何人都可以实施攻击。攻击者同时向网络中发送两笔交易,一笔交易发给目标商家,一笔交易发给自己,为了提高转发给自己的交易被打包的概率,攻击者会提高该笔交易的矿工费用,借此实现同一笔token的“双花”。
2.Finneyattack
该方式主要通过控制区块广播时间来实施,主要是矿工可以实施攻击。假设矿工挖到了一个区块N(该区块中包含一个交易:地址A向地址B转10BTC,其中A和B都是矿工自己的地址)后先不广播这个区块,然后找一个愿接受未确认交易的商家购买物品并向商家发一笔交易:地址A向地址C转10BTC,付款后向网络中广播刚刚挖到的区块N,由于区块N中包含一个向自己付款的交易,所以矿工实现同一笔token的“双花”。
3.>50% attack
该方式主要通过集中区块链网络50%以上算力来实施,主要是矿工实施攻击。攻击者先后就同一笔token发起两笔交易,由于攻击者集中了超过全网50%的算力,他可以创造一条高度大于包含第一笔交易主链的新链,那么旧链中的交易会被回滚,借此实现同一笔token的“双花”。
同时,当矿工集中区块链网络50%以上算力时,甚至会出现是矿工夺取管理员权限,修改规则和接口权限,踢掉其他参与者的情况。
3 事件影响
本次Bitcoin Gold的“双花”事件属于第三种情况,该事件也使得区块链“双花”问题不再仅仅停留在理论层面。通常意义上我们认为集中某个网络51%算力进行正常交易的攻击获得的收益是无法弥补集中算力付出的成本的,但是“51%算力攻击”和“双花”问题的结合使得经济实力较强的攻击者有机可乘。但是“双花”问题对加密货币的总量并不造成影响,只是使得攻击者可以对同一笔加密货币消费两次。理论上讲如果该事件没有引起加密货币交易市场恐慌的前提下,并不会对币价造成不利影响。本文截取该事件发生期间和该事件被媒体大量报道期间的币价走势,分析该事件对Bitcoin Gold价格的影响。
该事件发生在5月16日-5月18日之间,参与攻击的BicoinGold地址收到388,200的比特金。根据coinmarketcap上Bitcoin Gold 5月13日到20日的价格走势来看,事件发生当天(5月16日)币价有大幅度上涨,5月17-18日也出现币价的另一个小高峰,攻击事件结束后(5月19日之后)Bitcoin Gold价格并未出现断崖式下跌。
事件由CCN于5月23日报道,随后国内媒体相继报告。截取5月20日到24日的币价走势,币价也并未出现类似智能合约漏洞爆料后的币价断崖式下跌现象,而是随着大盘趋势一起变化。(由于目前数字货币交易监管还未完善,还没有公认的市场指数参考,所以此处将Bitcoin Gold价格走势同Bitcoin价格和Ethereum价格走势做简单比较)
Bitcoin Gold价格走势:
Bitcoin价格走势:
Ethereum价格走势:
通过上述分析可得,该次“双花”事件及其相关媒体报道并未对Bitcoin Gold价格造成大的影响,也未给币圈造成大规模的恐慌。那么此次事件的发生带给区块链的提醒到底是什么呢?
本文认为业内发生该类攻击事件虽然会打击行业信心,但是也会给区块链安全敲响警钟。受此次“51%算力攻击+双花问题”影响最大的是人们以区块链技术安全性的信任,特别是对规模较小的公链安全性的信心,这将极大增加区块链项目在发展初期,算力较少时期的风险,成为公链项目成长道路上的挑战。如何防止避免51%算力攻击和双花问题带来的风险,将是区块链发展道路上的重点,这是因为区块链上智能合约的安全可以通过类似SECBIT实验室这样关注智能合约安全的组织来保证,但51%算力攻击和双花问题则是近期不可分散的系统风险,没有办法通过多方的协作来消除。
因此,算力较小的区块链项目需要从自身网络角度采取措施避免51%算力攻击和双花问题的发生,目前比较可行的方法是提高交易确认的次数,比如此次Bitcoin Gold给的问题防范建议是将确认要求提高到50个区块。
4 总结
区块链技术正处于发展的初级阶段,对于影视作品里的51%算力攻击我们可以津津乐道,但现实中该类事件离我们并不遥远。部分公链采用与比特币相同的算法,在缺乏大算力支持的情况下,如果某个持有大算力的矿工(矿池)切换到该主网上,51%算力攻击和双花事件就有发生的概率。SECBIT实验室作为一个聚焦区块链和智能合约技术安全的组织呼吁业内应该把关注焦点更多地放在区块链安全上,应该着手技术进步和创新,一起创建一个共识、可信、有序的区块链经济体。
SECBIT实验室是谁?
SECBIT实验室由一群热爱区块链技术的极客组建,成员遍布在全球多个国家,专业领域涉及区块链底层架构、智能合约语言、形式化验证、密码学与安全协议、编译与分析技术、博弈论与加密经济学等诸多学科。 SECBIT实验室目前聚焦智能合约的安全问题,助力区块链项目团队提高智能合约的可靠性与安全性,开展智能合约安全框架的理论技术研发。SECBIT实验室致力于参与共建共识、可信、有序的区块链经济体。