比特币安全受到了什么新的威胁
扫描二维码
随时随地手机看文章
新型攻击模式BDOS
近日,康奈尔大学和以色列理工合作成立的研究机构 IC3 (The initiaTIve for cryptocurrencies and contracts)联合宣布:“我们发现了一种针对中本聪共识协议区块链(BCH和BTC)的拒绝服务攻击,这种攻击模式之前的攻击模式成本要低得多(只需全网20%算力)。比特币区块链基于POW挖矿来维护系统安全,攻击者通过破坏挖矿奖励,从而使理性矿工停止挖矿。这种攻击被称为区块链拒绝服务(BDoS)。”
BDOS分析
IC3是一个由来自卡耐基梅隆大学、康奈尔大学、康奈尔理工学院、EPFL、苏黎世联邦理工学院、加州大学伯克利分校、伦敦大学学院、UIUC和位于纽约康奈尔理工学院的Technion学院的教师组成的区块链研究团队。POW型区块链一直是他们关注的焦点,在他们宣布发现BDOS的攻击模式的同时也发表了一篇专业论文,展示了攻击者如何诱导理性矿工停止挖矿,并提出了解决方案。
论文认为BDoS攻击,通过操纵对理性矿工的奖励,从而可使区块链停止运行。攻击者会使系统处于一种状态,在这种状态下,理性矿工的会停止挖矿。为了造成区块算力停摆的局面,攻击者会先生成一个区块,并只发布其区块头。而给定一个区块头,一个理性的矿工有三种选项:
1.继续挖主链,然后忽略区块头;
2.因为不确定块里有哪些交易,先挖一个空块(SPV挖矿);
3.可以停止挖矿,既不消耗算力,也不赢得奖励;
如果矿工选择不理这个区块头,继续挖主链(防守块),那么攻击者就快速广播与区块头对应的完整块(攻击块)。因为点对点网络里每个节点的网络连通性不一致,有的节点会先收到攻击块,有的节点会先收到防守块,这会导致两组矿工博弈,抢夺记账权。在一定概率下,理性矿工会输掉比赛,防守块永远不会被包含在主链当中,成为孤块,理性矿工损失掉一个区块收益,且白白浪费了算力和挖矿电费。
而选项2中,默认进攻块是合法的,继续跟着进攻块这条链,提前挖出一个空块,本来可以获得区块收益,但是攻击者可以不发送完整的区块信息,让这个块不能上主链,这样挖进攻块和正常挖矿的矿工都会损失掉一个区块收益。
研究者得出的结论是,不管矿工挖防守块还是进攻块,攻击者都可以让矿工拿不到收益,所以矿工最好的选择就是关机不挖。所以,这个攻击可以让比特币(BCH和BTC)网络停机。
BDOS与DOS对比
与DOS攻击相比,如果攻击者要进行DoS攻击,其拥有的计算能力就要比其他参与者的总和都要高,即51%攻击。对于主要的加密货币来说,51%攻击对于大多数实体而言都是非常昂贵的。而BDOS攻击门槛更低,需要 20% 的算力就能进行这种攻击。
对比 51% 攻击的话,51% 攻击门槛更高,但是可以破坏一致性,可以双花获益。而BDOS攻击中并不是这样,攻击者并不能天然从攻击中获益,而实际上是在牺牲自己的挖矿奖励进行攻击。
如何对抗BDOS
虽然相较51%攻击,BDOS算力要求要求较低,但对于BTC和BCH这样有着强大算力保护的主流币来说,20%的门槛还是很高。如果希望避免DBOS攻击,要尽可能的提高全网算力,提高攻击门槛,毕竟20%的算力是真金白银的投入,且攻击者并没有任何收益,属于伤人一千自损八百的行为。
IC3团队也提出了解决方案,IC3建议对共识规则进行一个小的修改,这样矿工们就可以对区块header在body在之前某个阈值时间(比如1分钟)以上的区块给予较低的优先级。这将增加攻击者输掉区块传播竞赛的机会,因此可降低BDoS攻击的有效性。
BDoS攻击另一个可能的解决方案,是使用孤块奖励机制,也是目前以太坊正在采用的方案,挖到孤块的矿工也可以获得区块奖励,挖掘的算力也不会白白浪费。如果使用了孤块奖励机制,理性的矿工在BDoS攻击中仍然可以继续维持算力投入,在选项1中即使没有获得记账权,理性矿工也会得到奖励(相当于以太坊完整区块奖励的7/8)。