论文部分内容阅读
比特币,作为完全去中心化的数字货币,自问世以来就受到最广泛的关注。它的安全依赖于区块链,一个包含系统内所有交易的公共账本。比特币系统利用工作量证明机制来解决共识问题,生成新的区块,这个过程叫做挖矿,完成这项工作的用户叫做矿工。在发展初期,挖矿难度较低,个人利用电脑CPU就可以直接参与挖矿,随着比特币价格的持续攀升,越来越多的人参与挖矿来获得利润,整个网络的算力大幅增加,人们不满足于当前的计算能力,开始寻找提高算力的方法,生产出专门用于挖矿的设备:矿机,2010年出现了 GPU矿机,2013年又推出了ASIC矿机。一些大企业选择在一些电力资源充足、用电成本低的地方建立矿场。单个矿工需要等很长的时间才能生成一个区块,为了保持稳定的收益他们选择加入矿池挖矿,按照算力贡献共享获得的收益,矿池挖矿成为当前主要的挖矿方式,并形成了新的产业链:挖矿业。尽管已经成为当今最成功的数字货币,比特币系统仍然存在着许多安全方面的问题,受到研究者的广泛关注,如比特币自身的双重支付问题、交易延展性问题和隐私保护问题,针对P2P网络的攻击如日蚀攻击、路由攻击,针对比特币共识机制(PoW)的挖矿攻击等等,其中比特币共识机制的安全尤为重要,而共识机制的安全是依靠矿工的挖矿行为来保证的。比特币最著名的51%攻击,就是针对共识机制的攻击方法,掌握全网51%算力的攻击者拥有巨大的权力,能够更改已有的交易实现双花,阻止其它用户的交易确认,甚至可以垄断比特币区块的产生,这是最早的挖矿攻击。鉴于矿工的自利性,矿工或矿池挖矿的目的是获得收益(区块奖励),并力求最大化收益。默认情况下,矿工的收益正比于算力,但是矿工可能采取一些恶意的挖矿行为如扣留区块或延迟公布区块来获得更多收益,由此而产生三种攻击:区块截留攻击、自私挖矿、FAW攻击。在区块截留攻击中,矿池中的矿工只向矿池提交部分工作量证明(PPoWs)而不提交完整工作量证明(FPoWs),当攻击者对某个矿池发动此攻击,利用剩余算力诚实挖矿时可以获得更多收益。在自私挖矿中,自私矿工故意产生分叉来获得更多收益,他们保持发现的区块秘密地不公布,然后在私链挖矿,有选择性地公布私链区块希望在区块竞争时成为主链,浪费诚实矿工的算力,使得自私矿池获得更高的收益。FAW攻击综合运用区块截留攻击和故意分叉来获得额外奖励。本文首先分析51%攻击的基本原理、可行性、应对方法,然后重点介绍另外三种挖矿攻击,模拟不同的情形和场景,定量分析攻击行为对矿工收益的影响。最后分析这些攻击行为对比特币系统的危害,总结讨论当前应对攻击的防御方案的研究情况,给出一个衡量防御方案的标准,并分析各种防御方案的优缺点。